master
kira 6 years ago
parent 568e54467f
commit 06967690b9

@ -3,6 +3,8 @@ package au.com.royalpay.payment.manage.management.sysconfig.core;
import au.com.royalpay.payment.manage.management.sysconfig.beans.FuncInfo; import au.com.royalpay.payment.manage.management.sysconfig.beans.FuncInfo;
import au.com.royalpay.payment.manage.management.sysconfig.beans.PartnerModuleInfo; import au.com.royalpay.payment.manage.management.sysconfig.beans.PartnerModuleInfo;
import au.com.royalpay.payment.tools.permission.enums.ManagerRole; import au.com.royalpay.payment.tools.permission.enums.ManagerRole;
import au.com.royalpay.payment.tools.permission.enums.PartnerRole;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import java.util.List; import java.util.List;
@ -27,7 +29,7 @@ public interface PermissionPartnerManager {
List<String> listRoleFunctions(ManagerRole role); List<String> listRoleFunctions(ManagerRole role);
void authorizeRole(ManagerRole role, List<String> functions); void authorizeRole(PartnerRole role, List<String> functions);
List<JSONObject> listUserFunctions(int role); List<JSONObject> listUserFunctions(int role);

@ -12,6 +12,7 @@ import au.com.royalpay.payment.manage.permission.manager.scanner.PermissionPartn
import au.com.royalpay.payment.manage.system.core.PermissionClientModulesService; import au.com.royalpay.payment.manage.system.core.PermissionClientModulesService;
import au.com.royalpay.payment.tools.exceptions.BadRequestException; import au.com.royalpay.payment.tools.exceptions.BadRequestException;
import au.com.royalpay.payment.tools.permission.enums.ManagerRole; import au.com.royalpay.payment.tools.permission.enums.ManagerRole;
import au.com.royalpay.payment.tools.permission.enums.PartnerRole;
import au.com.royalpay.payment.tools.utils.id.IdUtil; import au.com.royalpay.payment.tools.utils.id.IdUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
@ -175,7 +176,7 @@ public class PermissionPartnerManagerImpl implements PermissionPartnerManager {
} }
@Override @Override
@CacheEvict(value = ":login:managers:", allEntries = true) @CacheEvict(value = ":login:partners:", allEntries = true)
public void setFunctionModule(String funcId, String moduleName) { public void setFunctionModule(String funcId, String moduleName) {
if (moduleName == null) { if (moduleName == null) {
throw new BadRequestException("module name not provided"); throw new BadRequestException("module name not provided");
@ -204,10 +205,11 @@ public class PermissionPartnerManagerImpl implements PermissionPartnerManager {
@Override @Override
@Transactional @Transactional
@CacheEvict(value = ":login:managers:", allEntries = true) @CacheEvict(value = ":login:partners:", allEntries = true)
public void authorizeRole(ManagerRole role, List<String> functions) { public void authorizeRole(PartnerRole role, List<String> functions) {
permissionPartnerFunctionMapper.clearRolePermission(role.getInverseMask());
permissionPartnerFunctionMapper.authorizeRole(role.getMask(), functions); permissionPartnerFunctionMapper.clearRolePermission(role.getCode());
permissionPartnerFunctionMapper.authorizeRole(role.getCode(), functions);
} }
@Override @Override

@ -5,6 +5,7 @@ import au.com.royalpay.payment.manage.management.sysconfig.beans.PartnerModuleIn
import au.com.royalpay.payment.manage.management.sysconfig.core.PermissionPartnerManager; import au.com.royalpay.payment.manage.management.sysconfig.core.PermissionPartnerManager;
import au.com.royalpay.payment.tools.exceptions.BadRequestException; import au.com.royalpay.payment.tools.exceptions.BadRequestException;
import au.com.royalpay.payment.tools.permission.enums.ManagerRole; import au.com.royalpay.payment.tools.permission.enums.ManagerRole;
import au.com.royalpay.payment.tools.permission.enums.PartnerRole;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
@ -81,8 +82,8 @@ public class SysPermissionPartnerConfigController {
public void authorizeRole(@PathVariable String roleMask, @RequestBody List<String> functions){ public void authorizeRole(@PathVariable String roleMask, @RequestBody List<String> functions){
try { try {
int mask = Integer.parseInt(roleMask, 2); int mask = Integer.parseInt(roleMask, 2);
for (ManagerRole role : ManagerRole.values()) { for (PartnerRole role : PartnerRole.values()) {
if (mask == role.getMask()) { if (mask == role.getCode()) {
permissionPartnerManager.authorizeRole(role,functions); permissionPartnerManager.authorizeRole(role,functions);
return; return;
} }

@ -13,13 +13,13 @@
<update id="clearRolePermission"> <update id="clearRolePermission">
<![CDATA[ <![CDATA[
UPDATE sys_permission_partner_functions UPDATE sys_permission_partner_functions
SET role = role & #{mask} SET role = replace(role,#{mask},'')
]]> ]]>
</update> </update>
<update id="authorizeRole"> <update id="authorizeRole">
<![CDATA[ <![CDATA[
UPDATE sys_permission_partner_functions UPDATE sys_permission_partner_functions
SET role = role | #{mask} SET role = concat(role,#{mask})
WHERE func_id in WHERE func_id in
]]> ]]>
<foreach collection="func_ids" item="id" open="(" close=")" separator=","> <foreach collection="func_ids" item="id" open="(" close=")" separator=",">
@ -29,7 +29,7 @@
<select id="listByRoleMask" resultType="com.alibaba.fastjson.JSONObject"> <select id="listByRoleMask" resultType="com.alibaba.fastjson.JSONObject">
<include refid="joinModule"/> <include refid="joinModule"/>
<![CDATA[ <![CDATA[
WHERE f.role & #{mask} >0 WHERE f.role like concat('%',#{mask},'%')
]]> ]]>
</select> </select>
<select id="listAll" resultType="com.alibaba.fastjson.JSONObject"> <select id="listAll" resultType="com.alibaba.fastjson.JSONObject">

@ -27,7 +27,7 @@
<i class="fa fa-user-secret"></i> <i class="fa fa-user-secret"></i>
Administrator Administrator
</a> </a>
<a class="btn btn-app" role="button" ng-click="authorizeRole('10')"> <a class="btn btn-app" role="button" ng-click="authorizeRole('3')">
<i class="fa fa-eye"></i> <i class="fa fa-eye"></i>
Compliance Compliance
</a> </a>

Loading…
Cancel
Save