public function handle($data) { $profile = UserBackend::fetch_user_profile($this->params['id']); $groups = []; /** @var \meteor\data\profiles\GroupProfile $group */ foreach (UserBackend::fetch_user_groups($profile) as $group) { $groups[] = $group->toExternalForm(); } return ["groups" => $groups]; }
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 static function check_user_permission(UserProfile $profile, $permission) { $query = Database::generate_query("user_permission_check", [$profile->getUserId()->toString(), $permission]); $result = $query->execute(); $count = $result->count(); $result->close(); if ($count >= 1) { return true; } foreach (UserBackend::fetch_user_groups($profile) as $group) { if (GroupBackend::check_group_permission($group, $permission)) { return true; } } return false; }