菜单管理
当开发者使用代码生成工具生成代码或者自行编写程序后,需要嵌入到管理后台来展示,这时候就需要在管理后台配置程序的入口。
管理后台提供了菜单管理模块,开发者可以直接配置菜单的位置、名称、地址以及显示图标等信息。
在菜单管理页面左边的菜单树,开发者可以直接通过拖拽来对菜单进行排序,拖拽时向右拉动可以将菜单挂载为其他菜单的子菜单,由于菜单层级过多在展示时十分影响体验,所以在本系统中菜单设置最多只能三级。拖拽完成后,需要点击保存顺序按钮进行保存,否则刷新就会恢复原样。
当需要创建新菜单时,点击创建菜单按钮,右侧表单标题会变为“创建菜单”并且表单会重置,点击菜单树的编辑图标,右侧表单标题会变为“编辑菜单”,右侧表单会自动填充所编辑菜单的信息供开发者在此基础上进行修改。
点击菜单树红色垃圾桶图标,系统将会提示您确定删除此菜单,删除一个菜单将会删除其所有子菜单,所以建议开发者先将子菜单进行移动后再删除,在删除时,系统也会要求输入管理密码来确认删除,避免误操作。
在菜单信息编辑时,系统已经内置大量常用的字体图标,开发者可以直接进行选择。如果还需要进行扩展,就点击进入图标添加。
如果菜单需要国际化,每个菜单展示中都有一个i18n字段,填写这个字段后,系统将自动到资源目录下查找i18n/messages_*.properties文件的相关取值。如果没有填写则默认使用菜单名称来显示。
当菜单禁用后,在系统中将不会再显示这个菜单,包括权限分配时也不会显示。
输入菜单的顺序,可以控制菜单的显示顺序,包括管理后台的展示和菜单管理、权限分配中的菜单顺序。
菜单地址有分为站内地址和站外地址,如果是站内地址,通常形式是admin/index、admin/login,而站外地址需要加上协议头http://、https://,当菜单检测到是站内地址时会自动加上context名称
资源管理
本系统中的资源管理表示系统内需要进行权限控制的url,在基于http协议的应用中,所有的权限控制都可以转化为对url的控制,例如控制用户是否可以删除用户可以转化为用户是否有权限访问admin/user/delete。
在开发者编写了控制器之后,开发者把需要进行权限控制的Controller方法的访问地址添加到资源管理列表中。
添加/修改资源十分简单,但值得注意的是这里的url是去除了域名、端口和应用路径的url,准确的叫法应该是uri。并且还支持通配符*,例如可以配置用户管理:admin/user/**,这包括了admin/user/delete、admin/user/create等等,所以这要求在开发时开发者要遵循良好的url风格。需要进行权限控制的资源添加进来即可,不需要控制的地址可以不进行添加,默认除了admin/login等地址外,其他地址需要开发角色的权限才能访问。
权限管理
当系统的菜单、资源配置完成后,开发者就可以开始定义系统具备哪些权限。
举一个列子,当用户具备了用户管理权限之后,系统将会为此用户显示用户管理菜单,并且用户可以访问admin/user/list、admin/user/delete、admin/user/create等操作。
那么在权限配置就可以进行配置:
如上图所示,可以配置所编辑的权限拥有哪些权限,哪些可以访问的资源。
排序字段用于权限的显示顺序,这主要体现在权限配置页面的权限树展示顺序和角色权限分配的显示顺序。
当配置完成后,所关联的用户可浏览的菜单和访问资源会即时生效,刷新页面就能看到区别。