/** * Update system locked global setting. */ internal static async Task UpdateSystemLockedGlobalSetting(AmazonDynamoDBClient dbClient, string loggedInUserId, bool value, bool force = false) { Debug.Untested(); Debug.AssertValid(dbClient); Debug.AssertIDOrNull(loggedInUserId); // Setting 'system locked' flag. if (value) { // Setting to true (allowed) Debug.Tested(); User loggedInUser = await IdentityServiceLogicLayer.FindUserByID(dbClient, loggedInUserId); Debug.AssertValidOrNull(loggedInUser); if (IdentityServiceLogicLayer.UserHasPermission(loggedInUser, IdentityServiceLogicLayer.PERMISSION_CAN_LOCK_SYSTEM)) { Debug.Tested(); //??--if (!IdentityGlobalSettings.ContainsKey(GLOBAL_SETTING_SYSTEM_LOCKED) || !(bool)IdentityGlobalSettings[GLOBAL_SETTING_SYSTEM_LOCKED]) bool systemLocked = await IdentityServiceLogicLayer.GetBoolIdentityGlobalSetting(dbClient, IdentityServiceLogicLayer.GLOBAL_SETTING_SYSTEM_LOCKED, false); if (!systemLocked) { Debug.Tested(); //??--IdentityGlobalSettings[GLOBAL_SETTING_SYSTEM_LOCKED] = value; await IdentityServiceDataLayer.AddIdentityGlobalSetting(dbClient, IdentityServiceLogicLayer.GLOBAL_SETTING_SYSTEM_LOCKED, value.ToString()); } else { Debug.Tested(); throw new Exception(SharedLogicLayer.ERROR_SYSTEM_ALREADY_LOCKED); } } else { Debug.Tested(); throw new Exception(SharedLogicLayer.ERROR_NO_PERMISSION); } } else if (force) { // Forcing the set to false. Debug.Tested(); //??--IdentityGlobalSettings[GLOBAL_SETTING_SYSTEM_LOCKED] = value; await IdentityServiceDataLayer.AddIdentityGlobalSetting(dbClient, IdentityServiceLogicLayer.GLOBAL_SETTING_SYSTEM_LOCKED, value.ToString()); } else { // Setting to false (not allowed) Debug.Untested(); throw new Exception(SharedLogicLayer.ERROR_NO_PERMISSION); } }
/** * Update global setting. */ internal static async Task UpdateIdentityGlobalSetting(AmazonDynamoDBClient dbClient, string loggedInUserId, string name, string value) { Debug.Untested(); Debug.AssertValid(dbClient); Debug.AssertIDOrNull(loggedInUserId); Debug.AssertString(name); if (name == IdentityServiceLogicLayer.GLOBAL_SETTING_SYSTEM_LOCKED) { // Setting 'system locked' flag. Debug.Tested(); await UpdateSystemLockedGlobalSetting(dbClient, loggedInUserId, bool.Parse(value), false); } else { // Not setting 'system locked' flag. Debug.Tested(); await IdentityServiceDataLayer.AddIdentityGlobalSetting(dbClient, name, value); //??--IdentityGlobalSettings[name] = value; } }