This commit is contained in:
Diamantis Tziotzios 2024-06-25 11:27:53 +03:00
parent 9f9638531a
commit 6860da7af4
5 changed files with 73 additions and 17 deletions

View File

@ -40,10 +40,8 @@ import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.stereotype.Component;
import javax.management.InvalidApplicationException;
import java.util.AbstractMap;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
@Component
@ -145,12 +143,15 @@ public class AnnotationEntityCreatedIntegrationEventHandlerImpl implements Annot
if (sender == null) throw new MyApplicationException("Sender user not found");
for (DmpUserEntity dmpUser : existingUsers) {
if (!dmpUser.getUserId().equals(event.getSubjectId())){
UserEntity user = this.queryFactory.query(UserQuery.class).disableTracking().ids(dmpUser.getUserId()).first();
if (user == null || user.getIsActive().equals(IsActive.Inactive)) throw new MyValidationException(this.errors.getDmpInactiveUser().getCode(), this.errors.getDmpInactiveUser().getMessage());
this.createAnnotationNotificationEvent(user, descriptionEntity, sender.getName());
}
List<UUID> existingUSerIDs = existingUsers.stream()
.map(DmpUserEntity::getUserId)
.filter(dmpUserId -> !dmpUserId.equals(event.getSubjectId()))
.distinct().toList();
for (UUID dmpUserId : existingUSerIDs) {
UserEntity user = this.queryFactory.query(UserQuery.class).disableTracking().ids(dmpUserId).first();
if (user == null || user.getIsActive().equals(IsActive.Inactive))
throw new MyValidationException(this.errors.getDmpInactiveUser().getCode(), this.errors.getDmpInactiveUser().getMessage());
this.createAnnotationNotificationEvent(user, descriptionEntity, sender.getName());
}
}

View File

@ -193,9 +193,14 @@ const appRoutes: Routes = [
path: 'users',
loadChildren: () => import('./ui/admin/user/user.module').then(m => m.UsersModule),
data: {
authContext: {
permissions: [AppPermission.ViewUserPage]
},
breadcrumb: true,
title: 'GENERAL.TITLES.USERS'
},
},
{
path: 'tenant-users',
loadChildren: () => import('./ui/admin/user/user.module').then(m => m.TenantUsersModule),
data: {
breadcrumb: true,
title: 'GENERAL.TITLES.USERS'
},

View File

@ -204,6 +204,7 @@ export enum AppPermission {
ViewSupportiveMaterialPage = "ViewSupportiveMaterialPage",
ViewLanguagePage = "ViewLanguagePage",
ViewUserPage = "ViewUserPage",
ViewTenantUserPage = "ViewTenantUserPage",
ViewTenantPage = "ViewTenantPage",
ViewPrefillingSourcePage = "ViewPrefillingSourcePage",
ViewReferenceTypePage = "ViewReferenceTypePage",

View File

@ -1,5 +1,6 @@
import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core';
import { AutoCompleteModule } from '@app/library/auto-complete/auto-complete.module';
import { CommonFormattingModule } from '@common/formatting/common-formatting.module';
import { CommonFormsModule } from '@common/forms/common-forms.module';
import { HybridListingModule } from '@common/modules/hybrid-listing/hybrid-listing.module';
@ -7,11 +8,10 @@ import { TextFilterModule } from '@common/modules/text-filter/text-filter.module
import { UserSettingsModule } from '@common/modules/user-settings/user-settings.module';
import { CommonUiModule } from '@common/ui/common-ui.module';
import { UserListingFiltersComponent } from './listing/filters/user-listing-filters.component';
import { UserListingComponent } from './listing/user-listing.component';
import { UsersRoutingModule } from './user.routing';
import { UserRoleEditorComponent } from './listing/role-editor/user-role-editor.component';
import { AutoCompleteModule } from '@app/library/auto-complete/auto-complete.module';
import { UserInviteToTenantDialogModule } from './listing/user-invite-to-tenant-dialog/user-invite-to-tenant-dialog.module';
import { UserListingComponent } from './listing/user-listing.component';
import { TenantUsersRoutingModule, UsersRoutingModule } from './user.routing';
@NgModule({
declarations: [
@ -34,3 +34,25 @@ import { UserInviteToTenantDialogModule } from './listing/user-invite-to-tenant-
]
})
export class UsersModule { }
@NgModule({
declarations: [
UserListingComponent,
// UserEditorComponent,
UserRoleEditorComponent,
UserListingFiltersComponent
],
imports: [
CommonModule,
CommonUiModule,
CommonFormsModule,
CommonFormattingModule,
TenantUsersRoutingModule,
HybridListingModule,
AutoCompleteModule,
TextFilterModule,
UserSettingsModule,
UserInviteToTenantDialogModule
]
})
export class TenantUsersModule { }

View File

@ -2,12 +2,18 @@ import { NgModule } from "@angular/core";
import { RouterModule, Routes } from "@angular/router";
import { AuthGuard } from "@app/core/auth-guard.service";
import { UserListingComponent } from "./listing/user-listing.component";
import { AppPermission } from "@app/core/common/enum/permission.enum";
const routes: Routes = [
{
path: '',
component: UserListingComponent,
canActivate: [AuthGuard]
canActivate: [AuthGuard],
data: {
authContext: {
permissions: [AppPermission.ViewUserPage]
}
}
},
{ path: '**', loadChildren: () => import('@common/modules/page-not-found/page-not-found.module').then(m => m.PageNotFoundModule) },
]
@ -17,3 +23,24 @@ const routes: Routes = [
exports: [RouterModule],
})
export class UsersRoutingModule { }
const tenantUserRoutes: Routes = [
{
path: '',
component: UserListingComponent,
canActivate: [AuthGuard],
data: {
authContext: {
permissions: [AppPermission.ViewTenantUserPage]
},
tenantAdminMode: true
}
},
{ path: '**', loadChildren: () => import('@common/modules/page-not-found/page-not-found.module').then(m => m.PageNotFoundModule) },
]
@NgModule({
imports: [RouterModule.forChild(tenantUserRoutes)],
exports: [RouterModule],
})
export class TenantUsersRoutingModule { }