Skip to content

Commit 816a0e3

Browse files
committed
fix missing methods
Signed-off-by: nyagamunene <stevenyaga2014@gmail.com>
1 parent d5cbc10 commit 816a0e3

File tree

4 files changed

+60
-24
lines changed

4 files changed

+60
-24
lines changed

clients/middleware/pat.go

+30
Original file line numberDiff line numberDiff line change
@@ -322,6 +322,36 @@ func (pm *patMiddleware) RetrieveRole(ctx context.Context, session authn.Session
322322
return pm.svc.RetrieveRole(ctx, session, entityID, roleID)
323323
}
324324

325+
func (pm *patMiddleware) ListEntityMembers(ctx context.Context, session authn.Session, entityID string, pq roles.MembersRolePageQuery) (roles.MembersRolePage, error) {
326+
if err := pm.authorizePAT(ctx,
327+
session,
328+
smqauth.PlatformDomainsScope,
329+
smqauth.DomainClientsScope,
330+
session.DomainID,
331+
smqauth.ListOp,
332+
[]string{entityID},
333+
); err != nil {
334+
return roles.MembersRolePage{}, errors.Wrap(svcerr.ErrUnauthorizedPAT, err)
335+
}
336+
337+
return pm.svc.ListEntityMembers(ctx, session, entityID, pq)
338+
}
339+
340+
func (pm *patMiddleware) RemoveEntityMembers(ctx context.Context, session authn.Session, entityID string, members []string) error {
341+
if err := pm.authorizePAT(ctx,
342+
session,
343+
smqauth.PlatformDomainsScope,
344+
smqauth.DomainClientsScope,
345+
session.DomainID,
346+
smqauth.DeleteOp,
347+
[]string{entityID},
348+
); err != nil {
349+
return errors.Wrap(svcerr.ErrUnauthorizedPAT, err)
350+
}
351+
352+
return pm.svc.RemoveEntityMembers(ctx, session, entityID, members)
353+
}
354+
325355
func (pm *patMiddleware) RoleAddActions(ctx context.Context, session authn.Session, entityID, roleID string, actions []string) ([]string, error) {
326356
if err := pm.authorizePAT(ctx,
327357
session,

groups/middleware/pat.go

+30
Original file line numberDiff line numberDiff line change
@@ -352,6 +352,36 @@ func (pm *patMiddleware) RetrieveRole(ctx context.Context, session authn.Session
352352
return pm.svc.RetrieveRole(ctx, session, entityID, roleID)
353353
}
354354

355+
func (pm *patMiddleware) ListEntityMembers(ctx context.Context, session authn.Session, entityID string, pq roles.MembersRolePageQuery) (roles.MembersRolePage, error) {
356+
if err := pm.authorizePAT(ctx,
357+
session,
358+
smqauth.PlatformDomainsScope,
359+
smqauth.DomainGroupsScope,
360+
session.DomainID,
361+
smqauth.ListOp,
362+
[]string{entityID},
363+
); err != nil {
364+
return roles.MembersRolePage{}, errors.Wrap(svcerr.ErrUnauthorizedPAT, err)
365+
}
366+
367+
return pm.svc.ListEntityMembers(ctx, session, entityID, pq)
368+
}
369+
370+
func (pm *patMiddleware) RemoveEntityMembers(ctx context.Context, session authn.Session, entityID string, members []string) error {
371+
if err := pm.authorizePAT(ctx,
372+
session,
373+
smqauth.PlatformDomainsScope,
374+
smqauth.DomainGroupsScope,
375+
session.DomainID,
376+
smqauth.DeleteOp,
377+
[]string{entityID},
378+
); err != nil {
379+
return errors.Wrap(svcerr.ErrUnauthorizedPAT, err)
380+
}
381+
382+
return pm.svc.RemoveEntityMembers(ctx, session, entityID, members)
383+
}
384+
355385
func (pm *patMiddleware) RoleAddActions(ctx context.Context, session authn.Session, entityID, roleID string, actions []string) ([]string, error) {
356386
if err := pm.authorizePAT(ctx,
357387
session,

users/middleware/authorization.go

-2
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,8 @@ import (
77
"context"
88

99
grpcTokenV1 "github.com/absmach/supermq/api/grpc/token/v1"
10-
smqauth "github.com/absmach/supermq/auth"
1110
"github.com/absmach/supermq/pkg/authn"
1211
smqauthz "github.com/absmach/supermq/pkg/authz"
13-
svcerr "github.com/absmach/supermq/pkg/errors/service"
1412
"github.com/absmach/supermq/pkg/policies"
1513
"github.com/absmach/supermq/users"
1614
)

users/middleware/pat.go

-22
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import (
1212
"github.com/absmach/supermq/pkg/errors"
1313
svcerr "github.com/absmach/supermq/pkg/errors/service"
1414
smqpat "github.com/absmach/supermq/pkg/pat"
15-
"github.com/absmach/supermq/pkg/policies"
1615
"github.com/absmach/supermq/users"
1716
)
1817

@@ -80,27 +79,6 @@ func (pm *patMiddleware) ListUsers(ctx context.Context, session authn.Session, p
8079
return pm.svc.ListUsers(ctx, session, page)
8180
}
8281

83-
func (pm *patMiddleware) ListMembers(ctx context.Context, session authn.Session, objectKind, objectID string, page users.Page) (users.MembersPage, error) {
84-
switch objectKind {
85-
case policies.GroupsKind:
86-
if err := pm.authorizePAT(ctx, session, smqauth.PlatformUsersScope, smqauth.DomainGroupsScope, session.DomainID, smqauth.ListOp, smqauth.AnyIDs{}.Values()); err != nil {
87-
return users.MembersPage{}, err
88-
}
89-
case policies.DomainsKind:
90-
if err := pm.authorizePAT(ctx, session, smqauth.PlatformUsersScope, smqauth.DomainManagementScope, session.DomainID, smqauth.ListOp, smqauth.AnyIDs{}.Values()); err != nil {
91-
return users.MembersPage{}, err
92-
}
93-
case policies.ClientsKind:
94-
if err := pm.authorizePAT(ctx, session, smqauth.PlatformUsersScope, smqauth.DomainClientsScope, session.DomainID, smqauth.ListOp, smqauth.AnyIDs{}.Values()); err != nil {
95-
return users.MembersPage{}, err
96-
}
97-
default:
98-
return users.MembersPage{}, svcerr.ErrAuthorization
99-
}
100-
101-
return pm.svc.ListMembers(ctx, session, objectKind, objectID, page)
102-
}
103-
10482
func (pm *patMiddleware) SearchUsers(ctx context.Context, page users.Page) (users.UsersPage, error) {
10583
return pm.svc.SearchUsers(ctx, page)
10684
}

0 commit comments

Comments
 (0)