Browse Source

B2B默认角色恢复默认权限

dongbw 8 years ago
parent
commit
5d1a68b26b

+ 27 - 0
src/main/java/com/uas/platform/b2b/controller/RoleController.java

@@ -68,6 +68,21 @@ public class RoleController {
 		return new ResponseEntity<String>(HttpStatus.OK);
 	}
 
+	/**
+	 * 默认角色恢复默认权限
+	 *
+	 * @param roleId ID
+	 * @return
+	 */
+	@RequestMapping(value = "/recover/{roleId}", method = RequestMethod.POST)
+	public ResponseEntity<String> recover(@PathVariable("roleId") Long roleId) {
+		Role role = roleService.recover(roleId);
+		if (null != role) {
+			logger.log("角色", "恢复默认角色权限成功", role.getDuty(), role.getDesc(), role.getId());
+		}
+		return new ResponseEntity<String>(HttpStatus.OK);
+	}
+
 	/**
 	 * 查询当前用户在当前企业的角色是否是管理员或者销售经理
 	 *
@@ -82,4 +97,16 @@ public class RoleController {
 	@RequestMapping(value = "/isManager", method =  RequestMethod.GET)
 	@ResponseBody
 	public ModelMap isManager(){return  roleService.isManager(); }
+
+	/**
+	 * 获取当前角色的默认角色
+	 *
+	 * @param roleId ID
+	 * @return
+	 */
+	@RequestMapping(value = "/default/{roleId}", method = RequestMethod.GET)
+	@ResponseBody
+	public Role getDefaultRole(@PathVariable("roleId") Long roleId) {
+		return roleService.getDefaultRole(roleId);
+	}
 }

+ 8 - 0
src/main/java/com/uas/platform/b2b/dao/RoleDao.java

@@ -65,4 +65,12 @@ public interface RoleDao extends JpaRepository<Role, Long> {
 	 */
 	@Query(value = "select count(1) from sec$roles r left join sec$userrole u on r.role_id = u.role_id where r.role_enuu = :enuu and u.user_uu = :useruu and r.role_name = 'ROLE_ADMIN'",nativeQuery = true)
 	Double findByEnuuAndUserUU(@Param("enuu") Long enuu, @Param("useruu") Long useruu);
+
+	/**
+	 * 根据角色名称查找默认角色的默认值
+	 * @param desc
+	 * @return
+	 */
+	@Query(value = "select * from sec$roles r where r.role_desc = :description and r.isdefault = 1 and r.role_enuu is null and rownum <= 1",nativeQuery = true)
+    Role findDefaultRoleByDesc(@Param("description")String desc);
 }

+ 8 - 0
src/main/java/com/uas/platform/b2b/service/RoleService.java

@@ -64,4 +64,12 @@ public interface RoleService {
 	 * @return
 	 */
 	ModelMap isManager();
+
+	/**
+	 * 恢复默认权限
+	 * @param role
+	 */
+    Role recover(Long roleId);
+
+    Role getDefaultRole(Long roleId);
 }

+ 40 - 3
src/main/java/com/uas/platform/b2b/service/impl/RoleServiceImpl.java

@@ -1,8 +1,6 @@
 package com.uas.platform.b2b.service.impl;
 
-import com.uas.platform.b2b.dao.EnterpriseDao;
-import com.uas.platform.b2b.dao.RoleDao;
-import com.uas.platform.b2b.dao.UserDao;
+import com.uas.platform.b2b.dao.*;
 import com.uas.platform.b2b.model.Role;
 import com.uas.platform.b2b.model.User;
 import com.uas.platform.b2b.service.RoleService;
