Пример #1
0
        public static Dictionary <Guid, Dictionary <string, bool> > GetEffectiveEntityTypePermissions(int userUID, List <int> groupUIDList)
        {
            //Create initial dictionary
            Dictionary <Guid, Dictionary <string, bool> > effPerms = new Dictionary <Guid, Dictionary <string, bool> >();

            //Get List of all entityTypes.
            List <EntityDefinition> entityTypes = new List <EntityDefinition>();

            //Get Datatable of entitytype permissions for user
            DataTable userPerms = RetrievalProcedures.SelectUserEntityTypePermissions(userUID);

            //Iterate through list of entity Types
            foreach (EntityDefinition eType in entityTypes)
            {
                DataView eTypeRows = new DataView(userPerms);
                eTypeRows.RowFilter = "EntityTypeGUID = '" + eType.Guid + "'";

                //If no prmissions for the EntityType, ignore and continue
                //if(eTypeRows.Count == 0)
                //    continue;
                //CReate sub-keyvalue pair
                Dictionary <string, bool> ePerms = new Dictionary <string, bool>();

                assignAllowFromDataView(ePerms, eTypeRows);

                foreach (int uID in groupUIDList)
                {
                    //Get Datatable of entitytype permissions for group gm
                    DataTable groupPerms = RetrievalProcedures.SelectGroupEntityTypePermissions(uID);

                    DataView eTypeGRows = new DataView(groupPerms);
                    eTypeGRows.RowFilter = "EntityTypeGUID = '" + eType.Guid + "'";

                    //If no prmissions for the EntityType, ignore and continue
                    if (eTypeGRows.Count == 0)
                    {
                        continue;
                    }

                    assignAllowFromDataView(ePerms, eTypeGRows);
                }

                if (ePerms.Count > 0)
                {
                    effPerms.Add(eType.Guid, ePerms);
                }
            }

            return(effPerms);
        }
Пример #2
0
        public static DataTable GetUserEntityTypePermissions(int userUID, Guid entityTypeGUID)
        {
            DataTable perms = RetrievalProcedures.SelectUserEntityTypePermissions(userUID);

            return(perms);
        }