我试图弄清楚我需要在基于角色的访问控制系统的UML中指定什么。 基本上,我有一个数据库,只有特定的人员才能访问该数据库中的特定功能或信息。我的学术助手告诉我使用基于角色的访问控制系统,并将一些东西写在纸上。
在左侧,您可以在Model-View-Control的模型部分中看到这3个角色,并将其连接到数据库。 我的基本问题是:在Role类和Role类中,我需要哪些函数/变量,以便访问控制系统起作用,为什么? 通常,这应该用Java编写。
编辑:每个角色都有其自己的登录凭据,因此在登录时将对其进行标识。使用该登录名,他们应该获得其中一个角色,但我不知道如何赋予他们该角色。
答案 0 :(得分:0)
嗯,仍然有很多很多方法可以对此建模。基本上,这不是UML,而是设计问题。无论如何,这是有可能的:
用户只有一个Role
,该Role
在登录期间被永久分配。当然,具有管理员权限的用户可以将此角色更改为其他角色。 Applications
包含分配的RoleApplication
的列表,其中关联类// rating.js
const mongoose = require('mongoose')
const joigoose = require('joigoose')(mongoose)
// Require the 'ratings' schema
const schema = require('./rating-schema')
// Convert joi to mongoose schema
const mongooseSchema = joigoose.convert(schema);
// Modify some fields with database specific instructions
mongooseSchema.email.unique = true
// Add fields which don't make sense on the schema validator
mongooseSchema.updatedAt = { type: Date, default: Date.now }
mongooseSchema.createdAt = { type: Date, default: Date.now }
// Define mongoose model
const Ratings = mongoose.model('Ratings', mongooseSchema)
module.exports = Ratings
可以保存有关角色可以对应用程序执行的操作的属性。
现在,您如何控制管理员可以更改权限,并且安全系统附带的所有这些漂亮功能绝对太宽泛了,无法在此处使用。