Javascript 仅当从服务器完成调用或用户是管理员时才允许方法

Javascript 仅当从服务器完成调用或用户是管理员时才允许方法,javascript,feathersjs,Javascript,Feathersjs,我正在使用feathersjs,我需要保护我的服务的补丁方法。我正在使用feathers hooks common作为挂钩。我只需要在服务器调用或管理员调用时才允许使用补丁方法 const {disallow, isNot, iff, isProvider} = require('feathers-hooks-common'); const isAdmin = context => { return context.params.user.isAdmin;} module.exports

我正在使用feathersjs,我需要保护我的服务的补丁方法。我正在使用
feathers hooks common
作为挂钩。我只需要在服务器调用或管理员调用时才允许使用补丁方法

const {disallow, isNot, iff, isProvider} = require('feathers-hooks-common'); 
const isAdmin = context => { return context.params.user.isAdmin;}
module.exports = {
    patch: [
        iff(isProvider('external') && isNot(isAdmin), disallow()), 
        iff(isNot(isProvider('server')), disallow())
    ],
}

第二条规则,
iff(isNot(isProvider('server')),disallow())
,工作正常,但我无法获得允许服务器调用的第一条规则

钩子不能与条件语句组合,但由于您已经在使用
iff
,因此可以将其设置为嵌套语句:

const {disallow, isNot, iff, isProvider} = require('feathers-hooks-common'); 
const isAdmin = context => { return context.params.user.isAdmin;}
module.exports = {
    patch: [
        iff(isProvider('external'),
          iff(isNot(isAdmin), disallow())
        )
    ],
}

钩子不能与条件组合,但由于您已经在使用
iff
,因此可以将其设置为嵌套语句:

const {disallow, isNot, iff, isProvider} = require('feathers-hooks-common'); 
const isAdmin = context => { return context.params.user.isAdmin;}
module.exports = {
    patch: [
        iff(isProvider('external'),
          iff(isNot(isAdmin), disallow())
        )
    ],
}

应该是外部的还是不是管理的?而不是外部的,并且不允许管理应该是外部的还是| |不是管理的?而不是外部的,并且是管理员不允许的