/// <summary> /// 授予资源的权限 /// </summary> /// <param name="userInfo">用户</param> /// <param name="resourceCategory">资源分类</param> /// <param name="resourceId">资源主键</param> /// <param name="grantPermissionItemIds">操作权限主键</param> /// <returns>影响的行数</returns> public int GrantResourcePermission(UserInfo userInfo, string resourceCategory, string resourceId, string[] grantPermissionItemIds) { var returnValue = 0; var parameter = ParameterUtil.CreateWithMessage(userInfo, MethodBase.GetCurrentMethod(), this.serviceName, RDIFrameworkMessage.PermissionService_GrantResourcePermission); ServiceUtil.ProcessRDIReadDb(userInfo, parameter, dbProvider => { if (grantPermissionItemIds != null) { var permissionManager = new PiPermissionManager(dbProvider, userInfo); for (int i = 0; i < grantPermissionItemIds.Length; i++) { var resourcePermissionEntity = new PiPermissionEntity { ResourceCategory = resourceCategory, ResourceId = resourceId, PermissionId = grantPermissionItemIds[i], Enabled = 1, DeleteMark = 0 }; permissionManager.Add(resourcePermissionEntity); returnValue++; } } }); return(returnValue); }
// // 授予权限的实现部分 // #region private string Grant(PiPermissionManager permissionManager, string organizeId, string permissionItemId) 为了提高授权的运行速度 /// <summary> /// 为了提高授权的运行速度 /// </summary> /// <param name="permissionManager">资源权限读写器</param> /// <param name="organizeId">组织机构主键</param> /// <param name="permissionItemId">权限主键</param> /// <returns>主键</returns> private string Grant(PiPermissionManager permissionManager, string organizeId, string permissionItemId) { string returnValue = string.Empty; PiPermissionEntity resourcePermission = new PiPermissionEntity { ResourceCategory = PiOrganizeTable.TableName, ResourceId = organizeId, PermissionId = permissionItemId, Enabled = 1 }; // 防止不允许为NULL的错误发生 return(permissionManager.Add(resourcePermission)); }
// // 授予权限的实现部分 // #region private string Grant(PiPermissionManager permissionManager, string id, string userId, string permissionItemId) 为了提高授权的运行速度 /// <summary> /// 为了提高授权的运行速度 /// </summary> /// <param name="permissionManager">资源权限读写器</param> /// <param name="id">主键</param> /// <param name="userId">用户主键</param> /// <param name="permissionItemId">权限主键</param> /// <returns>主键</returns> private string Grant(PiPermissionManager permissionManager, string id, string userId, string permissionItemId) { string returnValue = string.Empty; PiPermissionEntity resourcePermissionEntity = new PiPermissionEntity { ResourceCategory = PiUserTable.TableName, ResourceId = userId, PermissionId = permissionItemId, Enabled = 1 }; //存在相同的就不要再次重复授予了,以免产生垃圾数据 if (!this.Exists(new string[] { PiPermissionTable.FieldResourceCategory, PiPermissionTable.FieldResourceId, PiPermissionTable.FieldPermissionId, PiPermissionTable.FieldDeleteMark }, new object[] { PiUserTable.TableName, userId, permissionItemId, 0 })) { returnValue = permissionManager.Add(resourcePermissionEntity); } return(returnValue); }