@@ -324,13 +324,9 @@ API.v1.addRoute(
324
324
325
325
API . v1 . addRoute (
326
326
'users.delete' ,
327
- { authRequired : true } ,
327
+ { authRequired : true , permissionsRequired : [ 'delete-user' ] } ,
328
328
{
329
329
async post ( ) {
330
- if ( ! ( await hasPermissionAsync ( this . userId , 'delete-user' ) ) ) {
331
- return API . v1 . unauthorized ( ) ;
332
- }
333
-
334
330
const user = await getUserFromParams ( this . bodyParams ) ;
335
331
const { confirmRelinquish = false } = this . bodyParams ;
336
332
@@ -365,16 +361,15 @@ API.v1.addRoute(
365
361
366
362
API . v1 . addRoute (
367
363
'users.setActiveStatus' ,
368
- { authRequired : true , validateParams : isUserSetActiveStatusParamsPOST } ,
364
+ {
365
+ authRequired : true ,
366
+ validateParams : isUserSetActiveStatusParamsPOST ,
367
+ permissionsRequired : {
368
+ POST : { permissions : [ 'edit-other-user-active-status' , 'manage-moderation-actions' ] , operation : 'hasAny' } ,
369
+ } ,
370
+ } ,
369
371
{
370
372
async post ( ) {
371
- if (
372
- ! ( await hasPermissionAsync ( this . userId , 'edit-other-user-active-status' ) ) &&
373
- ! ( await hasPermissionAsync ( this . userId , 'manage-moderation-actions' ) )
374
- ) {
375
- return API . v1 . unauthorized ( ) ;
376
- }
377
-
378
373
const { userId, activeStatus, confirmRelinquish = false } = this . bodyParams ;
379
374
await Meteor . callAsync ( 'setUserActiveStatus' , userId , activeStatus , confirmRelinquish ) ;
380
375
@@ -391,13 +386,9 @@ API.v1.addRoute(
391
386
392
387
API . v1 . addRoute (
393
388
'users.deactivateIdle' ,
394
- { authRequired : true , validateParams : isUserDeactivateIdleParamsPOST } ,
389
+ { authRequired : true , validateParams : isUserDeactivateIdleParamsPOST , permissionsRequired : [ 'edit-other-user-active-status' ] } ,
395
390
{
396
391
async post ( ) {
397
- if ( ! ( await hasPermissionAsync ( this . userId , 'edit-other-user-active-status' ) ) ) {
398
- return API . v1 . unauthorized ( ) ;
399
- }
400
-
401
392
const { daysIdle, role = 'user' } = this . bodyParams ;
402
393
403
394
const lastLoggedIn = new Date ( ) ;
@@ -469,13 +460,10 @@ API.v1.addRoute(
469
460
{
470
461
authRequired : true ,
471
462
queryOperations : [ '$or' , '$and' ] ,
463
+ permissionsRequired : [ 'view-d-room' ] ,
472
464
} ,
473
465
{
474
466
async get ( ) {
475
- if ( ! ( await hasPermissionAsync ( this . userId , 'view-d-room' ) ) ) {
476
- return API . v1 . unauthorized ( ) ;
477
- }
478
-
479
467
if (
480
468
settings . get ( 'API_Apply_permission_view-outside-room_on_users-list' ) &&
481
469
! ( await hasPermissionAsync ( this . userId , 'view-outside-room' ) )
@@ -835,13 +823,9 @@ API.v1.addRoute(
835
823
836
824
API . v1 . addRoute (
837
825
'users.getPersonalAccessTokens' ,
838
- { authRequired : true } ,
826
+ { authRequired : true , permissionsRequired : [ 'create-personal-access-tokens' ] } ,
839
827
{
840
828
async get ( ) {
841
- if ( ! ( await hasPermissionAsync ( this . userId , 'create-personal-access-tokens' ) ) ) {
842
- throw new Meteor . Error ( 'not-authorized' , 'Not Authorized' ) ;
843
- }
844
-
845
829
const user = ( await Users . getLoginTokensByUserId ( this . userId ) . toArray ( ) ) [ 0 ] as unknown as IUser | undefined ;
846
830
847
831
const isPersonalAccessToken = ( loginToken : ILoginToken | IPersonalAccessToken ) : loginToken is IPersonalAccessToken =>
0 commit comments