Manager scoping
Manager scoping omezuje viditelnost managerů na klienty, kteří jim byli přiřazeni. Manager nevidí data jiných klientů.
Jak to funguje
- Admin nebo Owner přiřadí managera k jednomu nebo více klientům.
- Manager vidí pouze data přiřazených klientů — jejich projekty, výkazy, faktury.
- Data ostatních klientů jsou pro managera neviditelná.
Přiřazení managera ke klientovi
Správcem klienta může být přiřazena pouze role Manager. Admin a Owner vidí vše automaticky — nepotřebují přiřazení. Přiřazení vytváří Admin nebo Owner.
- Přejděte do Klienti → vyberte klienta → Upravit.
- V sekci Přiřazení manageři klikněte na Přidat managera.
- Vyberte managera ze seznamu (zobrazí se pouze uživatelé s rolí Manager).
- Uložte.
Alternativně:
- Přejděte do Tým → vyberte managera.
- V sekci Přiřazení klienti přidejte klienty.
Co scoping ovlivňuje
| Oblast | Co vidí manager |
|---|---|
| Klienti | Pouze přiřazené (via client_assignments) |
| Projekty | Pouze projekty patřící přiřazeným klientům |
| Tým | Pouze workery, kteří mají výkazy na managerových projektech |
| Výkazy | Pouze výkazy na projektech přiřazených klientů |
| Schvalování | Pouze výkazy workerů v jeho scope |
| Faktury | Pouze faktury přiřazených klientů |
| Reporty | Filtrovaná data (pouze přiřazení klienti a jejich projekty) |
Příklad
Organizace má 3 klienty a 2 managery:
Manager A → přiřazen ke Klient 1, Klient 2
Manager B → přiřazen ke Klient 3
Manager A vidí: projekty a výkazy Klienta 1 a 2
Manager B vidí: projekty a výkazy Klienta 3
Žádný z nich nevidí data klientů, ke kterým není přiřazen.
Manager scoping je ideální pro agentury, kde různí account manageři spravují různé klienty a nemají vidět data ostatních.
Scoping na stránce Tým
Na stránce Tým vidí manager pouze členy, kteří pracují na projektech přiřazených klientů. To znamená:
- Manager vidí pouze své workery — členy, kteří mají výkazy na projektech přiřazených klientů.
- Manager může u svých workerů zobrazit detail, nastavit dny volna a upravit základní údaje.
- Ostatní členy organizace manager nevidí.
Scoping na stránce Tým funguje přes helper getVisibleUserIds(), který zjistí viditelné uživatele na základě přiřazení klientů.
Přesná pravidla scope
Manager má přístup k datům podle těchto pravidel:
- Klienti — pouze klienti přiřazení přes
client_assignments - Projekty — pouze projekty patřící přiřazeným klientům
- Stránka Tým — pouze workery, kteří mají výkazy na managerových projektech (helper
getVisibleUserIds()) - Výkazy — pouze výkazy na projektech přiřazených klientů
- Schvalování — pouze výkazy workerů v jeho scope
Záložka Tým na detailu projektu je read-only — zobrazuje přispěvatele (lidi, kteří mají výkazy na projektu). Členství v projektu je implicitní (přes time entries), ne explicitní správa týmu.
Důležité poznámky
- Admin a Owner nejsou omezeni scopingem — vidí vždy vše. Proto je ani nelze přiřadit jako správce klienta (nepotřebují to).
- HR vidí všechny členy pro správu nároků a nepřítomností.
- Accountant vidí vše v read-only režimu bez ohledu na scoping.
- Worker vidí pouze svá vlastní data — scoping se na něj nevztahuje. Worker ale vidí všechny projekty v dropdown seznamu (záměr — viz Role a oprávnění).
- Manager bez přiřazených klientů nevidí žádná data (kromě svých vlastních výkazů).
Technické pozadí
Scoping je implementován přes tabulku client_assignments, která propojuje uživatele s klienty. Všechny dotazy na data jsou automaticky filtrovány podle těchto přiřazení. Scope helpery: getVisibleClientIds(), getVisibleProjectIds(), getVisibleUserIds().