Skip to content

Commit

Permalink
fix(rules): all bot rules start with bot.
Browse files Browse the repository at this point in the history
  • Loading branch information
slvnperron committed Jun 9, 2018
1 parent 9455970 commit 98643a0
Show file tree
Hide file tree
Showing 5 changed files with 35 additions and 47 deletions.
54 changes: 21 additions & 33 deletions packages/core/botpress-util-roles/src/resources.js
Expand Up @@ -26,60 +26,48 @@ const _RESOURCES = [
operations: [r, w]
},
{
name: 'modules',
description: 'Bot extensions, such as NLU or HITL',
name: 'bot',
description: 'Bot properties, such as content, flows etc.',
children: [
{
name: '*',
description: 'All modules',
operations: [r]
description: 'All bot properties',
operations: [r, w]
},
{
name: 'list',
description: 'The list of the installed modules',
name: 'notifications',
description: 'Bot notifications, such as runtime errors',
operations: [r]
},
{
name: 'list.community',
description: 'The list of the publicly available modules',
name: 'modules.*',
description: 'Bot extensions, such as NLU or HITL',
operations: [r]
}
]
},
{
name: 'middleware',
description: 'Installed bot middlewares',
children: [
},
{
name: '*',
name: 'middleware.*',
description: 'All middleware operations',
operations: [r, w]
},
{
name: 'list',
name: 'middleware.list',
description: 'Get the list of the installed middlewares',
operations: [r]
},
{
name: 'customizations',
name: 'middleware.customizations',
description: 'Change the order of the middlewares and their enabled/disabled state',
operations: [w]
}
]
},
{
name: 'notifications',
description: 'Bot notifications, such as runtime errors',
operations: [r]
},
{
name: 'bot',
description: 'Bot properties, such as content, flows etc.',
children: [
},
{
name: '*',
description: 'All bot properties',
operations: [r, w]
name: 'modules.list',
description: 'The list of the installed modules',
operations: [r]
},
{
name: 'modules.list.community',
description: 'The list of the publicly available modules',
operations: [r]
},
{
name: 'information',
Expand Down
18 changes: 9 additions & 9 deletions packages/core/botpress/src/server/secured.js
Expand Up @@ -9,7 +9,7 @@ let logsSecret = nanoid()
module.exports = (bp, app) => {
// modules

app.secure('read', 'modules.list').get('/api/modules', (req, res) => {
app.secure('read', 'bot.modules.list').get('/api/modules', (req, res) => {
const modules = _.map(bp._loadedModules, module => {
return {
name: util.getModuleShortname(module.name),
Expand All @@ -26,33 +26,33 @@ module.exports = (bp, app) => {
res.send(modules)
})

app.secure('read', 'modules.list.community').get('/api/module/all', (req, res) => {
app.secure('read', 'bot.modules.list.community').get('/api/module/all', (req, res) => {
bp.modules.listAllCommunityModules().then(modules => res.send(modules))
})

app.secure('read', 'modules.list.community').get('/api/module/hero', (req, res) => {
app.secure('read', 'bot.modules.list.community').get('/api/module/hero', (req, res) => {
bp.modules.getRandomCommunityHero().then(hero => res.send(hero))
})

app.secure('read', 'modules.list.community').get('/api/bot/contributor', (req, res) => {
app.secure('read', 'bot.modules.list.community').get('/api/bot/contributor', (req, res) => {
res.send(bp.bot.getContributor())
})

// middleware

app.secure('read', 'middleware.list').get('/api/middlewares', (req, res) => {
app.secure('read', 'bot.middleware.list').get('/api/middlewares', (req, res) => {
res.send(bp.middlewares.list())
})

app.secure('write', 'middleware.customizations').post('/api/middlewares/customizations', (req, res) => {
app.secure('write', 'bot.middleware.customizations').post('/api/middlewares/customizations', (req, res) => {
bp.stats.track('api', 'middlewares', 'customizations')
const { middlewares } = req.body
bp.middlewares.setCustomizations(middlewares)
bp.middlewares.load()
res.send(bp.middlewares.list())
})

app.secure('write', 'middleware.customizations').delete('/api/middlewares/customizations', (req, res) => {
app.secure('write', 'bot.middleware.customizations').delete('/api/middlewares/customizations', (req, res) => {
bp.stats.track('api', 'middlewares', 'customizations')
bp.middlewares.resetCustomizations()
bp.middlewares.load()
Expand All @@ -62,11 +62,11 @@ module.exports = (bp, app) => {
// notifications

// DEPRECATED in Botpress 1.1
app.secure('read', 'notifications').get('/api/notifications', async (req, res) => {
app.secure('read', 'bot.notifications').get('/api/notifications', async (req, res) => {
res.send(await bp.notifications.getInbox())
})

app.secure('read', 'notifications').get('/api/notifications/inbox', async (req, res) => {
app.secure('read', 'bot.notifications').get('/api/notifications/inbox', async (req, res) => {
res.send(await bp.notifications.getInbox())
})

Expand Down
4 changes: 2 additions & 2 deletions packages/core/botpress/src/web/components/Layout/Sidebar.jsx
Expand Up @@ -23,7 +23,7 @@ const BASIC_MENU_ITEMS = [
{
name: 'Modules',
path: '/manage',
rule: { res: 'modules.list', op: 'read' },
rule: { res: 'bot.modules.list', op: 'read' },
icon: 'build'
},
window.GHOST_ENABLED && {
Expand All @@ -50,7 +50,7 @@ const BASIC_MENU_ITEMS = [
{
name: 'Middleware',
path: '/middleware',
rule: { res: 'middleware.list', op: 'read' },
rule: { res: 'bot.middleware.list', op: 'read' },
icon: 'settings'
}
].filter(Boolean)
Expand Down
Expand Up @@ -113,8 +113,8 @@ class Middlewares extends Component {
return
}
this.initialized = true
this.canRead = operationAllowed({ user: this.props.user, op: 'read', res: 'middleware.list' })
this.canEdit = operationAllowed({ user: this.props.user, op: 'write', res: 'middleware.customizations' })
this.canRead = operationAllowed({ user: this.props.user, op: 'read', res: 'bot.middleware.list' })
this.canEdit = operationAllowed({ user: this.props.user, op: 'write', res: 'bot.middleware.customizations' })

if (this.canRead) {
axios.get('/api/middlewares').then(({ data }) => this.setMiddlewares(data))
Expand Down
2 changes: 1 addition & 1 deletion packages/core/botpress/src/web/views/Dashboard/index.jsx
Expand Up @@ -32,7 +32,7 @@ class Dashboard extends React.Component {
}

queryAllModules() {
if (!operationAllowed({ user: this.props.user, op: 'read', res: 'modules.list.community' })) {
if (!operationAllowed({ user: this.props.user, op: 'read', res: 'bot.modules.list.community' })) {
return Promise.resolve()
}
return axios.get('/api/module/all').then(result =>
Expand Down

0 comments on commit 98643a0

Please sign in to comment.