- @if (visibilityToggle() && !isCollectionsRoute()) {
+ @if (visibilityToggle() && !isCollectionsRoute() && isAdmin()) {
@@ -41,7 +41,7 @@
}
- @if (showViewOnlyLinks()) {
+ @if (showViewOnlyLinks() && isAdmin()) {
(false);
protected isPublic = signal(false);
protected isBookmarked = signal(false);
-
+ isAdmin = input.required();
currentResource = input.required();
visibilityToggle = input(true);
showViewOnlyLinks = input(true);
diff --git a/src/app/features/project/overview/models/project-overview.models.ts b/src/app/features/project/overview/models/project-overview.models.ts
index ff776be0f..d77576974 100644
--- a/src/app/features/project/overview/models/project-overview.models.ts
+++ b/src/app/features/project/overview/models/project-overview.models.ts
@@ -1,4 +1,5 @@
import { JsonApiResponse } from '@osf/core/models';
+import { UserPermissions } from '@osf/shared/enums';
import { License } from '@shared/models';
export interface ProjectOverviewContributor {
@@ -42,7 +43,7 @@ export interface ProjectOverview {
supplements?: ProjectSupplements[];
analyticsKey: string;
currentUserCanComment: boolean;
- currentUserPermissions: string[];
+ currentUserPermissions: UserPermissions[];
currentUserIsContributor: boolean;
currentUserIsContributorOrGroupMember: boolean;
wikiEnabled: boolean;
diff --git a/src/app/features/project/overview/project-overview.component.html b/src/app/features/project/overview/project-overview.component.html
index f83db97e8..70c136e04 100644
--- a/src/app/features/project/overview/project-overview.component.html
+++ b/src/app/features/project/overview/project-overview.component.html
@@ -13,7 +13,11 @@
-
+
@@ -54,9 +58,12 @@
}
-
-
-
+ @if (isAdmin || canWrite) {
+
+ }
+
+
+
@@ -65,6 +72,7 @@
[currentResource]="resourceOverview()"
(customCitationUpdated)="onCustomCitationUpdated($event)"
[isCollectionsRoute]="isCollectionsRoute()"
+ [canWrite]="canWrite"
/>
diff --git a/src/app/features/project/overview/project-overview.component.ts b/src/app/features/project/overview/project-overview.component.ts
index 78aa5c925..ab91fd96a 100644
--- a/src/app/features/project/overview/project-overview.component.ts
+++ b/src/app/features/project/overview/project-overview.component.ts
@@ -29,7 +29,7 @@ import {
ResourceMetadataComponent,
SubHeaderComponent,
} from '@shared/components';
-import { Mode, ResourceType } from '@shared/enums';
+import { Mode, ResourceType, UserPermissions } from '@shared/enums';
import { MapProjectOverview } from '@shared/mappers/resource-overview.mappers';
import { ToastService } from '@shared/services';
import {
@@ -141,6 +141,18 @@ export class ProjectOverviewComponent implements OnInit {
});
protected currentProject = select(ProjectOverviewSelectors.getProject);
+ protected userPermissions = computed(() => {
+ return this.currentProject()?.currentUserPermissions || [];
+ });
+
+ get isAdmin(): boolean {
+ return this.userPermissions().includes(UserPermissions.Admin);
+ }
+
+ get canWrite(): boolean {
+ return this.userPermissions().includes(UserPermissions.Write);
+ }
+
protected resourceOverview = computed(() => {
const project = this.currentProject();
if (project) {
diff --git a/src/app/features/registry/pages/registry-overview/registry-overview.component.html b/src/app/features/registry/pages/registry-overview/registry-overview.component.html
index 96f7a70c6..9ef77ac50 100644
--- a/src/app/features/registry/pages/registry-overview/registry-overview.component.html
+++ b/src/app/features/registry/pages/registry-overview/registry-overview.component.html
@@ -9,6 +9,7 @@
[currentResource]="toolbarResource()"
[visibilityToggle]="false"
[showViewOnlyLinks]="false"
+ [isAdmin]="true"
/>
}
@@ -71,6 +72,7 @@
{{ block.value }}