Jelajahi Sumber

VIEW permission

Alan Colon 7 tahun lalu
induk
melakukan
872c2fea59
4 mengubah file dengan 13 tambahan dan 5 penghapusan
  1. 3 3
      app/components/user-area.js
  2. 1 1
      app/crud/pages/details.js
  3. 7 1
      bin/project.js
  4. 2 0
      lib/crud/routes.js

+ 3 - 3
app/components/user-area.js

@@ -30,18 +30,18 @@ app.component('appUserArea', {
           </md-button>
         </md-menu-item>
 
-        <div ng-if="$ctrl.api.claims.USER_READ || $ctrl.api.claims.ROLE_READ">
+        <div ng-if="$ctrl.api.claims.USER_VIEW || $ctrl.api.claims.ROLE_VIEW">
           <h3>
             Administration
           </h3>
 
-          <md-menu-item ng-if="$ctrl.api.claims.USER_READ">
+          <md-menu-item ng-if="$ctrl.api.claims.USER_VIEW">
             <md-button ng-href="/users">
               <md-icon md-svg-icon="${userIcon}"></md-icon>
               Users
             </md-button>
           </md-menu-item>
-          <md-menu-item ng-if="$ctrl.api.claims.ROLE_READ">
+          <md-menu-item ng-if="$ctrl.api.claims.ROLE_VIEW">
             <md-button ng-href="/roles">
               <md-icon md-svg-icon="${roleIcon}"></md-icon>
               Roles

+ 1 - 1
app/crud/pages/details.js

@@ -34,7 +34,7 @@ const details = (opts) => {
     if (!column.apiPrefix) throw new Error('apiPrefix is required for multi-select fields')
 
     return html`
-      <md-input-container>
+      <md-input-container flex>
         <label>${column.titleName}</label>
         <md-select ng-model="model.${raw(column.camelName)}" multiple>
           <md-option ng-repeat="item in ::$ctrl.multiSelect.${raw(column.camelName)}.items" value="{{item.key}}">

+ 7 - 1
bin/project.js

@@ -36,7 +36,13 @@ const main = async () => {
   })
 
   vorpal.command('repl', 'Runs Node REPL')
-  .action(() => require('repl').start())
+  .action(() => {
+    const listeners = process.stdin.removeAllListeners('keypress')
+    const REPL = require('repl')
+    REPL.start({
+      prompt: `${chalk.green.bold('project')}> `
+    })
+  })
 
   vorpal.command('migration [namespace] [version]', 'Runs database migration scripts')
   .action(async (model) => {

+ 2 - 0
lib/crud/routes.js

@@ -5,12 +5,14 @@ const {verify, permissions} = require('../controllers/auth')
 module.exports = (opts) => {
   opts = defaults(opts)
   const { app, controller } = opts
+  const TYPE_VIEW = `${opts.constantName}_VIEW`
   const TYPE_CREATE = `${opts.constantName}_CREATE`
   const TYPE_READ = `${opts.constantName}_READ`
   const TYPE_UPDATE = `${opts.constantName}_UPDATE`
   const TYPE_DELETE = `${opts.constantName}_DELETE`
   const TYPE_UNDELETE = `${opts.constantName}_UNDELETE`
 
+  permissions.register(TYPE_VIEW, `Display ${opts.titleName} links in the nav bar.`)
   permissions.register(TYPE_CREATE, `Create ${opts.titlePlural}.`)
   permissions.register(TYPE_READ, `List and read ${opts.titlePlural}.`)
   permissions.register(TYPE_UPDATE, `Update ${opts.titlePlural}.`)