diff --git a/client/src/app/site/agenda/components/agenda-list/agenda-list.component.html b/client/src/app/site/agenda/components/agenda-list/agenda-list.component.html index f3ee1263a..0a7cd0a25 100644 --- a/client/src/app/site/agenda/components/agenda-list/agenda-list.component.html +++ b/client/src/app/site/agenda/components/agenda-list/agenda-list.component.html @@ -1,4 +1,4 @@ - +

Agenda

@@ -80,7 +80,9 @@ Menu - @@ -121,7 +123,7 @@ Current list of speakers - @@ -201,17 +203,6 @@ Done - - - @@ -98,20 +104,20 @@ List of speakers - +
+ + - - - - - + +
diff --git a/client/src/app/site/motions/components/motion-block-detail/motion-block-detail.component.ts b/client/src/app/site/motions/components/motion-block-detail/motion-block-detail.component.ts index 3ad1d1d98..15b1fa27e 100644 --- a/client/src/app/site/motions/components/motion-block-detail/motion-block-detail.component.ts +++ b/client/src/app/site/motions/components/motion-block-detail/motion-block-detail.component.ts @@ -13,6 +13,7 @@ import { MotionRepositoryService } from 'app/core/repositories/motions/motion-re import { ViewMotionBlock } from '../../models/view-motion-block'; import { PromptService } from 'app/core/ui-services/prompt.service'; import { ViewMotion } from '../../models/view-motion'; +import { OperatorService } from '../../../../core/core-services/operator.service'; /** * Detail component to display one motion block @@ -50,6 +51,7 @@ export class MotionBlockDetailComponent extends ListViewBaseComponent +

Motion blocks

@@ -7,17 +7,11 @@ New motion block -
+

