关于角色,我有一个概念问题。我不太熟悉数据库设计或访问控制。假设我有4个系列。
位置
验证注册用户是否属于公司的好方法是什么?我正在考虑手动验证,因为并非公司中的每个人都可以访问。但任何聪明的想法都会受到赞赏。
收藏品设备和地点包含属于不同公司的文件。这些系列可以变得非常大。为每家公司设置“设备集合”是否明智?
我应该为每家公司创建一个组并将用户添加到正确的组吗?
将馆藏/文档链接到用户/公司的最佳方式是什么?
还有其他想法吗?
谢谢。
答案 0 :(得分:1)
您是否尝试过使用:https://github.com/alanning/meteor-roles
我用它来验证流星中的角色。 “公司”系列中会有一个条目,因此您可以拥有公司ID。随着流星角色的使用,我认为你的任务很容易。在例子中。
用户收藏将具有:
_id:
Name:
Role : [ //owner , employee ]
Company ID:
如果您将角色和公司ID作为一个数组来处理单个用户记录的多个公司,那么这取决于您,从而使其从长远来看变得更加灵活。
接下来将在您的用户集合中帮助您轻松跟踪角色。 IE。
isAdmin(companyId) {
if(isValidRolesData(this.roles,'default-group'))
return this.roles['default-group'].indexOf(`${companyId}-admin`) > -1;
},
/**
* Check if a user is Staff
*
* @param {any} facilityid
* @returns
*/
isStaff(companyId) {
if(isValidRolesData(this.roles,'default-group'))
return this.roles['default-group'].indexOf(`${companyId}-staff`) > -1;
},
/**
* Check if a user is Receptionist
*
* @param {any} facilityid
* @returns
*/
isReceptionist(companyId) {
if(isValidRolesData(this.roles,'default-group'))
return this.roles['default-group'].indexOf(`${companyId}-receptionist`) > -1;
},
通过这种流程,我猜你可以实现你需要的确切内容:)