permission.ts 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. // 权限检查工具函数
  2. import type { User, SystemUser } from '@smartcut/types';
  3. /**
  4. * 检查是否为系统管理员
  5. */
  6. export function isSystemAdmin(user: SystemUser | User): boolean {
  7. return (user as SystemUser).username !== undefined && !(user as User).role;
  8. }
  9. /**
  10. * 检查是否为工厂管理员
  11. */
  12. export function isFactoryAdmin(user: User): boolean {
  13. return user.role === 'factory_admin';
  14. }
  15. /**
  16. * 检查是否为工人
  17. */
  18. export function isWorker(user: User): boolean {
  19. return user.role === 'worker';
  20. }
  21. /**
  22. * 检查用户状态是否为启用
  23. */
  24. export function isUserEnabled(user: User | SystemUser): boolean {
  25. return user.status === 1;
  26. }
  27. /**
  28. * 检查是否需要强制修改密码
  29. */
  30. export function needsPasswordChange(user: User | SystemUser): boolean {
  31. return user.must_change_password === true;
  32. }
  33. /**
  34. * 检查是否有权限访问工厂资源
  35. */
  36. export function canAccessFactory(user: User, _factoryId: string): boolean {
  37. return isUserEnabled(user);
  38. }
  39. /**
  40. * 检查是否有权限管理用户
  41. */
  42. export function canManageUsers(user: User): boolean {
  43. return isFactoryAdmin(user);
  44. }
  45. /**
  46. * 检查是否有权限创建工单
  47. */
  48. export function canCreateWorkOrder(user: User): boolean {
  49. return isFactoryAdmin(user);
  50. }
  51. /**
  52. * 检查是否有权限管理工资
  53. */
  54. export function canManageSalary(user: User): boolean {
  55. return isFactoryAdmin(user);
  56. }