private void FixAdministrator() { using (SC.Utility.Lock l = new SC.Utility.Lock(secLock, SC.Utility.Lock.LockType.ForReading)) { if (users.Count == 0) { Logger.Warn("No users found, adding Administrator account with default password"); l.UpgradeToWriterLock(); UserInfo adminInfo = new UserInfo("Administrator", "ServerChecker4"); users.Add(adminInfo.Username, adminInfo); l.DowngradeToReaderLock(); } SecuritySubject me = acls[securityGuid]; System.Collections.Specialized.StringCollection permissions = new System.Collections.Specialized.StringCollection(); permissions.AddRange(me.GetPermissions()); if (permissions.Count == 0) { Logger.Warn("No permissions found for SecurityManager. Adding permission for Administrator account"); l.UpgradeToWriterLock(); me.AddPermission("Administrator"); l.DowngradeToReaderLock(); } } }
public void UnregisterSubject(Guid guid, bool remove) { using (SC.Utility.Lock l = new SC.Utility.Lock(secLock, SC.Utility.Lock.LockType.ForReading)) { try { SecuritySubject subject = acls[guid]; acls.Remove(guid); if (remove) { l.UpgradeToWriterLock(); subjects.Remove(subject.Name); l.DowngradeToReaderLock(); } } catch (KeyNotFoundException) { Logger.Error("Tried unregistering subject that never registered."); throw; } catch (Exception e) { Logger.Error("An unexpected error occurred during unregistering of a subject.", e); throw; } } SaveSettings(); }
private void FixAdministrator() { using (SC.Utility.Lock l = new SC.Utility.Lock(secLock, SC.Utility.Lock.LockType.ForReading)) { if (users.Count == 0) { Logger.Warn("No users found, adding Administrator account with default password"); l.UpgradeToWriterLock(); UserInfo adminInfo = new UserInfo("Administrator", "ServerChecker4"); users.Add(adminInfo.Username, adminInfo); l.DowngradeToReaderLock(); } SecuritySubject me = acls[securityGuid]; System.Collections.Specialized.StringCollection permissions = new System.Collections.Specialized.StringCollection(); permissions.AddRange(me.GetPermissions()); if (permissions.Count == 0) { Logger.Warn("No permissions found for SecurityManager. Adding permission for Administrator account"); l.UpgradeToWriterLock(); me.AddPermission("Administrator"); l.DowngradeToReaderLock(); } } }
public void UnregisterSubject(Guid guid, bool remove) { using (SC.Utility.Lock l = new SC.Utility.Lock(secLock, SC.Utility.Lock.LockType.ForReading)) { try { SecuritySubject subject = acls[guid]; acls.Remove(guid); if (remove) { l.UpgradeToWriterLock(); subjects.Remove(subject.Name); l.DowngradeToReaderLock(); } } catch (KeyNotFoundException) { Logger.Error("Tried unregistering subject that never registered."); throw; } catch (Exception e) { Logger.Error("An unexpected error occurred during unregistering of a subject.", e); throw; } } SaveSettings(); }