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 | Útvonal | Cél | Kérjen vagy érdeklődjön | Auth | Forrás |
|---|---|---|---|---|---|
GET | /api/user/profile | Olvassa el az aktuális felhasználói profilt és beállításokat. | Egyik sem | JWT vagy felhasználói API kulcs | controllers/user-profile.controller.ts |
POST | /api/user/profile-picture | Töltse fel és állítson be egy profilképet. | Többrészes mező: file | JWT vagy felhasználói API kulcs | controllers/user-profile.controller.ts |
PATCH | /api/user/profile | Frissítse a profilmezőket és a felhasználói felület beállításait. | Törzs: profilmezők | JWT vagy felhasználói API kulcs | controllers/user-profile.controller.ts |
DELETE | /api/user/event-labels/:label | Tá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: label | JWT vagy felhasználói API kulcs | controllers/user-profile.controller.ts |
PATCH | /api/user/theme | Csak a téma színének frissítése. | Törzs: themeColor | JWT vagy felhasználói API kulcs | controllers/user-profile.controller.ts |
PATCH | /api/user/password | Módosítsa az aktuális felhasználó jelszavát. | Törzs: currentPassword,newPassword | JWT vagy felhasználói API kulcs | controllers/user-profile.controller.ts |
PATCH | /api/users/me/language | Frissítse a preferált felhasználói felület nyelvét. | Törzs: preferredLanguage | JWT vagy felhasználói API kulcs | controllers/user-language.controller.ts |
Session Bootstrap és megosztási segítők
| módszer | Útvonal | Cél | Kérjen vagy érdeklődjön | Auth | Forrás |
|---|---|---|---|---|---|
GET | /api/users/me | Olvassa be az aktuális felhasználói entitást a felhasználói szolgáltatásból. | Egyik sem | JWT vagy felhasználói API kulcs | users/users.controller.ts |
GET | /api/users | Felhasználók keresése megosztási folyamatokhoz. | Lekérdezés: search | JWT vagy felhasználói API kulcs | users/users.controller.ts |
GET | /api/user-permissions | Az aktuális engedély pillanatképének lekérése. | Egyik sem | JWT vagy felhasználói API kulcs | controllers/user-permissions.controller.ts |
GET | /api/user-permissions/accessible-organizations | Az aktuális felhasználó számára elérhető szervezetek listája. | Egyik sem | JWT vagy felhasználói API kulcs | controllers/user-permissions.controller.ts |
GET | /api/user-permissions/accessible-reservation-calendars | Az aktuális felhasználó számára elérhető foglalási naptárak listája. | Egyik sem | JWT vagy felhasználói API kulcs | controllers/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 karakteremail: opcionális, érvényes e-mailfirstName: opcionális karakterlánclastName: opcionális karakterláncprofilePictureUrl: opcionális URL, legfeljebb 2048 karakterweekStartDay: opcionális egész szám0..6defaultCalendarView: nem kötelezőmonth|weektimezone: opcionális karakterlánctimeFormat: nem kötelező12h|24hlanguage: opcionális enumen|hu|de|frpreferredLanguage: opcionális enumen|hu|de|frhideReservationsTab: opcionális logikai értékhiddenResourceIds: opcionális számtömbvisibleCalendarIds: opcionális számtömbvisibleResourceTypeIds: opcionális számtömbhiddenFromLiveFocusTags: opcionális string tömb, egyenként legfeljebb 64 karaktereventLabels: opcionális string tömb, egyenként legfeljebb 64 karakterdefaultTasksCalendarId: opcionális szám vagynull
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 aeventLabelsnormalizálva, deduplikálva, levágva és 100 elemre korlátozva. - A
defaultTasksCalendarIdanullsegítségével törölhető. - A
defaultTasksCalendarIdmó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#rgbvagy#rrggbbChangePasswordDto.currentPassword: kötelező karakterláncChangePasswordDto.newPassword: kötelező, minimum 6 karakter
Nyelv
UpdateLanguagePreferenceDto.preferredLanguage: kötelező enumen|hu|de|fr
Felhasználói keresés
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/profilea 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/meegy egyszerűbb aktuális felhasználói keresés a felhasználói szolgáltatásból. - A
PATCH /api/user/passwordegyszerű sikerüzenetet küld vissza az aktuális jelszó érvényesítése után. - A
DELETE /api/user/event-labels/:labelvisszaadja 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-permissionsszolgá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/profilemó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 ahiddenFromLiveFocusTagsnormalizá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 APInaplózási előzményeket ahelyett, hogy túlterhelné ezeket a beállításokat a tevékenységi problémákkal.