Ejemplo n.º 1
0
        public List <Int32> UseDataPermissionFilter()
        {
            var pm = PermissionManager.Current;

            if (pm != null && pm.DataPermissions != null && pm.DataPermissions.Count > 0)
            {
                List <Int32> dataPermissionIDs = new List <Int32>();
                //遍历组装数据权限ID集合
                pm.DataPermissions.ForEach(e => dataPermissionIDs.Add(e.ID));
                //根据数据权限ID集合获取角色与数据权限映射
                var rdps = RoleDataPermission.FindAllByDataPermissionIDs(dataPermissionIDs);
                if (rdps != null && rdps.Count > 0)
                {
                    List <Int32> roleIDs = new List <Int32>();
                    //遍历组装角色ID集合
                    rdps.ForEach(e =>
                    {
                        if (!roleIDs.Contains(e.RoleID))
                        {
                            roleIDs.Add(e.RoleID);
                        }
                    });
                    //根据角色ID集合查找用户与角色映射
                    var adminRoles = AdminRole.FindAllByRoleIDs(roleIDs);
                    if (adminRoles != null && adminRoles.Count > 0)
                    {
                        List <Int32> adminIDs = new List <Int32>();
                        adminRoles.ForEach(e => adminIDs.Add(e.AdminID));
                        return(adminIDs);
                    }
                }
            }
            return(null);
        }
Ejemplo n.º 2
0
 private void GenerateRegionElement(XmlDocument doc, XmlElement Parent, DataTable childtable)
 {
     for (int i = 0; i < childtable.Rows.Count; i++)
     {
         int    childpkid;
         string Name;
         childpkid = (int)childtable.Rows[i]["PKID"];
         Name      = (string)childtable.Rows[i]["Name"];
         System.Xml.XmlElement child      = GlobalFacade.XDom.CreateDocumentElement(doc, "TREENODE");
         RoleDataPermission    HaveRegion = new RoleDataPermission();
         HaveRegion.SessionInstance = session;
         BusinessFilter checkfilter = new BusinessFilter("RoleDataPermission");
         checkfilter.AddFilterItem("Type", Convert.ToString((int)DictionaryType.Region), Operation.Equal, FilterType.NumberType, AndOr.AND);
         checkfilter.AddFilterItem("FK_Role", this.RolePKID.ToString(), Operation.Equal, FilterType.NumberType, AndOr.AND);
         checkfilter.AddFilterItem("FK_Dictionary", childpkid.ToString(), Operation.Equal, FilterType.NumberType, AndOr.AND);
         HaveRegion.AddFilter(checkfilter);
         HaveRegion.Load();
         if (HaveRegion.HaveRecord)
         {
             GlobalFacade.XDom.SetNodeAttribute(doc, child, "checked", "True");
         }
         GlobalFacade.XDom.SetNodeAttribute(doc, child, "checkBox", "True");
         GlobalFacade.XDom.SetNodeAttribute(doc, child, "Expanded", "True");
         GlobalFacade.XDom.SetNodeAttribute(doc, child, "Text", Name);
         GlobalFacade.XDom.SetNodeAttribute(doc, child, "NodeData", childpkid.ToString());
         Parent.AppendChild(child);
         System.Data.DataTable    subchildTable;
         BusinessObjectCollection subchild = new BusinessObjectCollection("Dictionary");
         subchild.SessionInstance = session;
         BusinessFilter filter = new BusinessFilter("Dictionary");
         filter.AddFilterItem("Parent", childpkid.ToString(), Operation.Equal, FilterType.NumberType, AndOr.AND);
         filter.AddFilterItem("Type", Convert.ToString((int)DictionaryType.Region), Operation.Equal, FilterType.NumberType, AndOr.AND);
         filter.AddFilterItem("IsValid", "1", Operation.Equal, FilterType.NumberType, AndOr.AND);
         subchild.AddFilter(filter);
         subchildTable = subchild.GetDataTable();
         if (subchildTable.Rows.Count > 0)
         {
             GenerateRegionElement(doc, child, subchildTable);
         }
     }
 }
