| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186 |
- const { controllers: C } = require('@alancnet/material-framework/server')
- const { register } = C.auth.permissions
- const locations = [
- {
- name: 'Las Vegas',
- key: 'LAS'
- },
- {
- name: 'Los Angeles',
- key: 'LAX'
- },
- {
- name: 'Phoenix',
- key: 'PHX'
- },
- {
- name: 'San Francisco',
- key: 'SFO'
- }
- ]
- const categories = [
- {
- name: 'Warehouse',
- key: 'WAREHOUSE'
- },
- {
- name: 'Admin',
- key: 'ADMIN'
- },
- {
- name: 'Delivery',
- key: 'DELIVERY'
- },
- {
- name: 'Ops',
- key: 'OPS'
- }
- ]
- const roles = [
- {
- name: 'Management',
- key: 'MANAGER',
- permissions: [
- 'LABOR_CATEGORY_CREATE',
- 'LABOR_CATEGORY_DELETE',
- 'LABOR_CATEGORY_READ',
- 'LABOR_CATEGORY_UNDELETE',
- 'LABOR_CATEGORY_UPDATE',
- 'LABOR_ENTRY',
- 'LABOR_VIEW',
- 'LOCATION_ALL_ACCESS',
- 'LOCATION_CREATE',
- 'LOCATION_DELETE',
- 'LOCATION_READ',
- 'LOCATION_UNDELETE',
- 'LOCATION_UPDATE',
- 'METRICS_VIEW',
- 'RETAILER_CREATE',
- 'RETAILER_DELETE',
- 'RETAILER_READ',
- 'RETAILER_UNDELETE',
- 'RETAILER_UPDATE',
- 'ROLE_CREATE',
- 'ROLE_DELETE',
- 'ROLE_READ',
- 'ROLE_UNDELETE',
- 'ROLE_UPDATE',
- 'SERVICES_ENTRY',
- 'SERVICES_VIEW',
- 'STAFFING_AGENCY_CREATE',
- 'STAFFING_AGENCY_DELETE',
- 'STAFFING_AGENCY_READ',
- 'STAFFING_AGENCY_UNDELETE',
- 'STAFFING_AGENCY_UPDATE',
- 'STAFF_MEMBER_CREATE',
- 'STAFF_MEMBER_DELETE',
- 'STAFF_MEMBER_READ',
- 'STAFF_MEMBER_UNDELETE',
- 'STAFF_MEMBER_UPDATE',
- 'USER_CREATE',
- 'USER_DELETE',
- 'USER_READ',
- 'USER_UNDELETE',
- 'USER_UPDATE',
- 'VIEW_INCOME_ADMIN',
- 'VIEW_INCOME_DELIVERY',
- 'VIEW_INCOME_OPS',
- 'VIEW_INCOME_WAREHOUSE',
- 'VIEW_LOCATION_LAS',
- 'VIEW_LOCATION_LAX',
- 'VIEW_LOCATION_PHX',
- 'VIEW_LOCATION_SFO'
- ].join(',')
- },
- {
- name: 'Terminal Manager',
- key: 'TERMINAL_MANAGER',
- permissions: [
- 'LABOR_CATEGORY_READ',
- 'LOCATION_READ',
- 'METRICS_VIEW',
- 'RETAILER_CREATE',
- 'RETAILER_DELETE',
- 'RETAILER_READ',
- 'RETAILER_UNDELETE',
- 'RETAILER_UPDATE',
- 'STAFFING_AGENCY_READ',
- 'STAFF_MEMBER_CREATE',
- 'STAFF_MEMBER_DELETE',
- 'STAFF_MEMBER_READ',
- 'STAFF_MEMBER_UNDELETE',
- 'STAFF_MEMBER_UPDATE'
- ]
- .concat(categories.map(x => x.key).filter(key => key !== 'ADMIN').map(key => `INCOME_${key}_VIEW`))
- .join(',')
- },
- {
- name: 'Accounting',
- key: 'ACCOUNTING',
- permissions: [
- 'LABOR_CATEGORY_READ',
- 'LOCATION_READ',
- 'RETAILER_READ',
- 'STAFFING_AGENCY_CREATE',
- 'STAFFING_AGENCY_DELETE',
- 'STAFFING_AGENCY_READ',
- 'STAFFING_AGENCY_UNDELETE',
- 'STAFFING_AGENCY_UPDATE',
- 'STAFF_MEMBER_CREATE',
- 'STAFF_MEMBER_DELETE',
- 'STAFF_MEMBER_READ',
- 'STAFF_MEMBER_UNDELETE',
- 'STAFF_MEMBER_UPDATE'
- ]
- .concat(categories.map(x => x.key).filter(key => key !== 'ADMIN').map(key => `INCOME_${key}_VIEW`))
- .join(',')
- },
- {
- name: 'Standard User',
- key: 'USER',
- }
- ].concat(locations.map(loc => ({
- name: `${loc.name}`,
- key: `${loc.key}`,
- permissions: `LOCATION_${loc.key}_ACCESS`
- })))
- const initializeLocations = async db => {
- for (let location of locations) {
- const record = await db.upsert(db.Location, location)
- register(`LOCATION_${location.key}_ACCESS`, `Access ${location.name}.`)
- console.log(`Upserted Location ${location.name}: ${JSON.stringify(record)}`)
- }
- }
- const initializeRoles = async db => {
- for (let role of roles) {
- const record = await db.upsert(db.Role, role)
- console.log(`Upserted Role ${role.name}: ${JSON.stringify(record)}`)
- }
- }
- const initializeLaborCategories = async db => {
- for (let category of categories) {
- const record = await db.upsert(db.LaborCategory, category)
- register(`INCOME_${category.key}_VIEW`, `View ${category.name} Staff income.`)
- console.log(`Upserted Labor Category ${category.name}: ${JSON.stringify(record)}`)
- }
- }
- const init = async (db) => {
- await initializeLocations(db)
- await initializeRoles(db)
- await initializeLaborCategories(db)
- }
- module.exports = {
- initializeRoles,
- initializeLaborCategories,
- init
- }
|