Ejemplo n.º 1
0
        /// <summary>
        /// 获取权限范围的设置
        /// </summary>
        /// <param name="organizeIds">有权限的组织机构</param>
        /// <returns>权限范围</returns>
        public static PermissionOrganizeScope GetPermissionScope(string[] organizeIds)
        {
            PermissionOrganizeScope result = PermissionOrganizeScope.NotAllowed;

            //foreach (PermissionOrganizeScope permissionScope in (PermissionOrganizeScope[])Enum.GetValues(typeof(PermissionOrganizeScope)))
            //{
            //    if (StringUtil.Exists(organizeIds, permissionScope.ToString()))
            //    {
            //        result = permissionScope;
            //        break;
            //    }
            //}
            #region BUG修复
            foreach (PermissionOrganizeScope permissionScope in (PermissionOrganizeScope[])Enum.GetValues(typeof(PermissionOrganizeScope)))
            {
                int scope = Convert.ToInt32(permissionScope);
                if (StringUtil.Exists(organizeIds, scope.ToString()))
                {
                    result = permissionScope;
                    break;
                }
            }
            #endregion
            return(result);
        }
Ejemplo n.º 2
0
        public string SetUserOrganizeScope(string systemCode, string userId, PermissionOrganizeScope permissionScope, string permissionCode = "Resource.AccessPermission", bool containChild = false)
        {
            string result = string.Empty;

            string permissionId = BaseModuleManager.GetIdByCodeByCache(systemCode, permissionCode);

            if (!string.IsNullOrEmpty(permissionId))
            {
                string tableName = BaseOrganizeScopeEntity.TableName;
                if (!string.IsNullOrEmpty(systemCode))
                {
                    tableName = systemCode + "OrganizeScope";
                }

                BaseOrganizeScopeManager organizeScopeManager    = new BaseOrganizeScopeManager(this.DbHelper, this.UserInfo, tableName);
                List <KeyValuePair <string, object> > parameters = new List <KeyValuePair <string, object> >();
                parameters.Add(new KeyValuePair <string, object>(BaseOrganizeScopeEntity.FieldResourceCategory, BaseUserEntity.TableName));
                parameters.Add(new KeyValuePair <string, object>(BaseOrganizeScopeEntity.FieldResourceId, userId));
                parameters.Add(new KeyValuePair <string, object>(BaseOrganizeScopeEntity.FieldPermissionId, permissionId));
                result = organizeScopeManager.GetId(parameters);
                BaseOrganizeScopeEntity organizeScopeEntity = null;
                if (string.IsNullOrEmpty(result))
                {
                    organizeScopeEntity = new BaseOrganizeScopeEntity();
                }
                else
                {
                    organizeScopeEntity = organizeScopeManager.GetObject(result);
                }
                organizeScopeEntity.AllData           = (permissionScope == PermissionOrganizeScope.AllData ? 1 : 0);
                organizeScopeEntity.Province          = (permissionScope == PermissionOrganizeScope.Province ? 1 : 0);
                organizeScopeEntity.City              = (permissionScope == PermissionOrganizeScope.City ? 1 : 0);
                organizeScopeEntity.District          = (permissionScope == PermissionOrganizeScope.District ? 1 : 0);
                organizeScopeEntity.UserCompany       = (permissionScope == PermissionOrganizeScope.UserCompany ? 1 : 0);
                organizeScopeEntity.UserSubCompany    = (permissionScope == PermissionOrganizeScope.UserSubCompany ? 1 : 0);
                organizeScopeEntity.UserDepartment    = (permissionScope == PermissionOrganizeScope.UserDepartment ? 1 : 0);
                organizeScopeEntity.UserSubDepartment = (permissionScope == PermissionOrganizeScope.UserSubDepartment ? 1 : 0);
                organizeScopeEntity.UserWorkgroup     = (permissionScope == PermissionOrganizeScope.UserWorkgroup ? 1 : 0);
                organizeScopeEntity.OnlyOwnData       = (permissionScope == PermissionOrganizeScope.OnlyOwnData ? 1 : 0);
                organizeScopeEntity.ByDetails         = (permissionScope == PermissionOrganizeScope.ByDetails ? 1 : 0);
                organizeScopeEntity.NotAllowed        = (permissionScope == PermissionOrganizeScope.NotAllowed ? 1 : 0);
                organizeScopeEntity.Enabled           = 1;
                organizeScopeEntity.DeletionStateCode = 0;
                organizeScopeEntity.ContainChild      = containChild ? 1 : 0;
                organizeScopeEntity.PermissionId      = int.Parse(permissionId);
                organizeScopeEntity.ResourceCategory  = BaseUserEntity.TableName;
                organizeScopeEntity.ResourceId        = userId;
                if (string.IsNullOrEmpty(result))
                {
                    result = organizeScopeManager.Add(organizeScopeEntity);
                }
                else
                {
                    organizeScopeManager.Update(organizeScopeEntity);
                }
            }
            return(result);
        }
        /// <summary>
        /// 设置角色某个权限的组织机构范围
        /// </summary>
        /// <param name="userInfo">用户</param>
        /// <param name="roleId">角色主键</param>
        /// <param name="permissionScope">组织机构范围</param>
        /// <param name="permissionCode">权限编号</param>
        /// <returns>影响的行数</returns>
        public string SetRoleOrganizeScope(BaseUserInfo userInfo, string roleId, PermissionOrganizeScope permissionOrganizeScope, string permissionCode)
        {
            string result = string.Empty;

            var parameter = ServiceInfo.Create(userInfo, MethodBase.GetCurrentMethod());

            ServiceUtil.ProcessUserCenterWriteDb(userInfo, parameter, (dbHelper) =>
            {
                BaseRoleScopeManager roleOrganizeScopeManager = new BaseRoleScopeManager(dbHelper, userInfo);
                result = roleOrganizeScopeManager.SetRoleOrganizeScope(roleId, permissionOrganizeScope, permissionCode, false);
            });
            return(result);
        }
        //////////////////////////////////////////////////////////////////////////////////////////////////////
        /// 角色组织机构范围权限(省市县区域)关联相关
        //////////////////////////////////////////////////////////////////////////////////////////////////////

        /// <summary>
        /// 获取角色的某个权限域的组织范围
        /// </summary>
        /// <param name="userInfo">用户</param>
        /// <param name="roleId">角色主键</param>
        /// <param name="permissionCode">权限编号</param>
        /// <returns>主键数组</returns>
        public PermissionOrganizeScope GetRoleOrganizeScope(BaseUserInfo userInfo, string roleId, string permissionCode)
        {
            PermissionOrganizeScope result = PermissionOrganizeScope.OnlyOwnData;

            var parameter = ServiceInfo.Create(userInfo, MethodBase.GetCurrentMethod());

            ServiceUtil.ProcessUserCenterReadDb(userInfo, parameter, (dbHelper) =>
            {
                BaseRoleScopeManager roleOrganizeScopeManager = new BaseRoleScopeManager(dbHelper, userInfo);
                bool containChild = false;
                result            = roleOrganizeScopeManager.GetRoleOrganizeScope(roleId, out containChild, permissionCode);
            });
            return(result);
        }
