我希望拥有这两者的基本用户角色和基本权限。 我决定创建单独的类,将它们存储在常量中。 应用程序将只有公司,应用程序(类似于网站),用户(分配给公司),角色和权限作为域模型。表和关系表是相同的。可以在将来添加额外角色,但他们会有这些许可。
超级管理员可以做任何事情,管理员可以做任何与他被分配到的公司有关的事情,用户只需阅读用户的信息。
应用程序很可能仅用作其他网站的Rest API。
我想知道为了检查用户在我的代码中的权限,使用常量这样的类是个好主意吗?像$ user-> hasPermissionTo(PermissionType :: COMPANY_ADD)或$ user-> hasRole(RoleType :: SUPER_ADMIN)。我可以遇到什么问题?
非常感谢!!!
这是具有应用程序基本权限的PermissionType类。
final class PermissionType {
const USER_READ = 'user.read';
const USER_ADD = 'user.add';
const USER_UPDATE = 'user.update';
const USER_DELETE = 'user.delete';
const APP_READ = 'app.read';
const APP_ADD = 'app.add';
const APP_UPDATE = 'app.update';
const APP_DELETE = 'app.delete';
const COMPANY_READ = 'company.read';
const COMPANY_ADD = 'company.add';
const COMPANY_UPDATE = 'company.update';
const COMPANY_DELETE = 'company.delete';
const ROLE_READ = 'role.read';
const ROLE_ADD = 'role.add';
const ROLE_UPDATE = 'role.update';
const ROLE_DELETE = 'role.delete';
}
这是基本的RoleType类,具有默认角色'每个人的姓名和默认权限
final class RoleType {
const USER = 'user';
const ADMIN = 'admin';
const SUPER_ADMIN = 'super_admin';
const DEFAULT_ROLE_PERMISSIONS = [
self::USER => [Permission::USER_READ],
self::ADMIN => [
Permission::USER_READ,
Permission::USER_ADD,
Permission::USER_UPDATE,
Permission::USER_DELETE,
Permission::APP_READ,
Permission::APP_ADD,
Permission::APP_UPDATE,
Permission::APP_DELETE,
Permission::COMPANY_READ,
Permission::COMPANY_ADD,
Permission::COMPANY_UPDATE,
Permission::COMPANY_DELETE,
Permission::ROLE_READ,
Permission::ROLE_ADD,
Permission::ROLE_UPDATE,
Permission::ROLE_DELETE,
],
self::SUPER_ADMIN => [
Permission::USER_READ,
Permission::USER_ADD,
Permission::USER_UPDATE,
Permission::USER_DELETE,
Permission::APP_READ,
Permission::APP_ADD,
Permission::APP_UPDATE,
Permission::APP_DELETE,
Permission::COMPANY_READ,
Permission::COMPANY_ADD,
Permission::COMPANY_UPDATE,
Permission::COMPANY_DELETE,
Permission::ROLE_READ,
Permission::ROLE_ADD,
Permission::ROLE_UPDATE,
Permission::ROLE_DELETE,
]
];
}