diff --git a/client/src/app/+admin/admin-routing.module.ts b/client/src/app/+admin/admin-routing.module.ts index c3e4895ac..7262768fe 100644 --- a/client/src/app/+admin/admin-routing.module.ts +++ b/client/src/app/+admin/admin-routing.module.ts @@ -8,15 +8,14 @@ import { FriendsRoutes } from './friends' import { RequestSchedulersRoutes } from './request-schedulers' import { UsersRoutes } from './users' import { VideoAbusesRoutes } from './video-abuses' -import { AdminGuard } from './admin-guard.service' import { VideoBlacklistRoutes } from './video-blacklist' const adminRoutes: Routes = [ { path: '', component: AdminComponent, - canActivate: [ MetaGuard, AdminGuard ], - canActivateChild: [ MetaGuard, AdminGuard ], + canActivate: [ MetaGuard ], + canActivateChild: [ MetaGuard ], children: [ { path: '', diff --git a/client/src/app/+admin/admin.module.ts b/client/src/app/+admin/admin.module.ts index f29c501b0..6c216e5d8 100644 --- a/client/src/app/+admin/admin.module.ts +++ b/client/src/app/+admin/admin.module.ts @@ -8,7 +8,6 @@ import { UsersComponent, UserAddComponent, UserUpdateComponent, UserListComponen import { VideoAbusesComponent, VideoAbuseListComponent } from './video-abuses' import { VideoBlacklistComponent, VideoBlacklistListComponent } from './video-blacklist' import { SharedModule } from '../shared' -import { AdminGuard } from './admin-guard.service' @NgModule({ imports: [ @@ -45,8 +44,7 @@ import { AdminGuard } from './admin-guard.service' providers: [ FriendService, RequestSchedulersService, - UserService, - AdminGuard + UserService ] }) export class AdminModule { } diff --git a/client/src/app/+admin/friends/friends.routes.ts b/client/src/app/+admin/friends/friends.routes.ts index 615b6f4f7..61cfcae19 100644 --- a/client/src/app/+admin/friends/friends.routes.ts +++ b/client/src/app/+admin/friends/friends.routes.ts @@ -1,13 +1,19 @@ import { Routes } from '@angular/router' +import { UserRightGuard } from '../../core' import { FriendsComponent } from './friends.component' import { FriendAddComponent } from './friend-add' import { FriendListComponent } from './friend-list' +import { UserRight } from '../../../../../shared' export const FriendsRoutes: Routes = [ { path: 'friends', component: FriendsComponent, + canActivate: [ UserRightGuard ], + data: { + userRight: UserRight.MANAGE_PODS + }, children: [ { path: '', diff --git a/client/src/app/+admin/request-schedulers/request-schedulers.routes.ts b/client/src/app/+admin/request-schedulers/request-schedulers.routes.ts index 4961c646b..c2564de15 100644 --- a/client/src/app/+admin/request-schedulers/request-schedulers.routes.ts +++ b/client/src/app/+admin/request-schedulers/request-schedulers.routes.ts @@ -1,5 +1,7 @@ import { Routes } from '@angular/router' +import { UserRightGuard } from '../../core' +import { UserRight } from '../../../../../shared' import { RequestSchedulersComponent } from './request-schedulers.component' import { RequestSchedulersStatsComponent } from './request-schedulers-stats' @@ -7,6 +9,10 @@ export const RequestSchedulersRoutes: Routes = [ { path: 'requests', component: RequestSchedulersComponent, + canActivate: [ UserRightGuard ], + data: { + userRight: UserRight.MANAGE_REQUEST_SCHEDULERS + }, children: [ { path: '', diff --git a/client/src/app/+admin/users/user-edit/user-add.component.ts b/client/src/app/+admin/users/user-edit/user-add.component.ts index 6d8151b42..8e3e3d53d 100644 --- a/client/src/app/+admin/users/user-edit/user-add.component.ts +++ b/client/src/app/+admin/users/user-edit/user-add.component.ts @@ -9,10 +9,11 @@ import { USER_USERNAME, USER_EMAIL, USER_PASSWORD, - USER_VIDEO_QUOTA + USER_VIDEO_QUOTA, + USER_ROLE } from '../../../shared' import { ServerService } from '../../../core' -import { UserCreate } from '../../../../../../shared' +import { UserCreate, UserRole } from '../../../../../../shared' import { UserEdit } from './user-edit' @Component({ @@ -28,12 +29,14 @@ export class UserAddComponent extends UserEdit implements OnInit { 'username': '', 'email': '', 'password': '', + 'role': '', 'videoQuota': '' } validationMessages = { 'username': USER_USERNAME.MESSAGES, 'email': USER_EMAIL.MESSAGES, 'password': USER_PASSWORD.MESSAGES, + 'role': USER_ROLE.MESSAGES, 'videoQuota': USER_VIDEO_QUOTA.MESSAGES } @@ -52,6 +55,7 @@ export class UserAddComponent extends UserEdit implements OnInit { username: [ '', USER_USERNAME.VALIDATORS ], email: [ '', USER_EMAIL.VALIDATORS ], password: [ '', USER_PASSWORD.VALIDATORS ], + role: [ UserRole.USER, USER_ROLE.VALIDATORS ], videoQuota: [ '-1', USER_VIDEO_QUOTA.VALIDATORS ] }) diff --git a/client/src/app/+admin/users/user-edit/user-edit.component.html b/client/src/app/+admin/users/user-edit/user-edit.component.html index 6988071ce..349be13c1 100644 --- a/client/src/app/+admin/users/user-edit/user-edit.component.html +++ b/client/src/app/+admin/users/user-edit/user-edit.component.html @@ -40,6 +40,19 @@ +
+ + + +
+ {{ formErrors.role }} +
+
+