Exemplo n.º 1
0
        /// <summary>
        /// 用户添加之前执行的方法
        /// </summary>
        /// <param name="userEntity">用户实体</param>
        /// <param name="statusCode">状态码</param>
        public void BeforeAdd(BaseUserEntity userEntity, out string statusCode)
        {
            // 检测成功,可以添加用户
            statusCode = StatusCode.OK.ToString();
            if (this.Exists(new KeyValuePair <string, object>(BaseUserEntity.FieldUserName, userEntity.UserName)
                            , new KeyValuePair <string, object>(BaseUserEntity.FieldDeletionStateCode, 0)))
            {
                // 用户名已重复
                statusCode = StatusCode.ErrorUserExist.ToString();
            }
            else
            {
                // 检查编号是否重复
                if (!string.IsNullOrEmpty(userEntity.Code) &&
                    this.Exists(new KeyValuePair <string, object>(BaseUserEntity.FieldCode, userEntity.Code)
                                , new KeyValuePair <string, object>(BaseUserEntity.FieldDeletionStateCode, 0)))
                {
                    // 编号已重复
                    statusCode = StatusCode.ErrorNameExist.ToString();
                }

                if (userEntity.IsStaff == 1)
                {
                    List <KeyValuePair <string, object> > parameters = new List <KeyValuePair <string, object> >();
                    parameters.Add(new KeyValuePair <string, object>(BaseStaffEntity.FieldUserName, userEntity.UserName));
                    parameters.Add(new KeyValuePair <string, object>(BaseStaffEntity.FieldDeletionStateCode, 0));
                    if (DbLogic.Exists(DbHelper, BaseStaffEntity.TableName, parameters))
                    {
                        // 编号已重复
                        statusCode = StatusCode.ErrorNameExist.ToString();
                    }
                    if (!string.IsNullOrEmpty(userEntity.Code))
                    {
                        parameters = new List <KeyValuePair <string, object> >();
                        parameters.Add(new KeyValuePair <string, object>(BaseStaffEntity.FieldCode, userEntity.Code));
                        parameters.Add(new KeyValuePair <string, object>(BaseStaffEntity.FieldDeletionStateCode, 0));
                        if (DbLogic.Exists(DbHelper, BaseStaffEntity.TableName, parameters))
                        {
                            // 编号已重复
                            statusCode = StatusCode.ErrorCodeExist.ToString();
                        }
                    }
                }
            }
        }
        /// <summary>
        /// 判断用户是否有有相应的权限
        /// </summary>
        /// <param name="userId">用户主键</param>
        /// <param name="permissionItemCode">权限编号</param>
        /// <returns>有权限</returns>
        public bool CheckPermission(string userId, string permissionItemCode)
        {
            BasePermissionItemManager permissionItemManager = new BasePermissionItemManager(DbHelper);
            string permissionItemId = permissionItemManager.GetIdByCode(permissionItemCode);

            // 没有找到相应的权限
            if (String.IsNullOrEmpty(permissionItemId))
            {
                return(false);
            }

            List <KeyValuePair <string, object> > parameters = new List <KeyValuePair <string, object> >();

            parameters.Add(new KeyValuePair <string, object>(BasePermissionEntity.FieldResourceCategory, BaseUserEntity.TableName));
            parameters.Add(new KeyValuePair <string, object>(BasePermissionEntity.FieldResourceId, userId));
            parameters.Add(new KeyValuePair <string, object>(BasePermissionEntity.FieldEnabled, "1"));
            return(DbLogic.Exists(DbHelper, this.CurrentTableName, parameters));
        }