public StringCollection GetPermissions()

in CustomSecuritySample2016/Authorization.cs [382:479]


      public StringCollection GetPermissions(string userName, IntPtr userToken,
         SecurityItemType itemType, byte[] secDesc)
      {
         StringCollection permissions = new StringCollection();
         if (0 == String.Compare(userName, m_adminUserName, true, 
               CultureInfo.CurrentCulture))
         {
			 foreach (CatalogOperation oper in m_CatOperNames.Keys)
			 {
				 if (!permissions.Contains((string)m_CatOperNames[oper]))
					 permissions.Add((string)m_CatOperNames[oper]);
			 }
            foreach(ModelItemOperation oper in m_ModelItemOperNames.Keys)
            {
              if (!permissions.Contains((string)m_ModelItemOperNames[oper]))
                permissions.Add((string)m_ModelItemOperNames[oper]);
            }
            foreach(ModelOperation oper in m_ModelOperNames.Keys)
            {
              if (!permissions.Contains((string)m_ModelOperNames[oper]))
                permissions.Add((string)m_ModelOperNames[oper]);
            }
            foreach(CatalogOperation oper in m_CatOperNames.Keys)
            {
               if (!permissions.Contains((string)m_CatOperNames[oper]))
                  permissions.Add((string)m_CatOperNames[oper]);
            }
            foreach(ReportOperation oper in m_RptOperNames.Keys)
            {
               if (!permissions.Contains((string)m_RptOperNames[oper]))
                  permissions.Add((string)m_RptOperNames[oper]);
            }
            foreach(FolderOperation oper in m_FldOperNames.Keys)
            {
               if (!permissions.Contains((string)m_FldOperNames[oper]))
                  permissions.Add((string)m_FldOperNames[oper]);
            }
            foreach(ResourceOperation oper in m_ResOperNames.Keys)
            {
               if (!permissions.Contains((string)m_ResOperNames[oper]))
                  permissions.Add((string)m_ResOperNames[oper]);
            }
            foreach(DatasourceOperation oper in m_DSOperNames.Keys)
            {
               if (!permissions.Contains((string)m_DSOperNames[oper]))
                  permissions.Add((string)m_DSOperNames[oper]);                            
            }
         }
         else
         {
            AceCollection acl = DeserializeAcl(secDesc);
            foreach(AceStruct ace in acl)
            {
               if (0 == String.Compare(userName, ace.PrincipalName, true, 
                     CultureInfo.CurrentCulture))
               {
                  foreach(ModelItemOperation aclOperation in ace.ModelItemOperations)
                  {
                     if (!permissions.Contains((string)m_ModelItemOperNames[aclOperation]))
                       permissions.Add((string)m_ModelItemOperNames[aclOperation]);
                  }
                  foreach(ModelOperation aclOperation in ace.ModelOperations)
                  {
                     if (!permissions.Contains((string)m_ModelOperNames[aclOperation]))
                       permissions.Add((string)m_ModelOperNames[aclOperation]);
                  }
                  foreach(CatalogOperation aclOperation in 
                     ace.CatalogOperations)
                  {
                     if (!permissions.Contains((string)m_CatOperNames[aclOperation]))
                        permissions.Add((string)m_CatOperNames[aclOperation]);
                  }
                  foreach(ReportOperation aclOperation in ace.ReportOperations)
                  {
                     if (!permissions.Contains((string)m_RptOperNames[aclOperation]))
                        permissions.Add((string)m_RptOperNames[aclOperation]);
                  }
                  foreach(FolderOperation aclOperation in ace.FolderOperations)
                  {
                     if (!permissions.Contains((string)m_FldOperNames[aclOperation]))
                        permissions.Add((string)m_FldOperNames[aclOperation]);
                  }
                  foreach(ResourceOperation aclOperation in ace.ResourceOperations)
                  {
                     if (!permissions.Contains((string)m_ResOperNames[aclOperation]))
                        permissions.Add((string)m_ResOperNames[aclOperation]);
                  }
                  foreach(DatasourceOperation aclOperation in ace.DatasourceOperations)
                  {
                     if (!permissions.Contains((string)m_DSOperNames[aclOperation]))
                        permissions.Add((string)m_DSOperNames[aclOperation]);                            
                  }
               }
            }
         }
                  
         return permissions;
      }