# fahai-cms **Repository Path**: richcoder/fahai-cms ## Basic Information - **Project Name**: fahai-cms - **Description**: No description available - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2020-03-13 - **Last Updated**: 2024-09-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 后台说明文档 版本解释权[®法海](http://www.fahai.com) 所有 ## 后台权限设置规则 * 后台权限采用是spring security的权限配置来实现具体不同角色和不同权限的控制,数据库中权限相关的库表主要有: * sys_user:用户主表,主要包含用户名,密码; * user_group:用户的公司部门表,与权限配置无关; * user_role:用户角色表,当新增用户时,会给此用户一个默认的角色,而此角色可以有相应的操作权限;如分配为ADMIN 则默认拥有所有的权限; * role_menu:角色菜单关联表,其中包含role // 0:所有权限 // 1:只读权限 // 2:禁用权限,用于配置读写 * menu:记录菜单名称的表,主要是用来配置权限的角色的,比如菜单名为LAWYER,role为 0 默认对律师模块进行所有权限操作。 #### 权限配置 - 权限认证是先验证用户名和密码是否与库里相匹配(密码暂时未采用任何加密撒盐方式,以明文存储); - 每个类级别的验证需要在类上增加注解@EnableGlobalMethodSecurity(prePostEnabled = true),需要和方法注解配合使用; - 每个方法级别增加验证注解: @PreAuthorize("hasAuthority('CUSTOMER-0')"),其中本项目采用“角色”+“权限数字”的组合方式进行验证,比如上面注解中为CUSTOMER(客户端模块)-0(所有权限) - 采用联合菜单角色+权限或组角色认证的方式:@PreAuthorize("hasAnyAuthority('ADMIN','账号管理-0','账号管理-1')") - 或者采用: @PreAuthorize("hasAuthority('ADMIN') or hasRole('账号管理-0')") #### 权限sql查询 - 查询某个人的具体权限 use newfahai; SELECT * FROM sys_user ur left join user_role ro on ur.role_id=ro.role_id left join role_menu rm on rm.role_id=ro.role_id where ur.user_name='sunkaiyu'; - 查询某个角色对应菜单的权限 use newfahai; SELECT * FROM user_role ur left join role_menu rm on ur.role_id=rm.role_id; - 查询某个角色对应菜单的权限,可看到菜单名称 use newfahai; SELECT * FROM user_role ur left join role_menu rm on ur.role_id=rm.role_id left join menu m on m.menu_id=rm.menu_id; ## Rest 接口风格 - POST /uri 创建 - DELETE /uri/xxx 删除 - PUT /uri/xxx 更新或创建 - GET /uri/xxx 查看