diff --git a/src/app/app.component.ts b/src/app/app.component.ts
index 8161d57..db7a185 100644
--- a/src/app/app.component.ts
+++ b/src/app/app.component.ts
@@ -212,6 +212,13 @@ export class AppComponent implements OnInit, OnDestroy {
this.menuItems = [];
this.adminMenuItems = [];
this.userMenuItems = [];
+ if (this.isAdmin()) {
+ this.userMenuItems.push(new MenuItem("", "Manage profiles",
+ "", "/admin", true, [], [], {}))
+ }
+ if (this.user) {
+ this.userMenuItems.push(new MenuItem("", "User information", "", "/user-info", false, [], [], {}));
+ }
if (this.stakeholder) {
if (this.isFrontPage) {
this.menuHeader = {
@@ -262,13 +269,7 @@ export class AppComponent implements OnInit, OnDestroy {
"", "/helptexts", true, [], [], {communityId:'openaire'}))
}*/
- if (this.isAdmin()) {
- this.userMenuItems.push(new MenuItem("", "Manage profiles",
- "", "/admin", true, [], [], {}))
- }
- if (this.user) {
- this.userMenuItems.push(new MenuItem("", "User information", "", "/user-info", false, [], [], {}));
- }
+
} else {
if (this.isFrontPage || !this.hasAdminMenu) {
this.menuHeader = {
@@ -316,7 +317,7 @@ export class AppComponent implements OnInit, OnDestroy {
}
public isAdmin() {
- return this.user && (Session.isPortalAdministrator(this.user) || Session.isCommunityCurator(this.user) || Session.isMonitorCurator(this.user) || (this.stakeholder && Session.isManager(this.stakeholder.type, this.stakeholder.alias, this.user)));
+ return this.user && (Session.isPortalAdministrator(this.user) || Session.isMonitorCurator(this.user) || (this.stakeholder && Session.isManager(this.stakeholder.type, this.stakeholder.alias, this.user)));
}
private resolvePageInner() {
diff --git a/src/app/general/edit-stakeholder/edit-stakeholder.component.ts b/src/app/general/edit-stakeholder/edit-stakeholder.component.ts
index e64dad6..a358972 100644
--- a/src/app/general/edit-stakeholder/edit-stakeholder.component.ts
+++ b/src/app/general/edit-stakeholder/edit-stakeholder.component.ts
@@ -8,6 +8,8 @@ import {EnvProperties} from "../../openaireLibrary/utils/properties/env-properti
import {properties} from "../../../environments/environment";
import {StakeholderService} from "../../openaireLibrary/monitor/services/stakeholder.service";
import {UtilitiesService} from "../../openaireLibrary/services/utilities.service";
+import {User} from "../../openaireLibrary/login/utils/helper.class";
+import {UserManagementService} from "../../openaireLibrary/services/user-management.service";
@Component({
selector: 'edit-stakeholder',
@@ -76,8 +78,8 @@ import {UtilitiesService} from "../../openaireLibrary/services/utilities.service
[options]="stakeholderUtils.statuses" type="select">
+ [placeholder]="'Select a type'" hint="Select the type of your profile"
+ label="Type" [options]="stakeholderUtils.getTypesByUserRoles(user)" type="select">
{
+ this.user = user;
+ }, error => {
+ console.log("App couldn't fetch properties");
+ console.log(error);
+ }));
this.stakeholderFb = this.fb.group({
_id: this.fb.control(this.stakeholder._id),
defaultId: this.fb.control(this.stakeholder.defaultId),
diff --git a/src/app/general/general.component.html b/src/app/general/general.component.html
index 1bedb02..bd25158 100644
--- a/src/app/general/general.component.html
+++ b/src/app/general/general.component.html
@@ -27,7 +27,7 @@
+ [maxHeight]="'60vh'" [paddingLarge]="true" >
diff --git a/src/app/manageStakeholders/manageStakeholders.component.ts b/src/app/manageStakeholders/manageStakeholders.component.ts
index 1bbaef0..b5e67ac 100644
--- a/src/app/manageStakeholders/manageStakeholders.component.ts
+++ b/src/app/manageStakeholders/manageStakeholders.component.ts
@@ -248,7 +248,7 @@ export class ManageStakeholdersComponent implements OnInit, OnDestroy {
}
public isCurator(): boolean {
- return this.isAdmin() || Session.isCommunityCurator(this.user) || Session.isMonitorCurator(this.user);
+ return this.isAdmin() || Session.isMonitorCurator(this.user);
}
public isAdmin(): boolean {
diff --git a/src/app/monitor/monitor.component.ts b/src/app/monitor/monitor.component.ts
index 966a4eb..f0ba2d2 100644
--- a/src/app/monitor/monitor.component.ts
+++ b/src/app/monitor/monitor.component.ts
@@ -437,7 +437,7 @@ export class MonitorComponent implements OnInit, OnDestroy {
}
isAdmin(){
- return this.user && (Session.isPortalAdministrator(this.user) || Session.isCommunityCurator(this.user) || Session.isMonitorCurator(this.user));
+ return this.user && (Session.isPortalAdministrator(this.user) || Session.isMonitorCurator(this.user));
}
public isPublicOrIsMember(visibility: Visibility): boolean {
diff --git a/src/app/topic/indicators.component.ts b/src/app/topic/indicators.component.ts
index 78f1e90..37d9dcc 100644
--- a/src/app/topic/indicators.component.ts
+++ b/src/app/topic/indicators.component.ts
@@ -737,7 +737,7 @@ export class IndicatorsComponent implements OnInit, OnDestroy, OnChanges, AfterV
}
public get isAdministrator(): boolean {
- return Session.isPortalAdministrator(this.user) || Session.isMonitorCurator(this.user) || Session.isCommunityCurator(this.user)
+ return Session.isPortalAdministrator(this.user) || Session.isMonitorCurator(this.user)
}
refreshIndicator() {
diff --git a/src/app/utils/adminDashboard.guard.ts b/src/app/utils/adminDashboard.guard.ts
index 6b5c49a..27c75a5 100644
--- a/src/app/utils/adminDashboard.guard.ts
+++ b/src/app/utils/adminDashboard.guard.ts
@@ -24,8 +24,8 @@ export class AdminDashboardGuard implements CanActivate {
if(user) {
return this.stakeholderService.getStakeholder(alias).pipe(map(stakeholder => {
if(stakeholder) {
- return (Session.isPortalAdministrator(user) || Session.isCommunityCurator(user) ||
- Session.isMonitorCurator(user) || Session.isManager(stakeholder.type, stakeholder.alias, user));
+ return (Session.isPortalAdministrator(user) ||
+ Session.isCurator(stakeholder.type, user) || Session.isManager(stakeholder.type, stakeholder.alias, user));
} else {
return false;
}
diff --git a/src/app/utils/indicator-utils.ts b/src/app/utils/indicator-utils.ts
index f26fa49..0cb2320 100644
--- a/src/app/utils/indicator-utils.ts
+++ b/src/app/utils/indicator-utils.ts
@@ -9,13 +9,14 @@ import {
} from "../openaireLibrary/monitor/entities/stakeholder";
import {AbstractControl, ValidatorFn, Validators} from "@angular/forms";
import {Option} from "../openaireLibrary/dashboard/sharedComponents/input/input.component";
+import {Session} from "../openaireLibrary/login/utils/helper.class";
export class StakeholderUtils {
statuses: Option[] = [
{value: 'PUBLIC', label: 'Public'},
{value: 'RESTRICTED', label: 'Restricted'},
{value: 'PRIVATE', label: 'Private'}
- ]
+ ];
types: Option[] = [
{value: 'funder', label: 'Funder'},
@@ -23,7 +24,15 @@ export class StakeholderUtils {
{value: 'project', label: 'Project'},
{value: 'organization', label: 'Organization'}
];
-
+ getTypesByUserRoles(user):Option[]{
+ let types = [];
+ for(let type of this.types){
+ if(Session.isCurator(type.value, user)|| Session.isPortalAdministrator(user)){
+ types.push(type);
+ }
+ }
+ return types;
+ }
visibility: Option[] = [
{icon: 'world', value: "PUBLIC", label: 'Public'},
{icon: 'lock', value: "RESTRICTED", label: 'Restricted'},
diff --git a/src/assets/dashboard-theme/structure.css b/src/assets/dashboard-theme/structure.css
index d08f15e..61da7e6 100644
--- a/src/assets/dashboard-theme/structure.css
+++ b/src/assets/dashboard-theme/structure.css
@@ -85,7 +85,7 @@
transition-property: left;
}
-.sidebar_main_swipe #page_content {
+.sidebar_main_swipe #page_content, openaire-user {
padding-left: var(--sidebar-width);
padding-top: var(--header-height);
transition: 0.5s;