- + A name is required @@ -76,7 +70,12 @@ Menu - diff --git a/client/src/app/site/motions/components/motion-block-list/motion-block-list.component.ts b/client/src/app/site/motions/components/motion-block-list/motion-block-list.component.ts index 22f82e155..52749be61 100644 --- a/client/src/app/site/motions/components/motion-block-list/motion-block-list.component.ts +++ b/client/src/app/site/motions/components/motion-block-list/motion-block-list.component.ts @@ -7,14 +7,15 @@ import { MatSnackBar } from '@angular/material'; import { BehaviorSubject } from 'rxjs'; import { TranslateService } from '@ngx-translate/core'; +import { ItemRepositoryService } from 'app/core/repositories/agenda/item-repository.service'; +import { itemVisibilityChoices } from 'app/shared/models/agenda/item'; import { ListViewBaseComponent } from 'app/site/base/list-view-base'; import { MotionBlock } from 'app/shared/models/motions/motion-block'; -import { itemVisibilityChoices } from 'app/shared/models/agenda/item'; import { MotionBlockRepositoryService } from 'app/core/repositories/motions/motion-block-repository.service'; -import { ViewMotionBlock } from '../../models/view-motion-block'; -import { ItemRepositoryService } from 'app/core/repositories/agenda/item-repository.service'; +import { OperatorService } from 'app/core/core-services/operator.service'; import { PromptService } from 'app/core/ui-services/prompt.service'; import { ViewItem } from 'app/site/agenda/models/view-item'; +import { ViewMotionBlock } from '../../models/view-motion-block'; /** * Table for the motion blocks @@ -50,6 +51,15 @@ export class MotionBlockListComponent extends ListViewBaseComponentList of speakers - diff --git a/client/src/app/site/motions/components/motion-list/motion-list.component.html b/client/src/app/site/motions/components/motion-list/motion-list.component.html index bd319cad8..44be33c73 100644 --- a/client/src/app/site/motions/components/motion-list/motion-list.component.html +++ b/client/src/app/site/motions/components/motion-list/motion-list.component.html @@ -193,6 +193,12 @@ Import +

+ +
-
+
{{ projector.scroll }}
diff --git a/client/src/app/site/projector/components/projector-list/projector-list.component.ts b/client/src/app/site/projector/components/projector-list/projector-list.component.ts index ac6a47d1f..378014229 100644 --- a/client/src/app/site/projector/components/projector-list/projector-list.component.ts +++ b/client/src/app/site/projector/components/projector-list/projector-list.component.ts @@ -11,6 +11,7 @@ import { Projector } from 'app/shared/models/core/projector'; import { BaseViewComponent } from 'app/site/base/base-view'; import { PromptService } from 'app/core/ui-services/prompt.service'; import { ClockSlideService } from '../../services/clock-slide.service'; +import { OperatorService } from 'app/core/core-services/operator.service'; /** * All supported aspect rations for projectors. @@ -61,6 +62,15 @@ export class ProjectorListComponent extends BaseViewComponent implements OnInit */ public projectors: ViewProjector[]; + /** + * Helper to check manage permissions + * + * @returns true if the user can manage projectors + */ + public get canManage(): boolean { + return this.operator.hasPerms('core.can_manage_projector'); + } + /** * Constructor. Initializes all forms. * @@ -70,6 +80,8 @@ export class ProjectorListComponent extends BaseViewComponent implements OnInit * @param repo * @param formBuilder * @param promptService + * @param clockSlideService + * @param operator OperatorService */ public constructor( titleService: Title, @@ -78,7 +90,8 @@ export class ProjectorListComponent extends BaseViewComponent implements OnInit private repo: ProjectorRepositoryService, private formBuilder: FormBuilder, private promptService: PromptService, - private clockSlideService: ClockSlideService + private clockSlideService: ClockSlideService, + private operator: OperatorService ) { super(titleService, translate, matSnackBar); diff --git a/client/src/app/site/users/components/user-detail/user-detail.component.html b/client/src/app/site/users/components/user-detail/user-detail.component.html index 2ac4b79e0..611259ae4 100644 --- a/client/src/app/site/users/components/user-detail/user-detail.component.html +++ b/client/src/app/site/users/components/user-detail/user-detail.component.html @@ -15,25 +15,33 @@ - - - +
+ + +
@@ -61,7 +69,6 @@ [value]="user.title" /> - Please enter a valid email address @@ -126,10 +133,7 @@ - + - {{ group.getTitle() | translate }} + {{ + group.getTitle() | translate + }}
diff --git a/client/src/app/site/users/components/user-detail/user-detail.component.ts b/client/src/app/site/users/components/user-detail/user-detail.component.ts index ccf55b5e0..1359b0386 100644 --- a/client/src/app/site/users/components/user-detail/user-detail.component.ts +++ b/client/src/app/site/users/components/user-detail/user-detail.component.ts @@ -166,6 +166,7 @@ export class UserDetailComponent extends BaseViewComponent implements OnInit { * correct permission to perform the given action. * * actions might be: + * - delete (deleting the user) (users.can_manage and not ownPage) * - seeName (title, 1st, last) (user.can_see_name or ownPage) * - seeExtra (checkboxes, comment) (user.can_see_extra_data) * - seePersonal (mail, username, about) (user.can_see_extra_data or ownPage) @@ -176,6 +177,8 @@ export class UserDetailComponent extends BaseViewComponent implements OnInit { */ public isAllowed(action: string): boolean { switch (action) { + case 'delete': + return this.operator.hasPerms('users.can_manage') && !this.ownPage; case 'manage': return this.operator.hasPerms('users.can_manage'); case 'seeName': diff --git a/client/src/app/site/users/components/user-list/user-list.component.html b/client/src/app/site/users/components/user-list/user-list.component.html index fb27fa1d7..6701af038 100644 --- a/client/src/app/site/users/components/user-list/user-list.component.html +++ b/client/src/app/site/users/components/user-list/user-list.component.html @@ -1,4 +1,4 @@ - +

Participants

@@ -50,7 +50,7 @@ Group -
+
people {{ user.groups }} @@ -108,15 +108,14 @@ - - @@ -125,70 +124,72 @@ cloud_upload Import ... -
-
- - - -
- - -
- -
- -
- - - +
+ + - +
+ - + - - - - + + + + + + + + + + + +
diff --git a/client/src/app/site/users/components/user-list/user-list.component.ts b/client/src/app/site/users/components/user-list/user-list.component.ts index 522e006f1..b16ed3c5d 100644 --- a/client/src/app/site/users/components/user-list/user-list.component.ts +++ b/client/src/app/site/users/components/user-list/user-list.component.ts @@ -51,6 +51,15 @@ export class UserListComponent extends ListViewBaseComponent implement return this._presenceViewConfigured; } + /** + * Helper to check for main button permissions + * + * @returns true if the user should be able to create users + */ + public get canAddUser(): boolean { + return this.operator.hasPerms('users.can_manage'); + } + /** * The usual constructor for components * @param titleService Serivce for setting the title