[Intum](https://intum.fr/aide.md) / [Konto](https://intum.fr/aide/konto.md)

# [Użytkownicy](https://intum.fr/aide/konto/uzytkownicy.md) | [API](#api)

## Użytkownicy

Zarządzanie użytkownikami obejmuje logowanie, rejestrację, zaproszenia i kontrolę uprawnień w ramach konta.

## Logowanie

- Logowanie adresem e-mail lub loginem z hasłem
- Opcjonalna **weryfikacja dwuetapowa (2FA)** — po podaniu hasła wymagany jest jednorazowy kod SMS wysłany na zweryfikowany numer telefonu
- System śledzi datę ostatniego logowania i liczbę nieudanych prób

## Rejestracja i zaproszenia

- Nowi użytkownicy mogą być **zapraszani** e-mailem — zaproszenie zawiera link aktywacyjny ważny 7 dni
- Zaproszenie określa rolę użytkownika (właściciel, admin, użytkownik, gość)
- Jeśli zaproszony użytkownik nie ma konta — musi się zarejestrować
- Jeśli ma konto jako gość — jego rola zostanie podniesiona
- Jeden użytkownik może należeć do wielu kont

## Weryfikacja

- **E-mail** — potwierdzenie adresu przez link aktywacyjny (token ważny 24 godziny)
- **Telefon** — weryfikacja numeru kodem SMS (kod ważny 10 minut)
- Zweryfikowany telefon jest wymagany do włączenia 2FA

## Uprawnienia

Każdy użytkownik ma przypisaną **rolę**, która definiuje zestaw uprawnień (patrz wpis *Role*). Uprawnienia kontrolują dostęp do modułów, funkcji i operacji w systemie.

Administrator może zarządzać użytkownikami — zmieniać ich role, dezaktywować konta, resetować hasła.

## Goście

Goście to użytkownicy z ograniczonym dostępem. Konto gościa podlega **moderacji** — administrator musi zatwierdzić lub odrzucić dostęp gościa. Statusy moderacji: oczekujący, zatwierdzony, odrzucony.

## Usuwanie konta

Użytkownik może usunąć swoje konto — dane są anonimizowane (soft delete), ale historia aktywności jest zachowana.

---

## API

### Ogólne API

# Intum API

Dokumentacja API platformy [Intum](https://intum.pl) - system operacyjny firmy.

## Host

Host jest zawsze taki sam jak adres konta: `xxxx.intum.com` lub `xxx.intum.pl` (w zależności od ustawień konta)

## Autoryzacja

Wszystkie requesty API wymagają `api_token`:
- header: `Authorization: Bearer TOKEN`

Token możesz wygenerować w **Ustawienia Konta** → **Tokeny API**

## API — Użytkownicy

### Lista użytkowników

```
GET /account/users.json
```

### Pobranie użytkownika

```
GET /account/users/:id.json
```

### Tworzenie użytkownika

```
POST /account/users.json
```

**Parametry:**

- `user_setting[email]` — adres e-mail
- `user_setting[name]` — nazwa wyświetlana
- `user_setting[role]` — rola (owner, admin, user, guest)
- `user_setting[password]` — hasło (min. 6 znaków)
- `user_setting[create_user_account]` — boolean, czy tworzyć konto użytkownika

### Aktualizacja użytkownika

```
PATCH /account/users/:id.json
```

**Parametry:** `user_setting[email]`, `user_setting[name]`, `user_setting[role]`, `user_setting[active]`, `user_setting[phone]`, `user_setting[hours_in_week]`, `user_setting[on_holiday]`, `user_setting[fields]`

### Usunięcie użytkownika

```
DELETE /account/users/:id.json
```

### Wyszukiwanie

```
GET /account/users/search.json?q=QUERY
```

**Parametry:** `q` (szukana fraza), `ids` (oddzielone przecinkiem), `show_all`

### Zaproszenia

```
GET    /account/user_invitations.json
POST   /account/user_invitations.json
DELETE /account/user_invitations/:id.json
```

**Parametry tworzenia:** `user_invitation[email]`, `user_invitation[role]`

### Rejestracja (publiczny)

```
POST /account/user/signup.json
```

**Parametry:** `user[login]`, `user[email]`, `user[password]`, `user[password_confirmation]`

### Zmiana hasła

```
PATCH /account/users/:id/manage_password.json
```

**Parametry:** `user[password]`, `user[password_confirmation]`, `user[current_password]`