123 lines
4.7 KiB
Markdown
123 lines
4.7 KiB
Markdown
# Správa uživatelů - Xtream Player
|
|
|
|
## Přehled
|
|
|
|
Uživatelé jsou ukládáni v H2 databázi (`~/.xtream-player/users.db`). Aplikace vytvoří výchozího uživatele `admin`/`admin` při prvním spuštění, pokud žádní uživatelé neexistují.
|
|
|
|
## UserManager - Nástroj pro správu uživatelů
|
|
|
|
K přidání, smazání nebo úpravě uživatelů slouží třída `UserManager`, kterou lze spustit jako standalone aplikaci.
|
|
|
|
### Spuštění interaktivního režimu
|
|
|
|
```bash
|
|
java -cp target/xtream-player-1.0.0.jar cz.kamma.xtreamplayer.UserManager
|
|
```
|
|
|
|
Zobrazí menu s následujícími možnostmi:
|
|
1. Přidat uživatele
|
|
2. Smazat uživatele
|
|
3. Aktualizovat heslo
|
|
4. Vypsat všechny uživatele
|
|
5. Ověřit heslo
|
|
0. Odejít
|
|
|
|
### Použití z příkazové řádky
|
|
|
|
#### Přidat uživatele
|
|
```bash
|
|
java -cp target/xtream-player-1.0.0.jar cz.kamma.xtreamplayer.UserManager add username password
|
|
```
|
|
|
|
#### Smazat uživatele
|
|
```bash
|
|
java -cp target/xtream-player-1.0.0.jar cz.kamma.xtreamplayer.UserManager delete username
|
|
```
|
|
|
|
#### Aktualizovat heslo
|
|
```bash
|
|
java -cp target/xtream-player-1.0.0.jar cz.kamma.xtreamplayer.UserManager update username new_password
|
|
```
|
|
|
|
#### Vypsat všechny uživatele
|
|
```bash
|
|
java -cp target/xtream-player-1.0.0.jar cz.kamma.xtreamplayer.UserManager list
|
|
```
|
|
|
|
#### Ověřit heslo
|
|
```bash
|
|
java -cp target/xtream-player-1.0.0.jar cz.kamma.xtreamplayer.UserManager verify username password
|
|
```
|
|
|
|
## Příklady
|
|
|
|
### Přidať nového administrátora
|
|
```bash
|
|
java -cp target/xtream-player-1.0.0.jar cz.kamma.xtreamplayer.UserManager add admin123 MySecurePassword123
|
|
```
|
|
|
|
### Změnit heslo existujícího uživatele
|
|
```bash
|
|
java -cp target/xtream-player-1.0.0.jar cz.kamma.xtreamplayer.UserManager update admin newPassword456
|
|
```
|
|
|
|
### Zobrazit všechny uživatele
|
|
```bash
|
|
java -cp target/xtream-player-1.0.0.jar cz.kamma.xtreamplayer.UserManager list
|
|
```
|
|
|
|
Výstup:
|
|
```
|
|
╔═══╦════════════════════╦═══════════════════════════════╦═══════════════════════════════╗
|
|
║ ID║ Username ║ Created At ║ Updated At ║
|
|
╠═══╬════════════════════╬═══════════════════════════════╬═══════════════════════════════╣
|
|
║ 1║ admin ║ 2026-03-09 10:30:45.123 ║ 2026-03-09 10:30:45.123 ║
|
|
║ 2║ admin123 ║ 2026-03-09 10:35:12.456 ║ 2026-03-09 10:35:12.456 ║
|
|
╚═══╩════════════════════╩═══════════════════════════════╩═══════════════════════════════╝
|
|
Total: 2 user(s)
|
|
```
|
|
|
|
## Architektura
|
|
|
|
### UserStore
|
|
- **Třída**: `cz.kamma.xtreamplayer.UserStore`
|
|
- **Odpovědnost**: Správa perzistentního úložiště uživatelů v H2 databázi
|
|
- **Metody**:
|
|
- `initialize()` - Initialisace databázové tabulky
|
|
- `createUser(username, password)` - Vytvoří nového uživatele
|
|
- `updatePassword(username, newPassword)` - Změní heslo
|
|
- `deleteUser(username)` - Odstraní uživatele
|
|
- `getUser(username)` - Retrieves uživatele
|
|
- `getAllUsers()` - Načte všechny uživatele
|
|
- `verifyPassword(username, password)` - Ověří heslo
|
|
- `userExists(username)` - Zkontroluje existenci
|
|
|
|
### UserAuthenticator
|
|
- **Třída**: `cz.kamma.xtreamplayer.UserAuthenticator`
|
|
- **Odpovědnost**: Správa session tokenů a přihlašování
|
|
- **Metody**:
|
|
- `authenticate(username, password)` - Přihlášení a vygenerování tokenu
|
|
- `validateToken(token)` - Ověření tokenu
|
|
- `isTokenValid(token)` - Kontrola validity tokenu
|
|
- `revokeToken(token)` - Zrušení tokenu
|
|
|
|
### UserManager
|
|
- **Třída**: `cz.kamma.xtreamplayer.UserManager`
|
|
- **Odpovědnost**: CLI nástroj pro správu uživatelů
|
|
- **Režimy**:
|
|
- Interaktivní - Menu-driven UI
|
|
- Příkazová řádka - Přímá spuštění příkazů
|
|
|
|
## Bezpečnost
|
|
|
|
- Hesla jsou hashována pomocí SHA-256 a zakódována v Base64
|
|
- Session tokeny jsou generovány pomocí `SecureRandom` a mají platnost 24 hodin
|
|
- Databáze je chráněna stejně jako ostatní aplikační data v `~/.xtream-player/`
|
|
|
|
## Migrace ze starý verze
|
|
|
|
Pokud upgradujete z verze bez databázové autentizace:
|
|
1. Aplikace automaticky vytvoří nový soubor `~/.xtream-player/users.db`
|
|
2. Výchozí uživatel `admin`/`admin` bude vytvořen automaticky
|
|
3. Můžete přidat nebo upravit uživatele pomocí `UserManager`
|