public static function set_user_setting(UserProfile $profile, $setting)
 {
     if (array_key_exists($setting->{"key"}, UserBackend::fetch_user_settings($profile))) {
         $query = Database::generate_query("user_setting_update", [$profile->getUserId()->toString(), $setting->{"key"}, $setting->{"value"}]);
     } else {
         $query = Database::generate_query("user_setting_set", [$profile->getUserId()->toString(), $setting->{"key"}, $setting->{"value"}]);
     }
     $query->execute();
 }
 public function handle_get($data)
 {
     $profile = UserBackend::fetch_user_profile($this->params["id"]);
     $data = [];
     $data["profile"] = $profile->toExternalForm();
     $data["settings"] = UserBackend::fetch_user_settings($profile);
     $data["permissions"] = UserBackend::fetch_user_permissions($profile);
     $groups = [];
     /** @var GroupProfile $group */
     foreach (UserBackend::fetch_user_groups($profile) as $group) {
         $groups[] = $group->toExternalForm();
     }
     $data["groups"] = $groups;
     return $data;
 }
 public function handle($data)
 {
     $profile = UserBackend::fetch_user_profile($this->params["id"]);
     $settings = UserBackend::fetch_user_settings($profile);
     return ["settings" => $settings];
 }