Ejemplo n.º 3
0
        public void SaveRegionConfig(string[] name, int rolepkid)
        {
            Session session = new Session();

            try
            {
                session.BeginTransaction();
                BusinessObjectCollection regioncollection = new BusinessObjectCollection("RoleDataPermission");
                regioncollection.SessionInstance = session;
                BusinessFilter filter = new BusinessFilter("RoleDataPermission");
                filter.AddFilterItem("FK_Role", rolepkid.ToString(), Operation.Equal, FilterType.NumberType, AndOr.AND);
                filter.AddFilterItem("Type", Convert.ToString((int)DictionaryType.Region), Operation.Equal, FilterType.NumberType, AndOr.AND);
                regioncollection.AddFilter(filter);
                regioncollection.DeleteFilter();

                for (int index = 0; index < name.Length; index++)
                {
                    BusinessMapping.RoleDataPermission regionright = new RoleDataPermission();
                    regionright.SessionInstance     = session;
                    regionright.FK_Role.Value       = rolepkid;
                    regionright.Type.Value          = 1;
                    regionright.FK_Dictionary.Value = int.Parse(name[index].ToString());
                    regionright.CreateUser.Value    = SystemContext.GetContext().UserID;
                    regionright.ModifyUser.Value    = SystemContext.GetContext().UserID;
                    regionright.CreateTime.Value    = regionright.ModifyTime.Value = DateTime.Now;
                    regionright.Insert();
                }
                session.Commit();

                OperationLog opLog = new OperationLog();
                opLog.WriteOperationLog("数据权限管理", "配置数据权限");
            }
            catch
            {
                session.Rollback();
            }
        }
Ejemplo n.º 4
0
 public static List<RoleDataPermission> GetAllDataPermissions(string exchangeCode)
 {
     List<RoleDataPermission> dataPermissions = new List<RoleDataPermission>();
     string sql = "SELECT g.ID,g.Code,g.GroupType FROM dbo.[Group] g WHERE g.GroupType='Account' OR g.GroupType='Instrument'";
     DataAccess.GetInstance(exchangeCode).ExecuteReader(sql, CommandType.Text, delegate(SqlDataReader reader)
     {
         while (reader.Read())
         {
             RoleDataPermission data = new RoleDataPermission();
             data.ExchangeCode = exchangeCode;
             data.Type = (DataObjectType)Enum.Parse(typeof(DataObjectType), reader["GroupType"].ToString());
             data.DataObjectId = (Guid)reader["ID"];
             data.Code = reader["Code"].ToString();
             dataPermissions.Add(data);
         }
     });
     return dataPermissions;
 }
