Skip to content

Commit 6b59a7d

Browse files
committed
Fixex #528
1 parent badcf30 commit 6b59a7d

File tree

2 files changed

+6
-3
lines changed

2 files changed

+6
-3
lines changed

client/src/connection/Contract.jsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import {updateApplication} from "../api/index.js";
66
import {convertClientApplicationToServer, convertServerApplicationToClient} from "../utils/Application.js";
77
import {Button, ButtonType, Loader} from "@surfnet/sds";
88
import ContractSignedIcon from "../icons/undraw/contract_signed.svg";
9-
import {authorities, currentUserMembershipAuthority} from "../utils/Permissions.js";
9+
import {authorities, currentUserMembershipAuthority, isOrganizationAdmin} from "../utils/Permissions.js";
1010

1111
export const Contract = ({
1212
application,
@@ -48,7 +48,7 @@ export const Contract = ({
4848
return <Loader/>
4949
}
5050

51-
const maySignContract = currentUserMembershipAuthority(user, currentOrganization) === authorities.ADMIN;
51+
const maySignContract = user.superUser || isOrganizationAdmin(user, currentOrganization) ;
5252

5353
return (
5454
<div className="contract-container">

server/src/main/java/access/api/ApplicationController.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,8 +178,11 @@ public ResponseEntity<Application> update(User user, @Validated @RequestBody App
178178
.orElseThrow(() -> new NotFoundException("Application not found"));
179179

180180
user = this.reinitializeUser(user, userRepository);
181+
181182
confirmApplicationWriteAccess(user, application);
182-
if (!application.isSignedContract() && applicationData.isSignedContract()) {
183+
184+
if (!application.isSignedContract() && applicationData.isSignedContract() &&
185+
getOrganizationMembership(user, application.getOrganization(), Authority.ADMIN).isEmpty()) {
183186
throw new UserRestrictionException(
184187
String.format("User %s is not allowed to sign contract for application %s",
185188
user.getEmail(), application.getName()));

0 commit comments

Comments
 (0)