diff --git a/dmp-backend/web/src/main/resources/config/cache.yml b/dmp-backend/web/src/main/resources/config/cache.yml
index 8fbdce800..bb670773b 100644
--- a/dmp-backend/web/src/main/resources/config/cache.yml
+++ b/dmp-backend/web/src/main/resources/config/cache.yml
@@ -5,67 +5,51 @@ cache:
- names: [ "userBySubjectId" ]
allowNullValues: true
initialCapacity: 100
- maximumSize: 500
+ maximumSize: 5000
enableRecordStats: false
- expireAfterWriteMinutes: 1
- expireAfterAccessMinutes: 1
- refreshAfterWriteMinutes: 1
+ expireAfterWriteSeconds: 20
- names: [ "supportiveMaterial" ]
allowNullValues: true
initialCapacity: 100
maximumSize: 500
enableRecordStats: false
- expireAfterWriteMinutes: 10
- expireAfterAccessMinutes: 10
- refreshAfterWriteMinutes: 10
+ expireAfterWriteSeconds: 600
- names: [ "Reference" ]
allowNullValues: true
initialCapacity: 100
maximumSize: 500
enableRecordStats: false
- expireAfterWriteMinutes: 10
- expireAfterAccessMinutes: 10
- refreshAfterWriteMinutes: 10
+ expireAfterWriteSeconds: 600
- names: [ "depositConfigById" ]
allowNullValues: true
initialCapacity: 100
maximumSize: 500
enableRecordStats: false
- expireAfterWriteMinutes: 10
- expireAfterAccessMinutes: 10
- refreshAfterWriteMinutes: 10
+ expireAfterWriteSeconds: 600
- names: [ "affiliation" ]
allowNullValues: true
initialCapacity: 100
- maximumSize: 500
+ maximumSize: 5000
enableRecordStats: false
- expireAfterWriteMinutes: 1
- expireAfterAccessMinutes: 1
- refreshAfterWriteMinutes: 1
+ expireAfterWriteSeconds: 20
- names: [ "dashboardStatisticsByUserId" ]
allowNullValues: true
initialCapacity: 100
maximumSize: 500
enableRecordStats: false
- expireAfterWriteMinutes: 1
- expireAfterAccessMinutes: 1
- refreshAfterWriteMinutes: 1
+ expireAfterWriteSeconds: 30
- names: [ "transformer" ]
allowNullValues: true
initialCapacity: 100
maximumSize: 500
enableRecordStats: false
- expireAfterWriteMinutes: 10
- expireAfterAccessMinutes: 10
- refreshAfterWriteMinutes: 10
+ expireAfterWriteSeconds: 600
- names: [ "tokenExchangeKey" ]
allowNullValues: true
initialCapacity: 100
maximumSize: 500
enableRecordStats: false
- expireAfterWriteMinutes: 10
- expireAfterAccessMinutes: 10
- refreshAfterWriteMinutes: 10
+ expireAfterWriteSeconds: 60
mapCaches:
userBySubjectId:
name: userBySubjectId
diff --git a/dmp-frontend/src/app/ui/dashboard/drafts/drafts.component.html b/dmp-frontend/src/app/ui/dashboard/drafts/drafts.component.html
index c80edb200..5c35bdd72 100644
--- a/dmp-frontend/src/app/ui/dashboard/drafts/drafts.component.html
+++ b/dmp-frontend/src/app/ui/dashboard/drafts/drafts.component.html
@@ -24,8 +24,8 @@
0 && listingItems.length < pageSize">
{{'GENERAL.ACTIONS.NO-MORE-AVAILABLE' | translate}}
diff --git a/dmp-frontend/src/app/ui/dashboard/drafts/drafts.component.ts b/dmp-frontend/src/app/ui/dashboard/drafts/drafts.component.ts
index c39e08b43..496612988 100644
--- a/dmp-frontend/src/app/ui/dashboard/drafts/drafts.component.ts
+++ b/dmp-frontend/src/app/ui/dashboard/drafts/drafts.component.ts
@@ -22,6 +22,8 @@ import { ReferenceType } from '@app/core/model/reference-type/reference-type';
import { DmpStatus } from '@app/core/common/enum/dmp-status';
import { DescriptionStatus } from '@app/core/common/enum/description-status';
import { IsActive } from '@app/core/common/enum/is-active.enum';
+import { AppPermission } from '@app/core/common/enum/permission.enum';
+import { DmpBlueprint, DmpBlueprintDefinition, DmpBlueprintDefinitionSection } from '@app/core/model/dmp-blueprint/dmp-blueprint';
@Component({
selector: 'app-drafts',
@@ -135,10 +137,22 @@ export class DraftsComponent extends BaseComponent implements OnInit {
[nameof(x => x.dmp), nameof(x => x.groupId)].join('.'),
[nameof(x => x.dmp), nameof(x => x.updatedAt)].join('.'),
[nameof(x => x.dmp), nameof(x => x.isActive)].join('.'),
+ [nameof(x => x.dmp), nameof(x => x.authorizationFlags), AppPermission.CreateNewVersionDmp].join('.'),
+ [nameof(x => x.dmp), nameof(x => x.authorizationFlags), AppPermission.DeleteDmp].join('.'),
+ [nameof(x => x.dmp), nameof(x => x.authorizationFlags), AppPermission.CloneDmp].join('.'),
+ [nameof(x => x.dmp), nameof(x => x.authorizationFlags), AppPermission.FinalizeDmp].join('.'),
+ [nameof(x => x.dmp), nameof(x => x.authorizationFlags), AppPermission.ExportDmp].join('.'),
+ [nameof(x => x.dmp), nameof(x => x.authorizationFlags), AppPermission.InviteDmpUsers].join('.'),
+ [nameof(x => x.dmp), nameof(x => x.authorizationFlags), AppPermission.AssignDmpUsers].join('.'),
+ [nameof(x => x.dmp), nameof(x => x.authorizationFlags), AppPermission.EditDmp].join('.'),
[nameof(x => x.dmp), nameof(x => x.descriptions), nameof(x => x.id)].join('.'),
[nameof(x => x.dmp), nameof(x => x.descriptions), nameof(x => x.label)].join('.'),
[nameof(x => x.dmp), nameof(x => x.descriptions), nameof(x => x.status)].join('.'),
[nameof(x => x.dmp), nameof(x => x.descriptions), nameof(x => x.isActive)].join('.'),
+ [nameof(x => x.dmp), nameof(x => x.blueprint), nameof(x => x.id)].join('.'),
+ [nameof(x => x.dmp), nameof(x => x.blueprint), nameof(x => x.label)].join('.'),
+ [nameof(x => x.dmp), nameof(x => x.blueprint), nameof(x => x.definition), nameof(x => x.sections), nameof(x => x.id)].join('.'),
+ [nameof(x => x.dmp), nameof(x => x.blueprint), nameof(x => x.definition), nameof(x => x.sections), nameof(x => x.label)].join('.'),
[nameof(x => x.dmp), nameof(x => x.dmpUsers), nameof(x => x.id)].join('.'),
[nameof(x => x.dmp), nameof(x => x.dmpUsers), nameof(x => x.user.id)].join('.'),
[nameof(x => x.dmp), nameof(x => x.dmpUsers), nameof(x => x.role)].join('.'),
@@ -154,12 +168,19 @@ export class DraftsComponent extends BaseComponent implements OnInit {
[nameof(x => x.description), nameof(x => x.status)].join('.'),
[nameof(x => x.description), nameof(x => x.updatedAt)].join('.'),
[nameof(x => x.description), nameof(x => x.isActive)].join('.'),
+ [nameof(x => x.description), nameof(x => x.authorizationFlags), AppPermission.EditDescription].join('.'),
+ [nameof(x => x.description), nameof(x => x.authorizationFlags), AppPermission.DeleteDescription].join('.'),
+ [nameof(x => x.description), nameof(x => x.authorizationFlags), AppPermission.InviteDmpUsers].join('.'),
[nameof(x => x.description), nameof(x => x.descriptionTemplate), nameof(x => x.id)].join('.'),
[nameof(x => x.description), nameof(x => x.descriptionTemplate), nameof(x => x.label)].join('.'),
[nameof(x => x.description), nameof(x => x.descriptionTemplate), nameof(x => x.groupId)].join('.'),
[nameof(x => x.description), nameof(x => x.dmp), nameof(x => x.id)].join('.'),
[nameof(x => x.description), nameof(x => x.dmp), nameof(x => x.label)].join('.'),
[nameof(x => x.description), nameof(x => x.dmp), nameof(x => x.accessType)].join('.'),
+ [nameof(x => x.description), nameof(x => x.dmp), nameof(x => x.blueprint), nameof(x => x.id)].join('.'),
+ [nameof(x => x.description), nameof(x => x.dmp), nameof(x => x.blueprint), nameof(x => x.label)].join('.'),
+ [nameof(x => x.description), nameof(x => x.dmp), nameof(x => x.blueprint), nameof(x => x.definition), nameof(x => x.sections), nameof(x => x.id)].join('.'),
+ [nameof(x => x.description), nameof(x => x.dmp), nameof(x => x.blueprint), nameof(x => x.definition), nameof(x => x.sections), nameof(x => x.label)].join('.'),
[nameof(x => x.description), nameof(x => x.dmp), nameof(x => x.dmpUsers), nameof(x => x.id)].join('.'),
[nameof(x => x.description), nameof(x => x.dmp), nameof(x => x.dmpUsers), nameof(x => x.user.id)].join('.'),
[nameof(x => x.description), nameof(x => x.dmp), nameof(x => x.dmpUsers), nameof(x => x.role)].join('.'),
diff --git a/dmp-frontend/src/app/ui/dashboard/recent-edited-activity/recent-edited-activity.component.html b/dmp-frontend/src/app/ui/dashboard/recent-edited-activity/recent-edited-activity.component.html
index a2d00d6f9..66343068a 100644
--- a/dmp-frontend/src/app/ui/dashboard/recent-edited-activity/recent-edited-activity.component.html
+++ b/dmp-frontend/src/app/ui/dashboard/recent-edited-activity/recent-edited-activity.component.html
@@ -26,8 +26,8 @@
0 && listingItems.length < pageSize">
{{'GENERAL.ACTIONS.NO-MORE-AVAILABLE' | translate}}
diff --git a/dmp-frontend/src/app/ui/dashboard/recent-edited-activity/recent-edited-activity.component.ts b/dmp-frontend/src/app/ui/dashboard/recent-edited-activity/recent-edited-activity.component.ts
index 3fe14e807..240bed9d1 100644
--- a/dmp-frontend/src/app/ui/dashboard/recent-edited-activity/recent-edited-activity.component.ts
+++ b/dmp-frontend/src/app/ui/dashboard/recent-edited-activity/recent-edited-activity.component.ts
@@ -5,10 +5,12 @@ import { ActivatedRoute, Router } from '@angular/router';
import { DescriptionStatus } from '@app/core/common/enum/description-status';
import { DmpStatus } from '@app/core/common/enum/dmp-status';
import { IsActive } from '@app/core/common/enum/is-active.enum';
+import { AppPermission } from '@app/core/common/enum/permission.enum';
import { RecentActivityOrder } from '@app/core/common/enum/recent-activity-order';
import { RecentActivityItem } from '@app/core/model/dashboard/recent-activity-item';
import { DescriptionTemplate } from '@app/core/model/description-template/description-template';
import { Description } from '@app/core/model/description/description';
+import { DmpBlueprint, DmpBlueprintDefinition, DmpBlueprintDefinitionSection } from '@app/core/model/dmp-blueprint/dmp-blueprint';
import { Dmp, DmpUser } from '@app/core/model/dmp/dmp';
import { DmpReference } from '@app/core/model/dmp/dmp-reference';
import { ReferenceType } from '@app/core/model/reference-type/reference-type';
@@ -134,10 +136,22 @@ export class RecentEditedActivityComponent extends BaseComponent implements OnIn
[nameof(x => x.dmp), nameof(x => x.groupId)].join('.'),
[nameof(x => x.dmp), nameof(x => x.updatedAt)].join('.'),
[nameof(x => x.dmp), nameof(x => x.isActive)].join('.'),
+ [nameof(x => x.dmp), nameof(x => x.authorizationFlags), AppPermission.CreateNewVersionDmp].join('.'),
+ [nameof(x => x.dmp), nameof(x => x.authorizationFlags), AppPermission.DeleteDmp].join('.'),
+ [nameof(x => x.dmp), nameof(x => x.authorizationFlags), AppPermission.CloneDmp].join('.'),
+ [nameof(x => x.dmp), nameof(x => x.authorizationFlags), AppPermission.FinalizeDmp].join('.'),
+ [nameof(x => x.dmp), nameof(x => x.authorizationFlags), AppPermission.ExportDmp].join('.'),
+ [nameof(x => x.dmp), nameof(x => x.authorizationFlags), AppPermission.InviteDmpUsers].join('.'),
+ [nameof(x => x.dmp), nameof(x => x.authorizationFlags), AppPermission.AssignDmpUsers].join('.'),
+ [nameof(x => x.dmp), nameof(x => x.authorizationFlags), AppPermission.EditDmp].join('.'),
[nameof(x => x.dmp), nameof(x => x.descriptions), nameof(x => x.id)].join('.'),
[nameof(x => x.dmp), nameof(x => x.descriptions), nameof(x => x.label)].join('.'),
[nameof(x => x.dmp), nameof(x => x.descriptions), nameof(x => x.status)].join('.'),
[nameof(x => x.dmp), nameof(x => x.descriptions), nameof(x => x.isActive)].join('.'),
+ [nameof(x => x.dmp), nameof(x => x.blueprint), nameof(x => x.id)].join('.'),
+ [nameof(x => x.dmp), nameof(x => x.blueprint), nameof(x => x.label)].join('.'),
+ [nameof(x => x.dmp), nameof(x => x.blueprint), nameof(x => x.definition), nameof(x => x.sections), nameof(x => x.id)].join('.'),
+ [nameof(x => x.dmp), nameof(x => x.blueprint), nameof(x => x.definition), nameof(x => x.sections), nameof(x => x.label)].join('.'),
[nameof(x => x.dmp), nameof(x => x.dmpUsers), nameof(x => x.id)].join('.'),
[nameof(x => x.dmp), nameof(x => x.dmpUsers), nameof(x => x.user.id)].join('.'),
[nameof(x => x.dmp), nameof(x => x.dmpUsers), nameof(x => x.role)].join('.'),
@@ -153,12 +167,19 @@ export class RecentEditedActivityComponent extends BaseComponent implements OnIn
[nameof(x => x.description), nameof(x => x.status)].join('.'),
[nameof(x => x.description), nameof(x => x.updatedAt)].join('.'),
[nameof(x => x.description), nameof(x => x.isActive)].join('.'),
+ [nameof(x => x.description), nameof(x => x.authorizationFlags), AppPermission.EditDescription].join('.'),
+ [nameof(x => x.description), nameof(x => x.authorizationFlags), AppPermission.DeleteDescription].join('.'),
+ [nameof(x => x.description), nameof(x => x.authorizationFlags), AppPermission.InviteDmpUsers].join('.'),
[nameof(x => x.description), nameof(x => x.descriptionTemplate), nameof(x => x.id)].join('.'),
[nameof(x => x.description), nameof(x => x.descriptionTemplate), nameof(x => x.label)].join('.'),
[nameof(x => x.description), nameof(x => x.descriptionTemplate), nameof(x => x.groupId)].join('.'),
[nameof(x => x.description), nameof(x => x.dmp), nameof(x => x.id)].join('.'),
[nameof(x => x.description), nameof(x => x.dmp), nameof(x => x.label)].join('.'),
[nameof(x => x.description), nameof(x => x.dmp), nameof(x => x.accessType)].join('.'),
+ [nameof(x => x.description), nameof(x => x.dmp), nameof(x => x.blueprint), nameof(x => x.id)].join('.'),
+ [nameof(x => x.description), nameof(x => x.dmp), nameof(x => x.blueprint), nameof(x => x.label)].join('.'),
+ [nameof(x => x.description), nameof(x => x.dmp), nameof(x => x.blueprint), nameof(x => x.definition), nameof(x => x.sections), nameof(x => x.id)].join('.'),
+ [nameof(x => x.description), nameof(x => x.dmp), nameof(x => x.blueprint), nameof(x => x.definition), nameof(x => x.sections), nameof(x => x.label)].join('.'),
[nameof(x => x.description), nameof(x => x.dmp), nameof(x => x.dmpUsers), nameof(x => x.id)].join('.'),
[nameof(x => x.description), nameof(x => x.dmp), nameof(x => x.dmpUsers), nameof(x => x.user.id)].join('.'),
[nameof(x => x.description), nameof(x => x.dmp), nameof(x => x.dmpUsers), nameof(x => x.role)].join('.'),
diff --git a/dmp-frontend/src/app/ui/dashboard/recent-edited-description-activity/recent-edited-description-activity.component.html b/dmp-frontend/src/app/ui/dashboard/recent-edited-description-activity/recent-edited-description-activity.component.html
index 27d97e860..62c190f78 100644
--- a/dmp-frontend/src/app/ui/dashboard/recent-edited-description-activity/recent-edited-description-activity.component.html
+++ b/dmp-frontend/src/app/ui/dashboard/recent-edited-description-activity/recent-edited-description-activity.component.html
@@ -24,7 +24,7 @@
0 && listingItems.length < pageSize">
{{'GENERAL.ACTIONS.NO-MORE-AVAILABLE' | translate}}
diff --git a/dmp-frontend/src/app/ui/dashboard/recent-edited-description-activity/recent-edited-description-activity.component.ts b/dmp-frontend/src/app/ui/dashboard/recent-edited-description-activity/recent-edited-description-activity.component.ts
index 2899bda5d..f1f569041 100644
--- a/dmp-frontend/src/app/ui/dashboard/recent-edited-description-activity/recent-edited-description-activity.component.ts
+++ b/dmp-frontend/src/app/ui/dashboard/recent-edited-description-activity/recent-edited-description-activity.component.ts
@@ -19,6 +19,8 @@ import { BaseComponent } from '@common/base/base.component';
import { debounceTime, takeUntil } from 'rxjs/operators';
import { nameof } from 'ts-simple-nameof';
import { DescriptionStatus } from '@app/core/common/enum/description-status';
+import { AppPermission } from '@app/core/common/enum/permission.enum';
+import { DmpBlueprint, DmpBlueprintDefinition, DmpBlueprintDefinitionSection } from '@app/core/model/dmp-blueprint/dmp-blueprint';
@Component({
selector: 'app-recent-edited-description-activity',
@@ -129,12 +131,19 @@ export class RecentEditedDescriptionActivityComponent extends BaseComponent impl
[nameof(x => x.description), nameof(x => x.label)].join('.'),
[nameof(x => x.description), nameof(x => x.status)].join('.'),
[nameof(x => x.description), nameof(x => x.updatedAt)].join('.'),
+ [nameof(x => x.description), nameof(x => x.authorizationFlags), AppPermission.EditDescription].join('.'),
+ [nameof(x => x.description), nameof(x => x.authorizationFlags), AppPermission.DeleteDescription].join('.'),
+ [nameof(x => x.description), nameof(x => x.authorizationFlags), AppPermission.InviteDmpUsers].join('.'),
[nameof(x => x.description), nameof(x => x.descriptionTemplate), nameof(x => x.id)].join('.'),
[nameof(x => x.description), nameof(x => x.descriptionTemplate), nameof(x => x.label)].join('.'),
[nameof(x => x.description), nameof(x => x.descriptionTemplate), nameof(x => x.groupId)].join('.'),
[nameof(x => x.description), nameof(x => x.dmp), nameof(x => x.id)].join('.'),
[nameof(x => x.description), nameof(x => x.dmp), nameof(x => x.label)].join('.'),
[nameof(x => x.description), nameof(x => x.dmp), nameof(x => x.accessType)].join('.'),
+ [nameof(x => x.description), nameof(x => x.dmp), nameof(x => x.blueprint), nameof(x => x.id)].join('.'),
+ [nameof(x => x.description), nameof(x => x.dmp), nameof(x => x.blueprint), nameof(x => x.label)].join('.'),
+ [nameof(x => x.description), nameof(x => x.dmp), nameof(x => x.blueprint), nameof(x => x.definition), nameof(x => x.sections), nameof(x => x.id)].join('.'),
+ [nameof(x => x.description), nameof(x => x.dmp), nameof(x => x.blueprint), nameof(x => x.definition), nameof(x => x.sections), nameof(x => x.label)].join('.'),
[nameof(x => x.description), nameof(x => x.dmp), nameof(x => x.dmpUsers), nameof(x => x.id)].join('.'),
[nameof(x => x.description), nameof(x => x.dmp), nameof(x => x.dmpUsers), nameof(x => x.user.id)].join('.'),
[nameof(x => x.description), nameof(x => x.dmp), nameof(x => x.dmpUsers), nameof(x => x.role)].join('.'),
diff --git a/dmp-frontend/src/app/ui/dashboard/recent-edited-dmp-activity/recent-edited-dmp-activity.component.html b/dmp-frontend/src/app/ui/dashboard/recent-edited-dmp-activity/recent-edited-dmp-activity.component.html
index 1690310d3..169d2f49d 100644
--- a/dmp-frontend/src/app/ui/dashboard/recent-edited-dmp-activity/recent-edited-dmp-activity.component.html
+++ b/dmp-frontend/src/app/ui/dashboard/recent-edited-dmp-activity/recent-edited-dmp-activity.component.html
@@ -24,7 +24,7 @@