Ejemplo n.º 5
0
 public List<RoleDataPermission> CastGridDataToDataPermission()
 {
     List<RoleDataPermission> roleDataPermissions = new List<RoleDataPermission>();
     foreach (ExchangeGridData exchange in IExchangeCodes)
     {
         if (exchange.IsExchangeAllow == true || exchange.IsExchangeDeny == true)
         {
             RoleDataPermission data = new RoleDataPermission();
             data.PermissionId = exchange.ExchangeId;
             data.Code = exchange.ExchangeCode;
             data.ParentId = 2;
             data.Level = 1;
             data.ExchangeCode = exchange.ExchangeCode;
             data.Type = DataObjectType.Exchange;
             if (exchange.IsExchangeAllow == true)
             {
                 data.IsAllow = true;
             }
             if (exchange.IsExchangeDeny == true)
             {
                 data.IsAllow = false;
             }
             roleDataPermissions.Add(data);
         }
         foreach (DataObjectTypeGridData type in exchange.DataObjectTypes)
         {
             if (type.IsDataObjectTypeAllow == true || type.IsDataObjectTypeDeny == true)
             {
                 RoleDataPermission data = new RoleDataPermission();
                 data.PermissionId = type.DataObjectTypeId;
                 data.Code = type.DataObjectType;
                 data.Type = (DataObjectType)Enum.Parse(typeof(DataObjectType), type.DataObjectType);
                 data.ParentId = exchange.ExchangeId;
                 data.Level = 2;
                 data.ExchangeCode = exchange.ExchangeCode;
                 if (type.IsDataObjectTypeAllow == true)
                 {
                     data.IsAllow = true;
                 }
                 if (type.IsDataObjectTypeDeny == true)
                 {
                     data.IsAllow = false;
                 }
                 roleDataPermissions.Add(data);
             }
             foreach (DataObjectGridData dataObject in type.DataObjects)
             {
                 if (dataObject.IsAllow == true || dataObject.IsDeny == true)
                 {
                     RoleDataPermission data = new RoleDataPermission();
                     data.PermissionId = dataObject.Id;
                     data.Code = dataObject.Code;
                     data.DataObjectId = dataObject.DataObjectId;
                     data.ParentId = type.DataObjectTypeId;
                     data.Type = (DataObjectType)Enum.Parse(typeof(DataObjectType), type.DataObjectType);
                     data.Level = 3;
                     data.ExchangeCode = exchange.ExchangeCode;
                     if (dataObject.IsAllow == true)
                     {
                         data.IsAllow = true;
                     }
                     if (dataObject.IsDeny == true)
                     {
                         data.IsAllow = false;
                     }
                     roleDataPermissions.Add(data);
                 }
             }
         }
     }
     return roleDataPermissions;
 }
Ejemplo n.º 6
0
 public static List<RoleData> GetRoles(string language)
 {
     List<RoleData> roles = new List<RoleData>();
     string sql = "[dbo].[GetAllRoleData]";
     DataAccess.GetInstance().ExecuteReader(sql, CommandType.StoredProcedure, delegate(SqlDataReader reader)
     {
         while (reader.Read())
         {
             RoleData role = new RoleData();
             role.RoleId = (int)reader.GetValue(0);
             role.RoleName = reader.GetValue(1).ToString();
             roles.Add(role);
         }
         if (reader.NextResult())
         {
             while (reader.Read())
             {
                 RoleFunctonPermission functionPermission = new RoleFunctonPermission();
                 functionPermission.FunctionId = (int)reader["FunctionId"];
                 functionPermission.Code = reader["Code"].ToString();
                 if (!(reader["ParentId"] is DBNull))
                 {
                     functionPermission.ParentId = (int)reader["ParentId"];
                 }
                 functionPermission.Level = (int)reader["Level"];
                 functionPermission.Description = reader["Description"].ToString();
                 functionPermission.IsAllow = (bool)reader["IsAllow"];
                 int id = (int)reader["RoleId"];
                 roles.SingleOrDefault(r => r.RoleId == id).FunctionPermissions.Add(functionPermission);
             }
         }
         if (reader.NextResult())
         {
             while (reader.Read())
             {
                 RoleDataPermission dataPermission = new RoleDataPermission();
                 dataPermission.PermissionId = (int)reader["TargetId"];
                 dataPermission.Code = reader["Code"].ToString();
                 if (!(reader["ParentId"] is DBNull))
                 {
                     dataPermission.ParentId = (int)reader["ParentId"];
                 }
                 if (!(reader["DataObjectId"] is DBNull))
                 {
                     dataPermission.DataObjectId = (Guid)reader["DataObjectId"];
                 }
                 dataPermission.IsAllow = (bool)reader["IsAllow"];
                 dataPermission.ExchangeCode = reader["IExchangeCode"].ToString();
                 int id = (int)reader["RoleId"];
                 roles.SingleOrDefault(r => r.RoleId == id).DataPermissions.Add(dataPermission);
             }
         }
     }, new SqlParameter("@language", language));
     return roles;
 }