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); } } } } }