diff --git a/connect/community/community.service.ts b/connect/community/community.service.ts index 38dfaf87..03f5e327 100644 --- a/connect/community/community.service.ts +++ b/connect/community/community.service.ts @@ -98,14 +98,14 @@ export class CommunityService { community.description = resData.description; community.date = resData.creationDate; community.zenodoCommunity = resData.zenodoCommunity; - community.status = 'all'; + community.status = 'PUBLIC'; community.type = resData.type; community.otherZenodoCommunities = resData.otherZenodoCommunities; if (resData.hasOwnProperty('status')) { community.status = resData.status; const status = ['all', 'hidden', 'manager']; - if (status.indexOf(community['status']) === -1) { - community.status = 'hidden'; + if(!( community.isPrivate() || community.isRestricted() || community.isPublic())) { + community.status = 'PRIVATE'; } } if (resData.subjects != null) { diff --git a/connect/community/communityInfo.ts b/connect/community/communityInfo.ts index 8f1989fd..75daa955 100644 --- a/connect/community/communityInfo.ts +++ b/connect/community/communityInfo.ts @@ -14,7 +14,7 @@ export class CommunityInfo { managers: string[]; date:Date; subjects: string[]; - status:string; + status:"all" | "manager" | "hidden" | "PUBLIC" | "RESTRICTED" | "PRIVATE"; zenodoCommunity:string; otherZenodoCommunities: string[]; isUpload: boolean; @@ -34,5 +34,14 @@ export class CommunityInfo { } return response; } + public isPublic(){ + return this.status == "all" || this.status == "PUBLIC"; + } + public isRestricted(){ + return this.status == "manager" || this.status == "RESTRICTED"; + } + public isPrivate(){ + return this.status == "hidden" || this.status == "PRIVATE"; + } } // export const prodReadyCommunities = ["dh-ch", "ee", "fam", "mes", "ni", "covid-19", "dariah", "epos", "egi"]; diff --git a/connect/connectHelper.ts b/connect/connectHelper.ts index 1fbbc59a..0e65047a 100644 --- a/connect/connectHelper.ts +++ b/connect/connectHelper.ts @@ -54,6 +54,6 @@ export class ConnectHelper { public static isPrivate(community, user) { - return community && (community.status == "hidden" || (community.status == "manager" && !(Session.isPortalAdministrator(user) || Session.isCommunityCurator(user) || Session.isManager("community", community.communityId, user)))) + return community && (community.isPrivate() || (community.isRestricted() && !(Session.isPortalAdministrator(user) || Session.isCommunityCurator(user) || Session.isManager("community", community.communityId, user)))) } }