Ejemplo n.º 5
0
        /*
         * public List<BaseOrganizeScopeEntity> GetUserOrganizeScopes(string userId, string permissionCode = "Resource.AccessPermission")
         * {
         *  List<BaseOrganizeScopeEntity> result = null;
         *  string result = this.GetPermissionIdByCode(permissionCode);
         *  if (!string.IsNullOrEmpty(result))
         *  {
         *      BaseOrganizeScopeManager organizeScopeManager = new BaseOrganizeScopeManager(this.DbHelper, this.UserInfo);
         *      List<KeyValuePair<string, object>> parameters = new List<KeyValuePair<string, object>>();
         *      parameters.Add(new KeyValuePair<string, object>(BaseOrganizeScopeEntity.FieldResourceCategory, BaseUserEntity.TableName));
         *      parameters.Add(new KeyValuePair<string, object>(BaseOrganizeScopeEntity.FieldResourceId, userId));
         *      parameters.Add(new KeyValuePair<string, object>(BaseOrganizeScopeEntity.FieldPermissionId, result));
         *      result = organizeScopeManager.GetList<BaseOrganizeScopeEntity>(parameters);
         *  }
         *  return result;
         * }
         */

        public PermissionOrganizeScope GetUserOrganizeScope(string systemCode, string userId, out bool containChild, string permissionCode = "Resource.AccessPermission")
        {
            containChild = false;
            PermissionOrganizeScope permissionScope = PermissionOrganizeScope.UserCompany;

            BaseOrganizeScopeEntity organizeScopeEntity = null;
            string permissionId = BaseModuleManager.GetIdByCodeByCache(systemCode, permissionCode);

            if (!string.IsNullOrEmpty(permissionId))
            {
                string tableName = BaseOrganizeScopeEntity.TableName;
                if (!string.IsNullOrEmpty(systemCode))
                {
                    tableName = systemCode + "OrganizeScope";
                }

                BaseOrganizeScopeManager organizeScopeManager    = new BaseOrganizeScopeManager(this.DbHelper, this.UserInfo, tableName);
                List <KeyValuePair <string, object> > parameters = new List <KeyValuePair <string, object> >();
                parameters.Add(new KeyValuePair <string, object>(BaseOrganizeScopeEntity.FieldResourceCategory, BaseUserEntity.TableName));
                parameters.Add(new KeyValuePair <string, object>(BaseOrganizeScopeEntity.FieldResourceId, userId));
                parameters.Add(new KeyValuePair <string, object>(BaseOrganizeScopeEntity.FieldPermissionId, permissionId));
                DataTable dt = organizeScopeManager.GetDataTable(parameters);
                if (dt != null && dt.Rows.Count > 0)
                {
                    organizeScopeEntity = BaseOrganizeScopeEntity.Create <BaseOrganizeScopeEntity>(dt);
                }
            }

            if (organizeScopeEntity != null)
            {
                if (organizeScopeEntity.ContainChild == 1)
                {
                    containChild = true;
                }
                if (organizeScopeEntity.AllData == 1)
                {
                    permissionScope = PermissionOrganizeScope.AllData;
                }
                if (organizeScopeEntity.Province == 1)
                {
                    permissionScope = PermissionOrganizeScope.Province;
                }
                if (organizeScopeEntity.City == 1)
                {
                    permissionScope = PermissionOrganizeScope.City;
                }
                if (organizeScopeEntity.District == 1)
                {
                    permissionScope = PermissionOrganizeScope.District;
                }
                if (organizeScopeEntity.ByDetails == 1)
                {
                    permissionScope = PermissionOrganizeScope.ByDetails;
                }
                if (organizeScopeEntity.NotAllowed == 1)
                {
                    permissionScope = PermissionOrganizeScope.NotAllowed;
                }
                if (organizeScopeEntity.OnlyOwnData == 1)
                {
                    permissionScope = PermissionOrganizeScope.OnlyOwnData;
                }
                if (organizeScopeEntity.UserCompany == 1)
                {
                    permissionScope = PermissionOrganizeScope.UserCompany;
                }
                if (organizeScopeEntity.UserSubCompany == 1)
                {
                    permissionScope = PermissionOrganizeScope.UserSubCompany;
                }
                if (organizeScopeEntity.UserDepartment == 1)
                {
                    permissionScope = PermissionOrganizeScope.UserDepartment;
                }
                if (organizeScopeEntity.UserSubDepartment == 1)
                {
                    permissionScope = PermissionOrganizeScope.UserSubDepartment;
                }
                if (organizeScopeEntity.UserWorkgroup == 1)
                {
                    permissionScope = PermissionOrganizeScope.UserWorkgroup;
                }
            }
            return(permissionScope);
        }