public ITisDefinedPermissionsSet AllowPermissions(object oSecuredEntity, string[] Permissions)
        {
            ArrayList oTemp = new ArrayList(Permissions);

            ITisSupportedPermissionsSet SupportedPermissionsSet =
                m_oSupportedPermissionsDelegate(oSecuredEntity);

            if (SupportedPermissionsSet != null)
            {
                foreach (string sPermissionName in Permissions)
                {
                    if (!SupportedPermissionsSet.ContainsPermission(sPermissionName))
                    {
                        oTemp.Remove(sPermissionName);
                    }
                }

                return((ITisDefinedPermissionsSet)m_oPermissionMngr.AddPermissionsSet(
                           oSecuredEntity,
                           (string[])oTemp.ToArray(typeof(string))));
            }
            else
            {
                return(null);
            }
        }
        internal void SynchronizePermissions(string sTypedPersistKey)
        {
            ArrayList oTemp = new ArrayList();

            ITisSupportedPermissionsSet oSupportedPermissionsSet =
                (ITisSupportedPermissionsSet)m_oSupportedPermissionsDelegate(sTypedPersistKey);

            foreach (TisRole oRole in Roles)
            {
                foreach (TisDefinedPermissionsSet oPermissionsSet in oRole.Permissions.All)
                {
                    if (oPermissionsSet.TypedPersistKey == sTypedPersistKey)
                    {
                        if (oSupportedPermissionsSet != null)
                        {
                            oTemp.Clear();

                            foreach (string sPermission in oPermissionsSet.DefinedPermissions.Names)
                            {
                                if (!oSupportedPermissionsSet.ContainsPermission(sPermission))
                                {
                                    oTemp.Add(sPermission);
                                }
                            }

                            oPermissionsSet.DefinedPermissions.RemovePermissions(
                                (string[])oTemp.ToArray(typeof(string)));
                        }
                        else
                        {
                            oRole.Permissions.RemoveBySet(oPermissionsSet);
                        }
                    }
                }
            }
        }
Beispiel #3
0
 void ITisSupportedPermissions.RemoveBySet(ITisSupportedPermissionsSet oPermissionsSet)
 {
     SupportedPermissions.RemoveBySets(
         new ITisSupportedPermissionsSet[] { oPermissionsSet });
 }