Skip to content

Commit 53ee32c

Browse files
committed
Use per-request ownership-role override in remove-member and member-role
RemoveMemberService and UpdateMemberRoleService read the required ownership role from conf.ownershipRole() directly, ignoring the per-team override-accounts-ownership-role attached param that RequestOverrides resolves. Every other accounts service (InviteService, and the new TeamService / GetTeamsService POST path) already goes through RequestOverrides.ownershipRole(req, conf); align these two so multi-team deployments that override the ownership role per team authorize these two endpoints against the right role. Pure superset: with no override attached, RequestOverrides.ownershipRole falls back to conf.ownershipRole(), so single-tenant behavior is unchanged.
1 parent 6df8606 commit 53ee32c

2 files changed

Lines changed: 4 additions & 2 deletions

File tree

accounts/src/main/java/org/restheart/accounts/RemoveMemberService.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import org.restheart.plugins.accounts.AccountsConfigData;
44
import org.restheart.accounts.util.Errors;
5+
import org.restheart.accounts.util.RequestOverrides;
56
import org.restheart.exchange.JsonRequest;
67
import org.restheart.exchange.JsonResponse;
78
import org.restheart.plugins.Inject;
@@ -80,7 +81,7 @@ public void handle(JsonRequest req, JsonResponse res) {
8081
var membershipProvider = accountsService.getMembershipProvider(req);
8182
var membership = membershipProvider.activeMembership(callerEmail);
8283
var membershipRole = membership.map(m -> m.role()).orElse(null);
83-
var ownershipRole = conf.ownershipRole();
84+
var ownershipRole = RequestOverrides.ownershipRole(req, conf);
8485
if (membershipRole == null || !membershipRole.equals(ownershipRole)) {
8586
Errors.error(res, HttpStatus.SC_FORBIDDEN, "Requires " + ownershipRole + " role");
8687
return;

accounts/src/main/java/org/restheart/accounts/UpdateMemberRoleService.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import org.restheart.plugins.accounts.AccountsConfigData;
44
import org.restheart.accounts.util.Errors;
5+
import org.restheart.accounts.util.RequestOverrides;
56
import org.restheart.exchange.JsonRequest;
67
import org.restheart.exchange.JsonResponse;
78
import org.restheart.plugins.Inject;
@@ -82,7 +83,7 @@ public void handle(JsonRequest req, JsonResponse res) {
8283
var membershipProvider = accountsService.getMembershipProvider(req);
8384
var membership = membershipProvider.activeMembership(callerEmail);
8485
var membershipRole = membership.map(m -> m.role()).orElse(null);
85-
var ownershipRole = conf.ownershipRole();
86+
var ownershipRole = RequestOverrides.ownershipRole(req, conf);
8687
if (membershipRole == null || !membershipRole.equals(ownershipRole)) {
8788
Errors.error(res, HttpStatus.SC_FORBIDDEN, "Requires " + ownershipRole + " role");
8889
return;

0 commit comments

Comments
 (0)