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 | 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 19x 19x 1x | import { permittedFieldsOf } from '@casl/ability/extra';
import { type UserProfile } from '@amalia/tenants/users/profile/types';
import { type Ability } from '../../types';
import { UserProfilesActions } from './actions';
import { userProfileSubject } from './subjects';
export const USER_PROFILE_FIELDS = [
'adminScopeId',
'firstName',
'lastName',
'email',
'role',
'currency',
'externalId',
'externalIdSource',
'hrisId',
'hrisIdSource',
'language',
'taxResidency',
] as const;
type EditableUserField = (typeof USER_PROFILE_FIELDS)[number];
export const permittedUserProfileFields = (ability: Ability, user?: Pick<UserProfile, 'id'>) =>
permittedFieldsOf(ability, UserProfilesActions.modify, userProfileSubject(user), {
fieldsFrom: (rule) => rule.fields || [...USER_PROFILE_FIELDS],
}) as EditableUserField[];
|