Skip to content

Commit b561227

Browse files
kofzeraHejdaJakub
authored andcommitted
fix(admin): privilege exception not thrown on member detail
Sponsors for member on member detail page are now fetched only when user accessing the page can read sponsors in the VO.
1 parent 49d77dd commit b561227

File tree

2 files changed

+11
-11
lines changed

2 files changed

+11
-11
lines changed

apps/admin-gui/src/app/vos/pages/member-detail-page/member-overview/member-overview.component.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ <h1 class="page-subtitle">{{'MEMBER_DETAIL.OVERVIEW.SPONSORSHIP' | translate}}</
7979
</mat-card-subtitle>
8080
</mat-card-header>
8181
<mat-card-content class="column-center">
82-
<div *ngIf="member.sponsored" class="mt-3">
82+
<div *ngIf="member.sponsored && this.canReadSponsors" class="mt-3">
8383
<h6 class="d-flex align-items-center">
8484
{{'MEMBER_DETAIL.OVERVIEW.SPONSORS' | translate}}:
8585
<button

apps/admin-gui/src/app/vos/pages/member-detail-page/member-overview/member-overview.component.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ export class MemberOverviewComponent implements OnInit {
4848
loading = false;
4949
pwdResetAuth: boolean;
5050
isSponsor = false;
51+
canReadSponsors = false;
5152
isPerunAdmin = false;
5253
sponsorButtonEnabled = false;
5354

@@ -96,12 +97,11 @@ export class MemberOverviewComponent implements OnInit {
9697
);
9798
this.isPerunAdmin = this.authResolver.isPerunAdmin();
9899
this.isSponsor = this.authResolver.principalHasRole(Role.SPONSOR, 'Vo', this.vo.id);
99-
if (
100-
this.member.sponsored &&
101-
this.authResolver.isAuthorized('getSponsorsForMember_Member_List<String>_policy', [
102-
this.member,
103-
])
104-
) {
100+
this.canReadSponsors = this.authResolver.isAuthorized(
101+
'getSponsorsForMember_Member_List<String>_policy',
102+
[this.member],
103+
);
104+
if (this.member.sponsored && this.canReadSponsors) {
105105
this.usersManager.getSponsorsForMember(this.member.id, null).subscribe((sponsors) => {
106106
this.sponsors = sponsors;
107107
this.sponsorsDataSource = new MatTableDataSource<Sponsor>(this.sponsors);
@@ -255,10 +255,10 @@ export class MemberOverviewComponent implements OnInit {
255255
this.membersService.getRichMemberWithAttributes(this.member.id).subscribe({
256256
next: (member) => {
257257
this.member = member;
258-
this.findSponsors.getSponsors(member.voId).subscribe((sponsors) => {
259-
this.voSponsors = sponsors;
260-
});
261-
if (member.sponsored) {
258+
if (member.sponsored && this.canReadSponsors) {
259+
this.findSponsors.getSponsors(member.voId).subscribe((sponsors) => {
260+
this.voSponsors = sponsors;
261+
});
262262
this.usersManager.getSponsorsForMember(this.member.id, null).subscribe((sponsors) => {
263263
this.sponsors = sponsors;
264264
this.sponsorsDataSource.data = this.sponsors;

0 commit comments

Comments
 (0)