public int Add(string moduleId, string permissionItemId) { int returnValue = 0; List<KeyValuePair<string, object>> parameters = new List<KeyValuePair<string, object>>(); parameters.Add(new KeyValuePair<string, object>(BasePermissionEntity.FieldResourceCategory, BaseModuleEntity.TableName)); parameters.Add(new KeyValuePair<string, object>(BasePermissionEntity.FieldResourceId, moduleId)); parameters.Add(new KeyValuePair<string, object>(BasePermissionEntity.FieldPermissionItemId, permissionItemId)); parameters.Add(new KeyValuePair<string, object>(BasePermissionEntity.FieldDeletionStateCode, 0)); // 检查记录是否重复 if (!this.Exists(parameters)) { BasePermissionEntity permissionEntity = new BasePermissionEntity(); permissionEntity.ResourceId = moduleId; permissionEntity.ResourceCategory = BaseModuleEntity.TableName; permissionEntity.Enabled = 1; permissionEntity.DeletionStateCode = 0; permissionEntity.PermissionId = int.Parse(permissionItemId); BasePermissionManager permissionManager = new BasePermissionManager(this.DbHelper, this.UserInfo, this.CurrentTableName); permissionManager.AddEntity(permissionEntity); returnValue++; } return returnValue; }
/// <summary> /// 添加 /// </summary> /// <param name="resourcePermissionEntity">实体</param> /// <param name="statusCode">返回状态码</param> /// <returns>主键</returns> public string AddPermission(BasePermissionEntity resourcePermissionEntity) { string returnValue = string.Empty; // 检查记录是否重复 if (!this.PermissionExists(resourcePermissionEntity.PermissionId.ToString(), resourcePermissionEntity.ResourceCategory, resourcePermissionEntity.ResourceId)) { returnValue = this.AddEntity(resourcePermissionEntity); } return returnValue; }
/// <summary> /// 为了提高授权的运行速度 /// </summary> /// <param name="permissionManager">资源权限读写器</param> /// <param name="Id">主键</param> /// <param name="userId">用户主键</param> /// <param name="permissionItemId">权限主键</param> /// <returns>主键</returns> private string Grant(BasePermissionManager permissionManager, string id, string userId, string permissionItemId) { string returnValue = string.Empty; BasePermissionEntity resourcePermissionEntity = new BasePermissionEntity(); resourcePermissionEntity.ResourceCategory = BaseUserEntity.TableName; resourcePermissionEntity.ResourceId = userId; resourcePermissionEntity.PermissionId = int.Parse(permissionItemId); resourcePermissionEntity.Enabled = 1; return permissionManager.Add(resourcePermissionEntity); }
/// <summary> /// 授予资源的权限 /// </summary> /// <param name="userInfo">用户</param> /// <param name="resourceCategory">资源分类</param> /// <param name="resourceId">资源主键</param> /// <param name="grantPermissionItemIds">权限主键</param> /// <returns>影响的行数</returns> public int GrantResourcePermission(BaseUserInfo userInfo, string resourceCategory, string resourceId, string[] grantPermissionItemIds) { // 写入调试信息 #if (DEBUG) int milliStart = BaseBusinessLogic.StartDebug(userInfo, MethodBase.GetCurrentMethod()); #endif // 加强安全验证防止未授权匿名调用 #if (!DEBUG) LogOnService.UserIsLogOn(userInfo); #endif int returnValue = 0; using (IDbHelper dbHelper = DbHelperFactory.GetHelper(BaseSystemInfo.UserCenterDbType)) { try { dbHelper.Open(UserCenterDbConnection); BaseRoleScopeManager roleScopeManager = new BaseRoleScopeManager(dbHelper, userInfo); // 小心异常,检查一下参数的有效性 if (grantPermissionItemIds != null) { BasePermissionManager permissionManager = new BasePermissionManager(dbHelper, userInfo); for (int i = 0; i < grantPermissionItemIds.Length; i++) { BasePermissionEntity resourcePermissionEntity = new BasePermissionEntity(); resourcePermissionEntity.ResourceCategory = resourceCategory; resourcePermissionEntity.ResourceId = resourceId; resourcePermissionEntity.PermissionId = int.Parse(grantPermissionItemIds[i]); resourcePermissionEntity.Enabled = 1; resourcePermissionEntity.DeletionStateCode = 0; permissionManager.Add(resourcePermissionEntity); returnValue++; } } BaseLogManager.Instance.Add(dbHelper, userInfo, this.serviceName, AppMessage.PermissionService_GrantResourcePermission, MethodBase.GetCurrentMethod()); } catch (Exception ex) { BaseExceptionManager.LogException(dbHelper, userInfo, ex); throw ex; } finally { dbHelper.Close(); } } // 写入调试信息 #if (DEBUG) BaseBusinessLogic.EndDebug(MethodBase.GetCurrentMethod(), milliStart); #endif return returnValue; }
/// <summary> /// 设置实体 /// </summary> /// <param name="permissionEntity">实体</param> private void SetEntity(SQLBuilder sqlBuilder, BasePermissionEntity permissionEntity) { sqlBuilder.SetValue(BasePermissionEntity.FieldResourceId, permissionEntity.ResourceId); sqlBuilder.SetValue(BasePermissionEntity.FieldResourceCategory, permissionEntity.ResourceCategory); sqlBuilder.SetValue(BasePermissionEntity.FieldPermissionItemId, permissionEntity.PermissionId); sqlBuilder.SetValue(BasePermissionEntity.FieldPermissionConstraint, permissionEntity.PermissionConstraint); sqlBuilder.SetValue(BasePermissionEntity.FieldEnabled, permissionEntity.Enabled); sqlBuilder.SetValue(BasePermissionEntity.FieldDeletionStateCode, permissionEntity.DeletionStateCode); sqlBuilder.SetValue(BasePermissionEntity.FieldDescription, permissionEntity.Description); SetEntityExpand(sqlBuilder, permissionEntity); }
partial void SetEntityExpand(SQLBuilder sqlBuilder, BasePermissionEntity permissionEntity);
/// <summary> /// 更新 /// </summary> /// <param name="resourcePermissionEntity">实体</param> public int Update(BasePermissionEntity resourcePermissionEntity) { return this.UpdateEntity(resourcePermissionEntity); }
/// <summary> /// 更新实体 /// </summary> /// <param name="resourcePermissionEntity">实体</param> public int UpdateEntity(BasePermissionEntity resourcePermissionEntity) { SQLBuilder sqlBuilder = new SQLBuilder(DbHelper); sqlBuilder.BeginUpdate(this.CurrentTableName); this.SetEntity(sqlBuilder, resourcePermissionEntity); if (UserInfo != null) { sqlBuilder.SetValue(BasePermissionEntity.FieldModifiedUserId, UserInfo.Id); sqlBuilder.SetValue(BasePermissionEntity.FieldModifiedBy, UserInfo.RealName); } sqlBuilder.SetDBNow(BasePermissionEntity.FieldModifiedOn); sqlBuilder.SetWhere(BasePermissionEntity.FieldId, resourcePermissionEntity.Id); return sqlBuilder.EndUpdate(); }
/// <summary> /// 获取实体 /// </summary> /// <param name="id">主键</param> public BasePermissionEntity GetEntity(int id) { BasePermissionEntity resourcePermissionEntity = new BasePermissionEntity(this.GetDataTable(new KeyValuePair<string, object>(BasePermissionEntity.FieldId, id))); return resourcePermissionEntity; }
/// <summary> /// 添加实体 /// </summary> /// <param name="resourcePermissionEntity">实体</param> public string AddEntity(BasePermissionEntity resourcePermissionEntity) { string sequence = string.Empty; SQLBuilder sqlBuilder = new SQLBuilder(DbHelper, this.Identity, this.ReturnId); sqlBuilder.BeginInsert(this.CurrentTableName, BasePermissionEntity.FieldId); if (!this.Identity) { sqlBuilder.SetValue(BasePermissionEntity.FieldId, resourcePermissionEntity.Id); } else { if (!this.ReturnId && (DbHelper.CurrentDbType == DbTypes.Oracle || DbHelper.CurrentDbType == DbTypes.DB2)) { if (DbHelper.CurrentDbType == DbTypes.Oracle) { sqlBuilder.SetFormula(BasePermissionEntity.FieldId, "SEQ_" + this.CurrentTableName.ToUpper() + ".NEXTVAL "); } if (DbHelper.CurrentDbType == DbTypes.DB2) { sqlBuilder.SetFormula(BasePermissionEntity.FieldId, "NEXT VALUE FOR SEQ_" + this.CurrentTableName.ToUpper()); } } else { if (this.Identity && (DbHelper.CurrentDbType == DbTypes.Oracle || DbHelper.CurrentDbType == DbTypes.DB2)) { if (resourcePermissionEntity.Id == null) { if (string.IsNullOrEmpty(sequence)) { BaseSequenceManager sequenceManager = new BaseSequenceManager(DbHelper, this.Identity); sequence = sequenceManager.GetSequence(this.CurrentTableName); } resourcePermissionEntity.Id = int.Parse(sequence); } sqlBuilder.SetValue(BasePermissionEntity.FieldId, resourcePermissionEntity.Id); } } } this.SetEntity(sqlBuilder, resourcePermissionEntity); if (UserInfo != null) { sqlBuilder.SetValue(BasePermissionEntity.FieldCreateUserId, UserInfo.Id); sqlBuilder.SetValue(BasePermissionEntity.FieldCreateBy, UserInfo.RealName); } sqlBuilder.SetDBNow(BasePermissionEntity.FieldCreateOn); if (UserInfo != null) { sqlBuilder.SetValue(BasePermissionEntity.FieldModifiedUserId, UserInfo.Id); sqlBuilder.SetValue(BasePermissionEntity.FieldModifiedBy, UserInfo.RealName); } sqlBuilder.SetDBNow(BasePermissionEntity.FieldModifiedOn); if (DbHelper.CurrentDbType == DbTypes.SqlServer && this.Identity) { sequence = sqlBuilder.EndInsert().ToString(); } else { sqlBuilder.EndInsert(); } return sequence; }
/// <summary> /// 添加 /// </summary> /// <param name="resourcePermissionEntity">实体</param> /// <param name="identity">自增量方式</param> /// <param name="returnId">返回主鍵</param> /// <returns>主键</returns> public string Add(BasePermissionEntity resourcePermissionEntity, bool identity, bool returnId) { this.Identity = identity; this.ReturnId = returnId; return this.AddEntity(resourcePermissionEntity); }
/// <summary> /// 添加 /// </summary> /// <param name="resourcePermissionEntity">实体</param> /// <returns>主键</returns> public string Add(BasePermissionEntity resourcePermissionEntity) { return this.AddEntity(resourcePermissionEntity); }
/// <summary> /// 为了提高授权的运行速度 /// </summary> /// <param name="permissionManager">资源权限读写器</param> /// <param name="Id">主键</param> /// <param name="roleId">角色主键</param> /// <param name="permissionItemId">权限主键</param> /// <returns>主键</returns> private string Grant(BasePermissionManager permissionManager, string roleId, string permissionItemId) { string returnValue = string.Empty; BasePermissionEntity resourcePermission = new BasePermissionEntity(); resourcePermission.ResourceCategory = BaseRoleEntity.TableName; resourcePermission.ResourceId = roleId; resourcePermission.PermissionId = int.Parse(permissionItemId); // 防止不允许为NULL的错误发生 resourcePermission.Enabled = 1; return permissionManager.Add(resourcePermission); }