1
0
mirror of https://github.com/LaCasemate/fab-manager.git synced 2025-02-09 03:54:23 +01:00

36 lines
952 B
TypeScript
Raw Normal View History

import { User } from '../models/user';
import { supportedNetworks, SupportedSocialNetwork } from '../models/social-network';
2021-06-30 15:32:10 +02:00
export default class UserLib {
private user: User;
constructor (user: User) {
this.user = user;
}
/**
* Check if the current user has privileged access for resources concerning the provided customer
*/
isPrivileged = (customer: User): boolean => {
if (this.user.role === 'admin') return true;
2021-06-30 15:32:10 +02:00
if (this.user.role === 'manager') {
2021-06-30 15:32:10 +02:00
return (this.user.id !== customer.id);
}
return false;
2022-03-29 17:21:29 +02:00
};
2022-04-28 17:31:31 +02:00
/**
* Filter social networks from the user's profile
*/
2022-05-02 17:54:58 +02:00
getUserSocialNetworks = (customer: User): {name: string, url: string}[] => {
2022-04-28 17:31:31 +02:00
const userNetworks = [];
2022-05-04 14:57:31 +02:00
for (const [name, url] of Object.entries(customer.profile_attributes)) {
supportedNetworks.includes(name as SupportedSocialNetwork) && userNetworks.push({ name, url });
2022-04-28 17:31:31 +02:00
}
return userNetworks;
};
2021-06-30 15:32:10 +02:00
}