31 lines
1.1 KiB
Java
31 lines
1.1 KiB
Java
package ru.soune.nocopy.entity.user;
|
|
|
|
public class Permission {
|
|
public static final long LOGIN_BIT = 1L;
|
|
public static final long COMPANY_SETTINGS_BIT = 1L << 1;
|
|
public static final long DEFAULT_USER_PERMISSIONS = LOGIN_BIT;
|
|
public static final long COMPANY_ADMIN_PERMISSIONS =
|
|
LOGIN_BIT | COMPANY_SETTINGS_BIT;
|
|
public static final long SUPER_ADMIN_PERMISSIONS = -1L;
|
|
|
|
public static boolean hasPermission(long userPermissions, long permissionBit) {
|
|
return (userPermissions & permissionBit) != 0;
|
|
}
|
|
|
|
public static long addPermission(long userPermissions, long permissionBit) {
|
|
return userPermissions | permissionBit;
|
|
}
|
|
|
|
public static long removePermission(long userPermissions, long permissionBit) {
|
|
return userPermissions & ~permissionBit;
|
|
}
|
|
|
|
public static boolean canLogin(long userPermissions) {
|
|
return hasPermission(userPermissions, LOGIN_BIT);
|
|
}
|
|
|
|
public static boolean canManageCompanySettings(long userPermissions) {
|
|
return hasPermission(userPermissions, COMPANY_SETTINGS_BIT);
|
|
}
|
|
}
|