UNPKG

sails-permissions-sequelize

Version:

Sequelize version of : Comprehensive user permissions and entitlements system for sails.js and Waterline. Supports user authentication with passport.js, role-based permissioning, object ownership, and row-level security.

32 lines (30 loc) 1.19 kB
/** * Create admin user. * @param adminRole - the admin role which grants all permissions */ import _ from 'lodash' exports.create = function (roles, userModel) { if (_.isEmpty(sails.config.permissions.adminUsername)) { throw new Error('sails.config.permissions.adminUsername is not set'); } if (_.isEmpty(sails.config.permissions.adminPassword)) { throw new Error('sails.config.permissions.adminPassword is not set'); } if (_.isEmpty(sails.config.permissions.adminEmail)) { throw new Error('sails.config.permissions.adminEmail is not set'); } return sails.models.user.findOne({ username: sails.config.permissions.adminUsername }) .then(function (user) { if (user) return user; sails.log.info('sails-permissions: admin user does not exist; creating...'); return sails.models.user.register({ username: sails.config.permissions.adminUsername, password: sails.config.permissions.adminPassword, email: sails.config.permissions.adminEmail, roles: [ _.find(roles, { name: 'admin' }).id ], createdBy: 1, owner: 1, model: userModel.id }); }); };