吉日嘎拉的权限管理系统原功能中只是控制用户角色名称唯一,但实际使用中我更需要角色编码唯一不重复!
直接上代码,在Role的Add和Update方法中,增加如下代码:
//检查角色Code是否重复 Troy.Cui 2016-08-17 List<KeyValuePair<string, object>> parametersCode = new List<KeyValuePair<string, object>>(); if (!string.IsNullOrEmpty(entity.OrganizeId)) { parametersCode.Add(new KeyValuePair<string, object>(BaseRoleEntity.FieldOrganizeId, entity.OrganizeId)); } parametersCode.Add(new KeyValuePair<string, object>(BaseRoleEntity.FieldCode, entity.Code)); parametersCode.Add(new KeyValuePair<string, object>(BaseRoleEntity.FieldDeletionStateCode, 0));
再加上判断函数,新增和修改的函数有点差别
else if (this.Exists(parametersCode)) { // 编码已重复 statusCode = Status.ErrorCodeExist.ToString(); }
else if (this.Exists(parametersCode, entity.Id)) { // 编码已重复 statusCode = Status.ErrorCodeExist.ToString(); }
看看角色编码报错信息吧:
还有角色名称重复时报错:
当然了,如果你想整个子系统中的任何组织中都不能存在重复的角色编码和名称,可以去掉OrganizeId的判断条件