mirror of
https://github.com/SigNoz/signoz.git
synced 2026-02-03 08:33:26 +00:00
* feat(authz): initial commit for migrating rbac to openfga * feat(authz): make the role updates idempotant * feat(authz): split role module into role and grant * feat(authz): some naming changes * feat(authz): integrate the grant module * feat(authz): add support for migrating existing user role * feat(authz): add support for migrating existing user role * feat(authz): figure out the * selector * feat(authz): merge main * feat(authz): merge main * feat(authz): address couple of todos * feat(authz): address couple of todos * feat(authz): fix tests and revert public dashboard change * feat(authz): fix tests and revert public dashboard change * feat(authz): add open api spec * feat(authz): add open api spec * feat(authz): add api key changes and missing migration * feat(authz): split role into getter and setter * feat(authz): add integration tests for authz register * feat(authz): add more tests for user invite and delete * feat(authz): update user tests * feat(authz): rename grant to granter * feat(authz): address review comments * feat(authz): address review comments * feat(authz): address review comments * feat(authz): add the migration for existing roles * feat(authz): go mod tidy * feat(authz): fix integration tests * feat(authz): handle community changes * feat(authz): handle community changes * feat(authz): role selectors for open claims * feat(authz): role selectors for open claims * feat(authz): prevent duplicate entries for changelog * feat(authz): scafolding for rbac migration * feat(authz): scafolding for rbac migration * feat(authz): scafolding for rbac migration * feat(authz): scafolding for rbac migration * feat(authz): scafolding for rbac migration
64 lines
1.6 KiB
Go
64 lines
1.6 KiB
Go
package implrole
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/SigNoz/signoz/pkg/modules/role"
|
|
"github.com/SigNoz/signoz/pkg/types/roletypes"
|
|
"github.com/SigNoz/signoz/pkg/valuer"
|
|
)
|
|
|
|
type getter struct {
|
|
store roletypes.Store
|
|
}
|
|
|
|
func NewGetter(store roletypes.Store) role.Getter {
|
|
return &getter{store: store}
|
|
}
|
|
|
|
func (getter *getter) Get(ctx context.Context, orgID valuer.UUID, id valuer.UUID) (*roletypes.Role, error) {
|
|
storableRole, err := getter.store.Get(ctx, orgID, id)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return roletypes.NewRoleFromStorableRole(storableRole), nil
|
|
}
|
|
|
|
func (getter *getter) GetByOrgIDAndName(ctx context.Context, orgID valuer.UUID, name string) (*roletypes.Role, error) {
|
|
storableRole, err := getter.store.GetByOrgIDAndName(ctx, orgID, name)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return roletypes.NewRoleFromStorableRole(storableRole), nil
|
|
}
|
|
|
|
func (getter *getter) List(ctx context.Context, orgID valuer.UUID) ([]*roletypes.Role, error) {
|
|
storableRoles, err := getter.store.List(ctx, orgID)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
roles := make([]*roletypes.Role, len(storableRoles))
|
|
for idx, storableRole := range storableRoles {
|
|
roles[idx] = roletypes.NewRoleFromStorableRole(storableRole)
|
|
}
|
|
|
|
return roles, nil
|
|
}
|
|
|
|
func (getter *getter) ListByOrgIDAndNames(ctx context.Context, orgID valuer.UUID, names []string) ([]*roletypes.Role, error) {
|
|
storableRoles, err := getter.store.ListByOrgIDAndNames(ctx, orgID, names)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
roles := make([]*roletypes.Role, len(storableRoles))
|
|
for idx, storable := range storableRoles {
|
|
roles[idx] = roletypes.NewRoleFromStorableRole(storable)
|
|
}
|
|
|
|
return roles, nil
|
|
}
|