Przejdź do treści
Intum
Aktualizacja: Wyświetleń: 573 2 min czytania

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_privileges roli (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