ld-permissions
Guide for Lightdash's CASL-based authorization system. Use when working with scopes, custom roles, abilities, permissions, ForbiddenError, authorization, or access control. Helps with adding new scopes, debugging permission issues, understanding the permission flow, and creating
Installation
Pick a client and clone the repository into its skills directory.
Installation
About this skill
Guide for Lightdash's CASL-based authorization system. Use when working with scopes, custom roles, abilities, permissions, ForbiddenError, authorization, or access control. Helps with adding new scopes, debugging permission issues, understanding the permission flow, and creating custom roles.
How to use
Zainstaluj skill ld-permissions w swoim projekcie Lightdasha — będzie dostępny jako przewodnik w kontekście pracy z autoryzacją i uprawnieniami.
Gdy napotkasz problem z dostępem użytkownika lub musisz dodać nowe uprawnienie, uruchom skill i wybierz odpowiadający Ci scenariusz: dodanie nowego scope'a, debugowanie problemu z uprawnieniami, zrozumienie przepływu autoryzacji lub pracę z rolami niestandardowymi.
Aby dodać nowe uprawnienie, skill pokaże Ci kluczowe pliki — zacznij od scopes.ts, gdzie zdefiniujesz nowy scope, a następnie zaktualizuj roleToScopeMapping.ts i scopeAbilityBuilder.ts.
Do debugowania problemów z dostępem sprawdź, czy użytkownik ma przypisaną rolę z odpowiednim scope'em — skill pomoże Ci śledzić przepływ od definicji roli do sprawdzenia uprawnień w kodzie.
Na backendzie używaj wzorca z ForbiddenError do sprawdzenia uprawnień: ability.cannot('manage', subject('Dashboard', { projectUuid })) — skill pokaże Ci dokładną składnię dla Twojego przypadku.
Na frontendie używaj hooka useUser() i komponentu Can do warunkowego renderowania elementów UI — skill wskaże Ci lokalizację providera Ability i przykłady integracji.