public Status delete(List <int> roleIDs) { if (roleIDs.Count == 0) { return(Status.SUCCESS); } RoleDAO roleDao = Factory.getInstance <RoleDAO>(); Role_PermissionDAO role_PermissionDao = Factory.getInstance <Role_PermissionDAO>(); Dictionary <string, object> wherelist = new Dictionary <string, object>(); foreach (int roleID in roleIDs) { //获取角色信息 RoleVO roleVo = roleDao.getOne <RoleVO>(roleID); if (roleVo.isIntegrant)//禁止删除系统角色 { return(Status.PERMISSION_DENIED); } wherelist.Clear(); wherelist.Add("roleID", roleID); role_PermissionDao.delete(wherelist); } return(Status.SUCCESS); }
/// <summary> /// 创建角色 /// </summary> /// <param name="role"></param> /// <returns></returns> public Status create(CreateRole role) { if (string.IsNullOrWhiteSpace(role.roleName)) { return(Status.ARGUMENT_ERROR); } //修正字符串 role.roleName = role.roleName.Trim(); //检查长度规范 if (!checkFormat(role.roleName)) { return(Status.FORMAT_ERROR); } RoleDAO roleDao = Factory.getInstance <RoleDAO>(); Role_PermissionDAO role_PermissionDao = Factory.getInstance <Role_PermissionDAO>(); //不允许添加无权限角色 if (role.permissionIDs == null || role.permissionIDs.Count == 0) { return(Status.ARGUMENT_ERROR); } //插入角色 int roleID = RoleDAO.getID(); if (roleDao.insert <RoleVO>( new RoleVO { roleID = roleID, roleName = role.roleName }) < 0) { return(Status.NAME_EXIST); } //插入角色、权限关联 Queue <int> role_permissionIDs = new Queue <int>(); for (int i = 0; i < role.permissionIDs.Count; i++) { int id = Role_PermissionDAO.getID(); if (role_PermissionDao.insert <Role_PermissionVO>( new Role_PermissionVO { role_permissionID = id, roleID = roleID, permissionID = role.permissionIDs[i] }) != 1) { //如果失败,,回退 while (role_permissionIDs.Count != 0) { id = role_permissionIDs.Dequeue(); role_PermissionDao.delete(id); } roleDao.delete(roleID); return(Status.FAILURE); } role_permissionIDs.Enqueue(id); } return(Status.SUCCESS); }