Ugrás a fő tartalomhoz
Hasznos volt ez az oldal?

Felhasználó API

Felhasználói, profil- és engedélyfelület

A profiladatok, a nyelv, a láthatósági beállítások és az engedélyek rendszerbetöltőjének kezelése

Ezek visszairányítják a bejelentkezett felhasználói beállítások területét és a kezelőfelület által használt segéd API-kat hidratálja az aktuális munkamenetet. Nem tartalmazzák a csak adminisztrátori felhasználók kezelését.

JWT vagy felhasználói API kulcsTöbbrészes feltöltésProfilbeállításokEngedélybetöltő

Hitelesítés és engedélyek​

  • Ezen az oldalon minden útvonal hitelesítést igényel.
  • A JwtAuthGuard-t használó útvonalak elfogadják a JWT hordozókulcsot, és ahol támogatott, a felhasználói API kulcsokat.
  • A POST /api/user/profile-picture @AllowIncompleteOnboarding() jelzéssel van ellátva, így a beépítés befejezése előtt használható.
  • A profilírás csak a hitelesített felhasználóra vonatkozik.

Végpont referencia​

Profil és beállítások​

módszerÚtvonalCélKérjen vagy érdeklődjönAuth
GET/api/user/profileOlvassa el az aktuális felhasználói profilt és beállításokat.Egyik semJWT vagy felhasználói API kulcs
POST/api/user/profile-pictureTöltse fel és állítson be egy profilképet.Többrészes mező: fileJWT vagy felhasználói API kulcs
PATCH/api/user/profileFrissítse a profilmezőket és a felhasználói felület beállításait.Törzs: profilmezőkJWT vagy felhasználói API kulcs
DELETE/api/user/event-labels/:labelTávolítson el egy mentett eseménycímkét, és távolítsa el a felhasználó eseményei közül.Elérési út: labelJWT vagy felhasználói API kulcs
PATCH/api/user/themeCsak a téma színének frissítése.Törzs: themeColorJWT vagy felhasználói API kulcs
PATCH/api/user/passwordMódosítsa az aktuális felhasználó jelszavát.Törzs: currentPassword,newPasswordJWT vagy felhasználói API kulcs
PATCH/api/users/me/languageFrissítse a preferált felhasználói felület nyelvét.Törzs: preferredLanguageJWT vagy felhasználói API kulcs

Session Bootstrap és megosztási segítők​

módszerÚtvonalCélKérjen vagy érdeklődjönAuth
GET/api/users/meOlvassa be az aktuális felhasználói entitást a felhasználói szolgáltatásból.Egyik semJWT vagy felhasználói API kulcs
GET/api/usersFelhasználók keresése megosztási folyamatokhoz.Lekérdezés: searchJWT vagy felhasználói API kulcs
GET/api/user-permissionsAz aktuális engedély pillanatképének lekérése.Egyik semJWT vagy felhasználói API kulcs
GET/api/user-permissions/accessible-organizationsAz aktuális felhasználó számára elérhető szervezetek listája.Egyik semJWT vagy felhasználói API kulcs
GET/api/user-permissions/accessible-reservation-calendarsAz aktuális felhasználó számára elérhető foglalási naptárak listája.Egyik semJWT vagy felhasználói API kulcs

Kérjen alakzatokat​

Frissítse a profilt​

UpdateProfileDto

  • username: opcionális, minimum 3 karakter
  • email: opcionális, érvényes e-mail
  • firstName: opcionális karakterlánc
  • lastName: opcionális karakterlánc
  • profilePictureUrl: opcionális URL, legfeljebb 2048 karakter
  • weekStartDay: opcionális egész szám 0..6
  • defaultCalendarView: nem kötelező month|week
  • timezone: opcionális karakterlánc
  • timeFormat: nem kötelező 12h|24h
  • language: opcionális enum en|hu|de|fr
  • preferredLanguage: opcionális enum en|hu|de|fr
  • hideReservationsTab: opcionális logikai érték
  • hiddenResourceIds: opcionális számtömb
  • visibleCalendarIds: opcionális számtömb
  • visibleResourceTypeIds: opcionális számtömb
  • hiddenFromLiveFocusTags: opcionális string tömb, egyenként legfeljebb 64 karakter
  • eventLabels: opcionális string tömb, egyenként legfeljebb 64 karakter
  • defaultTasksCalendarId: opcionális szám vagy null

