适用于不同类型的用户

时间:2016-10-13 20:44:05

标签: java user-interface web permissions

我是第一次从头开始用Java构建一个相当广泛的Web应用程序,并且需要有关域设置的一些指导。该应用程序将由教师和学生使用,他们将能够在应用程序中执行不同的操作,这也要求他们具有不同的属性。

我的想法是进入域的主要入口是User类。该课程将包含姓名,电子邮件和登录密码等内容。但是,根据登录的人是教师还是学生,他们必须能够访问不同的东西。例如,教师必须有一个设置,告诉他或她正在教授哪些科目。

首先,这对我来说似乎是一个典型的继承问题:将User类抽象化,让教师和学生类扩展User。但我不确定这是最好的解决方案,所以我写这篇文章的主要原因是我正在寻求一个可以让我的思绪开箱即用的讨论。

可能重复(为什么我认为他们不是):

  • How to create pages with different permissions' views
    这是关于确定用户是否可以访问某些服务,例如查看页面或单击按钮。这是一个单独的问题,可以通过将用户分组到组中,为每个组分配一组权限并检查这些权限来解决。它并没有直接与我的问题联系在一起,即使它限制了我解决问题的选择;所有登录用户都必须有一个入口点(权限授予用户类的实例,而不是其他用户)

  • How to model system with different types of users?
    这也与每个用户有权执行哪些操作有关,而不是用户的实际属性。虽然,我已经考虑过使用这样的结构;如果用户具有角色TEACHER_ROLE,则将用户强制转换为单独的Teacher类。但我宁愿在没有运行时依赖的转换的情况下解决这个问题。

TL; DR:
创建应用程序时可能有哪些选项,其中不同的已登录用户应具有不同的属性,具体取决于他们的用户类型?

1 个答案:

答案 0 :(得分:0)

我是我所在大学的Canvas管理员......很多时候,老师会在课程空间(研讨会,部门社区小组等)中担任学生角色,偶尔学生会有教师角色(学生)俱乐部等使用课程管理系统作为社区交流工具。)

所以...我会有人。然后定义一堆真/假类型权限,包括课程级别和以上级别。然后我会创建适当的服务器级角色(管理员,服务台,部门主席等)和课程级别角色(教师,学生,学生等),并决定他们应该拥有哪些权限。

有人登录,他们在服务器级别,是普通人,管理员或具有部分管理员权限的人。如果他们有课程注册,那么当他们进入课程时,他们拥有允许注册类型在课程中拥有的权利。

看看Canvas,Desire2Learn,Moodle,Sakai,Blackboard等的文档。虽然所有这些文件都有不同的名称,但他们都使用了具有权利角色的人员#34;模型。