public bool SetValues()

in Configurator/Core/Server/MySqlServerUser.cs [248:326]


    public bool SetValues(ServerConfigurationController controller, ValueList values, out string msg)
    {
      msg = null;
      if (values.Keys == null)
      {
        return false;
      }

      foreach (string key in values.Keys)
      {
        string lowerKey = key.ToLower();
        switch (lowerKey)
        {
          case "user":
          case "username":
            Username = values[key].ToString();
            break;

          case "from_host":
          case "host":
            Host = values[key].ToString();
            break;

          case "role":
            string lowerValue = values[key].ToString().ToLower();
            UserRole = controller.RolesDefined.Roles.Find(name => name.ID.ToLower() == lowerValue);
            if (UserRole == null)
            {
              msg = Properties.Resources.ServerUserRoleNotFound + values[key];
              return false;
            }
            break;

          case "authentication_plugin":
          case "auth_plugin":
            var authenticationPluginText = values[key].ToString();
            MySqlAuthenticationPluginType authenticationPlugin;
            var parsedFromInput = AuthenticationPlugin.TryParseFromDescription(authenticationPluginText, false, out authenticationPlugin);
            if (parsedFromInput)
            {
              AuthenticationPlugin = authenticationPlugin;
            }

            if (AuthenticationPlugin == MySqlAuthenticationPluginType.None)
            {
              AuthenticationPlugin = controller.Settings.DefaultAuthenticationPlugin;
            }

            if (!parsedFromInput)
            {
              msg = Properties.Resources.ServerUserInvalidAuthenticationType + values[key];
              return false;
            }

            break;

          case "password":
          case "pwd":
            Password = values[key].ToString();
            break;

          case "windows_security_tokens":
          case "win_sec_tokens":
          case "tokens":
            WindowsSecurityTokenList = values[key].ToString();
            break;

          case "type":
            // Skip key type since it is only needed to identify a user block.
            break;

          default:
            msg = Properties.Resources.ServerUserInvalidUserBlock + key;
            return false;
        }
      }

      return true;
    }