private void UpdateEditAllRole() { using (IObjectSpace os = ObjectSpace.CreateNestedObjectSpace()) { csCSecurityRole EditAllRole = os.FindObject <csCSecurityRole>( new BinaryOperator("Name", ConfigurationManager.AppSettings["SecurityGroups.EditAllRole"]), true); if (EditAllRole == null) { EditAllRole = os.CreateObject <csCSecurityRole>(); EditAllRole.Name = ConfigurationManager.AppSettings["SecurityGroups.EditAllRole"]; } EditAllRole.BeginUpdate(); // EditAllRole.Permissions.GrantRecursive(typeof(object), SecurityOperations.Read); EditAllRole.Permissions.GrantRecursive(typeof(object), SecurityOperations.Write); EditAllRole.Permissions.GrantRecursive(typeof(object), SecurityOperations.Create); EditAllRole.Permissions.GrantRecursive(typeof(object), SecurityOperations.Delete); EditAllRole.Permissions.GrantRecursive(typeof(object), SecurityOperations.Navigate); // EditAllRole.Permissions.DenyRecursive(typeof(IntecoAG.ERM.CS.Security.csCSecurityRole), SecurityOperations.Read); EditAllRole.Permissions.DenyRecursive(typeof(IntecoAG.ERM.CS.Security.csCSecurityRole), SecurityOperations.Write); EditAllRole.Permissions.DenyRecursive(typeof(IntecoAG.ERM.CS.Security.csCSecurityRole), SecurityOperations.Create); EditAllRole.Permissions.DenyRecursive(typeof(IntecoAG.ERM.CS.Security.csCSecurityRole), SecurityOperations.Delete); EditAllRole.Permissions.DenyRecursive(typeof(IntecoAG.ERM.CS.Security.csCSecurityRole), SecurityOperations.Navigate); // EditAllRole.Permissions.DenyRecursive(typeof(IntecoAG.ERM.CS.Security.csCSecurityUser), SecurityOperations.Read); EditAllRole.Permissions.DenyRecursive(typeof(IntecoAG.ERM.CS.Security.csCSecurityUser), SecurityOperations.Write); EditAllRole.Permissions.DenyRecursive(typeof(IntecoAG.ERM.CS.Security.csCSecurityUser), SecurityOperations.Create); EditAllRole.Permissions.DenyRecursive(typeof(IntecoAG.ERM.CS.Security.csCSecurityUser), SecurityOperations.Delete); EditAllRole.Permissions.DenyRecursive(typeof(IntecoAG.ERM.CS.Security.csCSecurityUser), SecurityOperations.Navigate); // EditAllRole.EndUpdate(); os.CommitChanges(); } }
/// <summary> /// Обновим права администратора, для политики Windows Autentication пользователь с административными /// правами создается автоматически, а вот список прав не обновляется /// Паша!!! Реализация не учитывает вариантов в системе безопасности и использует стандартный класс роли /// или его производные /// </summary> private void UpdateAdminRole() { using (IObjectSpace os = ObjectSpace.CreateNestedObjectSpace()) { csCSecurityRole administratorRole = os.FindObject <csCSecurityRole>( new BinaryOperator("Name", SecurityStrategy.AdministratorRoleName), true); if (administratorRole == null) { administratorRole = os.CreateObject <csCSecurityRole>(); administratorRole.Name = SecurityStrategy.AdministratorRoleName; ModelOperationPermissionData modelPermission = os.CreateObject <ModelOperationPermissionData>(); administratorRole.PersistentPermissions.Add(modelPermission); } administratorRole.BeginUpdate(); administratorRole.Permissions.GrantRecursive(typeof(object), SecurityOperations.Read); administratorRole.Permissions.GrantRecursive(typeof(object), SecurityOperations.Write); administratorRole.Permissions.GrantRecursive(typeof(object), SecurityOperations.Create); administratorRole.Permissions.GrantRecursive(typeof(object), SecurityOperations.Delete); administratorRole.Permissions.GrantRecursive(typeof(object), SecurityOperations.Navigate); administratorRole.EndUpdate(); if (administratorRole.Users.Count == 0) { // Паша !!! Неустойчивый вариант, нужен код определяющий тип User по конфигу Application csCSecurityUser user = os.FindObject <csCSecurityUser>( new BinaryOperator("UserName", ConfigurationManager.AppSettings["DefaultAdminName"])); if (user != null) { user.Roles.Add(administratorRole); } } os.CommitChanges(); } }
private void UpdateNullRightRole() { using (IObjectSpace os = ObjectSpace.CreateNestedObjectSpace()) { csCSecurityRole NullRightRole = os.FindObject <csCSecurityRole>( new BinaryOperator("Name", ConfigurationManager.AppSettings["SecurityGroups.NullRightRole"]), true); if (NullRightRole == null) { NullRightRole = os.CreateObject <csCSecurityRole>(); NullRightRole.Name = ConfigurationManager.AppSettings["SecurityGroups.NullRightRole"]; } NullRightRole.BeginUpdate(); // NullRightRole.Permissions.DenyRecursive(typeof(object), SecurityOperations.Read); NullRightRole.Permissions.DenyRecursive(typeof(object), SecurityOperations.Navigate); NullRightRole.Permissions.DenyRecursive(typeof(object), SecurityOperations.Write); NullRightRole.Permissions.DenyRecursive(typeof(object), SecurityOperations.Create); NullRightRole.Permissions.DenyRecursive(typeof(object), SecurityOperations.Delete); // NullRightRole.EndUpdate(); os.CommitChanges(); } }