Implementációs viselkedés a vezérlőtől:

  • A felhasználónév és az e-mail egyediség csak akkor kerül újraellenőrzésre, ha ezek a mezők valóban megváltoztak.
  • A hiddenFromLiveFocusTags és a eventLabels normalizálva, deduplikálva, levágva és 100 elemre korlátozva.
  • A defaultTasksCalendarId a null segítségével törölhető.
  • A defaultTasksCalendarId módosítása végrehajthatja a feladatok és a naptár közötti újraszinkronizálást az esedékességi dátumú feladatoknál.

Profilkép feltöltése​

Érvényesítési szabályok:

  • mező neve: file
  • engedélyezett MIME típusok: image/jpeg, image/png, image/gif, image/webp
  • maximális fájlméret: 2MB

Téma és jelszó​

  • UpdateThemeDto.themeColor: opcionális hexadecimális karakterlánc #rgb vagy #rrggbb
  • ChangePasswordDto.currentPassword: kötelező karakterlánc
  • ChangePasswordDto.newPassword: kötelező, minimum 6 karakter

Nyelv​

  • UpdateLanguagePreferenceDto.preferredLanguage: kötelező enum en|hu|de|fr
  • ListUsersQueryDto.search: opcionális biztonságos szöveg, legfeljebb 80 karakter

Példahívások​

Frissítse profilbeállításait​

curl -X PATCH "$PRIMECAL_API/api/user/profile" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"timezone": "Europe/Budapest",
"timeFormat": "24h",
"weekStartDay": 1,
"visibleCalendarIds": [2, 3, 5],
"hiddenFromLiveFocusTags": ["no_focus", "private"],
"defaultTasksCalendarId": 7
}'

Tölts fel egy profilképet​

curl -X POST "$PRIMECAL_API/api/user/profile-picture" \
-H "Authorization: Bearer $TOKEN" \
-F "file=@C:/tmp/avatar.webp"

Felhasználók keresése megosztáshoz​

curl "$PRIMECAL_API/api/users?search=justin" \
-H "Authorization: Bearer $TOKEN"

Bootstrap engedélyt ismerő felhasználói felület​

curl "$PRIMECAL_API/api/user-permissions" \
-H "Authorization: Bearer $TOKEN"

Válasz megjegyzések​

  • A GET /api/user/profile a leggazdagabb felhasználói beállításokat adja vissza, beleértve a láthatósági beállításokat, az élő fókusz rejtett címkéit, az eseménycímkéket, a belépési állapotot és az adatvédelmi irányelvek elfogadási adatait.
  • A GET /api/users/me egy egyszerűbb aktuális felhasználói keresés a felhasználói szolgáltatásból.
  • A PATCH /api/user/password egyszerű sikerüzenetet küld vissza az aktuális jelszó érvényesítése után.
  • A DELETE /api/user/event-labels/:label visszaadja az eltávolított címkét, a fennmaradó címkéket és az érintett események számát.

Legjobb gyakorlatok​

  • Használja a GET /api/user/profile-t elsődleges rendszerindítási útvonalként.
  • Használja a GET /api/user-permissions szolgáltatást a foglalások, szervezeti beállítások vagy szerepérzékeny felhasználói felület megjelenítése előtt.
  • Csak a PATCH /api/user/profile módosított mezőit küldje el; a vezérlő szándékosan hajt végre szűk egyediség-ellenőrzéseket.
  • Tartsa a eventLabels és a hiddenFromLiveFocusTags normalizálását az ügyfélen is, hogy a felhasználói felület állapota megfeleljen a backend normalizálási szabályainak.
  • Használja a Personal Logs API naplózási előzményeket ahelyett, hogy túlterhelné ezeket a beállításokat a tevékenységi problémákkal.