All files / libs/kernel/auth/shared/src/abilities/user-profiles permissions.ts

100% Statements 41/41
100% Branches 6/6
60% Functions 6/10
100% Lines 41/41

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 421x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x  
import { SubjectsEnum, type Ability } from '../../types';
 
import { UserProfilesActions } from './actions';
import {
  inviteProfileSubject,
  userProfileSubject,
  type InviteProfileSubject,
  type UserProfileSubject,
} from './subjects';
 
export const canViewUserProfiles = (ability: Ability) =>
  ability.can(UserProfilesActions.view, SubjectsEnum.UserProfile);
 
// FIXME: only used in tests.
export const canViewAllUserProfiles = (ability: Ability) => ability.can(UserProfilesActions.view, userProfileSubject());
 
export const canViewThisUserProfile = (ability: Ability, subject: UserProfileSubject) =>
  ability.can(UserProfilesActions.view, userProfileSubject(subject));
 
export const canModifyUserProfiles = (ability: Ability) =>
  ability.can(UserProfilesActions.modify, SubjectsEnum.UserProfile);
 
// FIXME: only used in tests.
export const canModifyAllUserProfiles = (ability: Ability) =>
  ability.can(UserProfilesActions.modify, userProfileSubject());
 
// FIXME: not used in the frontend.
export const canModifyThisUserProfile = (ability: Ability, subject: UserProfileSubject) =>
  ability.can(UserProfilesActions.modify, userProfileSubject(subject));
 
export const canInviteUserProfiles = (ability: Ability) =>
  ability.can(UserProfilesActions.invite, SubjectsEnum.UserProfile);
 
export const canInviteThisUser = (ability: Ability, subject: InviteProfileSubject) =>
  ability.can(UserProfilesActions.invite, inviteProfileSubject(subject));
 
export const canToggleUserProfilesDeactivation = (ability: Ability) =>
  ability.can(UserProfilesActions.toggle_deactivation, SubjectsEnum.UserProfile);
 
export const canToggleThisUserProfileDeactivation = (ability: Ability, subject: UserProfileSubject) =>
  ability.can(UserProfilesActions.toggle_deactivation, userProfileSubject(subject));