API - Role
Lista ról
GET /account/roles.json
Pobranie roli
GET /account/roles/:id.json
Tworzenie roli
POST /account/roles.json
Parametry:
-
role[name]- nazwa roli -
role[privileges][]- tablica uprawnień systemowych (np.["organize", "mail", "kb"]) -
role[based_on]- rola bazowa, opcjonalne. Wartości:"user","admin","owner","guest"lub ID innej roli własnej. Rola dziedziczy wszystkie uprawnienia bazowej -
role[custom_privileges]- uprawnienia własne jako string oddzielony przecinkami/spacjami (np."app.crm, report.export"). Zalecane nazwy z kropką (np.app.xxx,custom.xxx) dla czytelności
Aktualizacja roli
PATCH /account/roles/:id.json
Parametry: role[name], role[privileges][], role[based_on], role[custom_privileges]
Usunięcie roli
DELETE /account/roles/:id.json
Usunąć można tylko role niestandardowe (nie domyślne).
Sprawdzanie uprawnień własnych
Uprawnienia własne sprawdza się identycznie jak systemowe - przez has_privilege?("nazwa"). System automatycznie rozpoznaje czy to uprawnienie systemowe czy własne:
- Jeśli nazwa istnieje w systemowych uprawnieniach - sprawdzane tylko systemowo
- Jeśli nie istnieje - sprawdzane w
custom_privilegesroli (z uwzględnieniem dziedziczenia)
Przykład:
has_privilege?("app.crm") # sprawdza custom_privileges roli
has_privilege?("crm") # sprawdza systemowe uprawnienia z role.rb
has_privilege?("report.export") # sprawdza custom_privileges roli