Dinamik rol / izin yönetimi bounded context.
Konumlar
| Katman | Yol |
|---|
| Domain | internal/domain/rbac/ |
| Application | internal/application/authz/ — önceservice.go |
| HTTP | internal/adapters/http/handler/rbac_handler.go |
| GoUI | internal/adapters/goui/controller_rbac_notifications.go |
| Persistence | adapters/persistence/postgres/role_repository.go |
| Wiring | wire_authz.go; wire_http.go, wire_goui.go |
Application
| Dosya | İş |
|---|
service.go | Facade: izin/rol CRUD, rol-izin atama |
resolver.go | Resolver — oturum izin kontrolü (bellek içi TTL önbellek) |
dto.go | PermissionInfo, RoleInfo |
Resolver tek süreç dağıtımında process belleğinde önbellek tutar; çoklu instance için paylaşımlı invalidation gerekir (şimdilik yok).
HTTP yüzeyleri
Kayıt: server.go → /api/v1/rbac/... (izin: rbac:manage)
| Method | Path | Handler |
|---|
| GET/POST | /rbac/permissions | List / Create permission |
| PATCH | /rbac/permissions/:name | Update permission |
| GET/POST | /rbac/roles | List / Create role |
| GET/PATCH/DELETE | /rbac/roles/:name | Get / Update / Delete role |
| PUT | /rbac/roles/:name/permissions | SetPermissions |
Panel yüzeyleri
| Path | Screen |
|---|
/dashboard/rbac/roles | roles |
/dashboard/rbac/roles/new | role-new |
/dashboard/rbac/roles/:name | role-show |
/dashboard/rbac/permissions | permissions |
İlişkili