The communications platform that puts data protection first.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Rocket.Chat/client/providers/AuthorizationProvider.js

22 lines
862 B

import React from 'react';
import { Meteor } from 'meteor/meteor';
import {
hasPermission,
hasAtLeastOnePermission,
hasAllPermission,
} from '../../app/authorization/client/hasPermission';
import { AuthorizationContext } from '../contexts/AuthorizationContext';
import { hasRole } from '../../app/authorization/client';
import { createObservableFromReactive } from './createObservableFromReactive';
const contextValue = {
hasPermission: createObservableFromReactive(hasPermission),
hasAtLeastOnePermission: createObservableFromReactive(hasAtLeastOnePermission),
hasAllPermission: createObservableFromReactive(hasAllPermission),
hasRole: createObservableFromReactive((role) => hasRole(Meteor.userId(), role)),
};
export function AuthorizationProvider({ children }) {
return <AuthorizationContext.Provider children={children} value={contextValue} />;
}