Ugrás a fő tartalomhoz
Was this helpful?

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ő

Forrás

  • Profilvezérlő: backend-nestjs/src/controllers/user-profile.controller.ts
  • Nyelvvezérlő: backend-nestjs/src/controllers/user-language.controller.ts
  • Engedélyvezérlő: backend-nestjs/src/controllers/user-permissions.controller.ts
  • Felhasználói vezérlő: backend-nestjs/src/users/users.controller.ts
  • DTO-k: backend-nestjs/src/dto/user-profile.dto.ts, backend-nestjs/src/users/dto/list-users.query.dto.ts

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önAuthForrás
GET/api/user/profileOlvassa el az aktuális felhasználói profilt és beállításokat.Egyik semJWT vagy felhasználói API kulcscontrollers/user-profile.controller.ts
POST/api/user/profile-pictureTöltse fel és állítson be egy profilképet.Többrészes mező: fileJWT vagy felhasználói API kulcscontrollers/user-profile.controller.ts
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 kulcscontrollers/user-profile.controller.ts
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 kulcscontrollers/user-profile.controller.ts
PATCH/api/user/themeCsak a téma színének frissítése.Törzs: themeColorJWT vagy felhasználói API kulcscontrollers/user-profile.controller.ts
PATCH/api/user/passwordMódosítsa az aktuális felhasználó jelszavát.Törzs: currentPassword,newPasswordJWT vagy felhasználói API kulcscontrollers/user-profile.controller.ts
PATCH/api/users/me/languageFrissítse a preferált felhasználói felület nyelvét.Törzs: preferredLanguageJWT vagy felhasználói API kulcscontrollers/user-language.controller.ts

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

módszerÚtvonalCélKérjen vagy érdeklődjönAuthForrás
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 kulcsusers/users.controller.ts
GET/api/usersFelhasználók keresése megosztási folyamatokhoz.Lekérdezés: searchJWT vagy felhasználói API kulcsusers/users.controller.ts
GET/api/user-permissionsAz aktuális engedély pillanatképének lekérése.Egyik semJWT vagy felhasználói API kulcscontrollers/user-permissions.controller.ts
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 kulcscontrollers/user-permissions.controller.ts
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 kulcscontrollers/user-permissions.controller.ts

Kérjen alakzatokat

Frissítse a profilt

UpdateProfileDto itt: backend-nestjs/src/dto/user-profile.dto.ts

  • 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

A backend-nestjs/src/controllers/user-profile.controller.ts-ban érvényesített 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.