@@ -29,6 +27,13 @@ public class RoleServiceImpl implements RoleService {
 	@Autowired
 	private UserDao userDao;
 
+	@Autowired
+	private ResourceItemDao resourceItemDao;
+
+	@Autowired
+	private ResourceDao resourceDao;
+
+
 	@Override
 	public List<Role> findAll() {
 		return findByEnterprise(SystemSession.getUser().getEnterprise().getUu());
@@ -97,4 +102,36 @@ public class RoleServiceImpl implements RoleService {
 		return new ModelMap("isManager", roleDao.findByEnuuAndUserUU(SystemSession.getUser().getEnterprise().getUu(),SystemSession.getUser().getUserUU()) > 0 ? true : false);
 	}
 
+	/**
+	 * 恢复默认权限
+	 *
+	 * @param roleId
+	 */
+	@Override
+	public Role recover(Long roleId) {
+		Role role = roleDao.findOne(roleId);
+		if (null != role) {
+			Role defaultRole = roleDao.findDefaultRoleByDesc(role.getDesc());
+			if (null != defaultRole) {
+				role.getResourceItems().clear();
+				role.getResourceItems().addAll(defaultRole.getResourceItems());
+				role = roleDao.save(role);
+				return role;
+			}
+		}
+		return null;
+	}
+
+	@Override
+	public Role getDefaultRole(Long roleId) {
+		Role role = roleDao.findOne(roleId);
+		if (null != role) {
+			Role defaultRole = roleDao.findDefaultRoleByDesc(role.getDesc());
+			if (null != defaultRole) {
+				return defaultRole;
+			}
+		}
+		return null;
+	}
+
 }

+ 14 - 1
src/main/webapp/resources/js/index/app.js

@@ -11107,7 +11107,7 @@ define(['toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
                 title: '提示',
                 content: '确定删除角色(' + $scope.role.desc + ')吗?'
             }, function () {
-                AccountRole.remove({id: role.id}, function () {
+                AccountRole.remove({id: role.id}, {}, function () {
                     toaster.pop('success', '提示', '角色:' + $scope.role.desc + ' 删除成功');
                     $modalInstance.close(true);
                 }, function (response) {
@@ -11115,6 +11115,19 @@ define(['toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
                 });
             })
         };
+        $scope.recover = function () {
+            new ngAlert({
+                title: '提示',
+                content: '确定将“' + $scope.role.desc + '”恢复默认权限吗?'
+            }, function () {
+                AccountRole.recover({roleId: role.id}, {}, function () {
+                    toaster.pop('success', '提示', '角色:' + $scope.role.desc + ' 恢复默认权限成功');
+                    $modalInstance.close(true);
+                }, function (response) {
+                    toaster.pop('error', '错误', response.data);
+                });
+            })
+        };
     }]);
 
     /**

+ 23 - 2
src/main/webapp/resources/js/index/services/Account.js

@@ -25,7 +25,28 @@ define([ 'ngResource' ], function() {
 	}]).factory('AccountResource', ['$resource', function($resource) {
 		return $resource('account/resource', {});
 	}]).factory('AccountRole', ['$resource', function($resource) {
-		return $resource('account/role/:id');
+		return $resource('account/role/:id', {}, {
+			// 确认修改
+			save: {
+				url: 'account/role',
+				method: 'POST'
+			},
+			// 确认删除
+            remove: {
+				url: 'account/role/:id',
+				method: 'DELETE'
+			},
+			// 恢复默认
+            recover: {
+                url: 'account/role/recover/:roleId',
+                method: 'POST'
+            },
+            // 获取默认权限
+            getDefaultRole: {
+                url: 'account/role/default/:roleId',
+                method: 'GET'
+            }
+		});
 	}]).factory('FuzzySearch', ['$resource', function($resource){
 		return $resource('account/user', {}, {
 			//绑定界面的用户搜索
@@ -48,7 +69,7 @@ define([ 'ngResource' ], function() {
             },
 			isManager: {
             	url: 'account/role/isManager',
-				mehtod: 'GET'
+				method: 'GET'
 			}
         })
     }]);

+ 1 - 0
src/main/webapp/resources/tpl/index/approvalFlow/role_detail.html

@@ -59,6 +59,7 @@
 		<p class="pull-left text-muted" ng-show="role.isdefault == 1">
 			<i class="fa fa-fw fa-warning"></i>默认角色不允许删除,只能修改权限分配
 		</p>
+		<button class="btn btn-warning" type="button" ng-click="recover()" ng-if="role.isdefault == 1">恢复默认</button>
 		<button class="btn btn-primary" type="submit"
 			ng-disabled="roleForm.$invalid || !isChanged(role)">确认</button>
 		<button class="btn btn-default" type="button"