Skip to main content

Permissions

This service allows us to manipulate the permissions easily in vanilla JS and React.

Has Permission​

By passing in a string of the permission name, we can use hasPermission to check if the user has the permission we're looking for.

Example

import React from 'react'
import { hasPermission } from '@rhapsody/permissions'

export const PrivateRoute: React.FC<> = () => {
const userHasPermission = hasPermission('private_permission')
return <span>{userHasPermission ? 'Welcome back!' : 'Access Denied'}</span>
}

Has Any Permission​

By passing in an array of strings with permissions names, we can use hasAnyPermission to check if the user has any of the permissions we're looking for.

Example

import React from 'react'
import { hasAnyPermission } from '@rhapsody/permissions'

export const PrivateRoute: React.FC<> = () => {
const userHasPermission = hasAnyPermission([
'private_permission',
'awesome_permission',
])
return <span>{userHasPermission ? 'Welcome back!' : 'Access Denied'}</span>
}

Testing Permissions​

Inside this library you can also find some tools created for testing the permissions

Set Permissions​

By passing an array of strings, setPermissions simulates if the user has that permissions for unit tests.

Example

import React from 'react'
import { setPermissions } from '@rhapsody/permissions'

describe('Component Specs', () => {
beforeEach(() => {
setPermissions(['awesome_permission_to_test'])
})
})

Clear Permissions​

clearPermissions cleans all the permissions of the user for the unit tests.

Example

import React from 'react'
import { clearPermissions } from '@rhapsody/permissions'

describe('Component Specs', () => {
afterEach(() => {
clearPermissions()
})
})