コード例 #1
0
        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);
        }
コード例 #2
0
        /// <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);
        }
コード例 #3
0
        //
        // 授予权限的实现部分
        //

        #region private string Grant(BasePermissionManager 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(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));
        }
コード例 #4
0
 /// <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);
 }
コード例 #5
0
        /// <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);
        }
コード例 #6
0
        //
        // 授予权限的实现部分
        //

        #region private string Grant(BasePermissionManager permissionManager, string id, string roleId, string permissionItemId) 为了提高授权的运行速度
        /// <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));
        }
コード例 #7
0
        /// <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());
        }
コード例 #8
0
 partial void SetEntityExpand(SQLBuilder sqlBuilder, BasePermissionEntity permissionEntity);
コード例 #9
0
        /// <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);
        }
コード例 #10
0
        /// <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);
        }
コード例 #11
0
 /// <summary>
 /// 更新
 /// </summary>
 /// <param name="resourcePermissionEntity">实体</param>
 public int Update(BasePermissionEntity resourcePermissionEntity)
 {
     return(this.UpdateEntity(resourcePermissionEntity));
 }
コード例 #12
0
 /// <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));
 }
コード例 #13
0
 /// <summary>
 /// 添加
 /// </summary>
 /// <param name="resourcePermissionEntity">实体</param>
 /// <returns>主键</returns>
 public string Add(BasePermissionEntity resourcePermissionEntity)
 {
     return(this.AddEntity(resourcePermissionEntity));
 }