Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var async = require('watt');
- var app = require('../../server/server');
- var fs = require('fs');
- var Enumerable = require('linq');
- var appRoot = require('app-root-path');
- var path = require('path');
- var runSync = async(function* (next) {
- var curEnv = {
- name: 'test env' + new Date().getTime(),
- config: {
- themeBackgroundColor: '#f36b22',
- panelHeaderTextColor: '#FFFFFF',
- navBarTextColor: '#FFFFFF',
- meetingOrderType: 'ASCENDING_DATE',
- publishMeetingWithNotif: true,
- deleteMeetingWithNotif: true,
- showMeetingOverForMonths: 24,
- sendAnnotatedDoc: true,
- allowVotingDoc: true,
- allowVotingWithSignature: true,
- defaultMeetingRoleId: 7,
- licenseOption: 'standard'
- }
- };
- var environmentRole = [
- { name: 'Administrator' },
- { name: 'Meeting Organiser' },
- { name: 'User' },
- { name: 'Super Admin' }
- ];
- function folderExists(filePath) {
- try {
- return fs.statSync(filePath).isDirectory();
- } catch (err) {
- return false;
- }
- }
- var createdEnv = yield app.models.Environment.findOrCreate(
- {
- where: { name: curEnv.name },
- include: ["config"]
- },
- { name: curEnv.name },
- next
- );
- //create a folder for each environment files
- var envFolderPath = appRoot.path + '/server/storage/' + createdEnv.id;
- if (!folderExists(envFolderPath))
- fs.mkdirSync(envFolderPath);
- var localIcon = {
- name: 'placeholder.png',
- type: 'image/png',
- url: '/api/containers/default/download/placeholder.png'
- };
- yield createdEnv.icon.create(localIcon, next);
- console.log('added icon to ', createdEnv.name);
- var localPic = {
- name: 'placeholder.png',
- type: 'image/png',
- url: '/api/containers/default/download/placeholder.png'
- };
- yield createdEnv.coverPicture.create(localPic, next);
- console.log('added cover to ', createdEnv.name);
- //add default email templates
- var templatesFolder = path.join(appRoot.path, 'server', 'email-templates');
- var mailContent = yield fs.readFile(path.join(templatesFolder, 'publish-meeting-template.html'), next);
- curEnv.config.publishMeetingTemplate = mailContent.toString();
- var mailContentForNotifyMeeting = yield fs.readFile(path.join(templatesFolder, 'notify-meeting-template.html'), next);
- curEnv.config.notifyMeetingTemplate = mailContentForNotifyMeeting.toString();
- var mailContentForDeleteMeeting = yield fs.readFile(path.join(templatesFolder, 'delete-meeting-template.html'), next);
- curEnv.config.deleteMeetingTemplate = mailContentForDeleteMeeting.toString();
- var mailContentForAnnotation = yield fs.readFile(path.join(templatesFolder, 'annotated-document.html'), next);
- curEnv.config.annotatedDocumentTemplate = mailContentForAnnotation.toString();
- var mailContentForMeetingOver = yield fs.readFile(path.join(templatesFolder, 'meeting-over-template.html'), next);
- curEnv.config.meetingOverTemplate = mailContentForMeetingOver.toString();
- var mailContentForNewUser = yield fs.readFile(path.join(templatesFolder, 'new-user-template.html'), next);
- curEnv.config.newUserTemplate = mailContentForNewUser.toString();
- var existingConfig = yield createdEnv.config.create(curEnv.config, next);
- console.log('added config to ', createdEnv.name);
- for (var aEnvRole of environmentRole) {
- aEnvRole.idEnvironment = createdEnv.id;
- var createdEnvRole = yield app.models.Role.findOrCreate({
- where: {
- name: aEnvRole.name
- }
- }, aEnvRole, next);
- console.log('created role ' + createdEnvRole.name);
- }
- // var SUser = yield app.models.EboardUser.findOrCreate(
- // { where: { email: "superadmin@agileum.com" } },
- // {
- // email: "superadmin@agileum.com",
- // password: '123',
- // firstName: 'Super',
- // lastName: 'Admin',
- // status: 'ACTIVE'
- // },
- // next
- // );
- var SUser = yield app.models.EboardUser.findOrCreate(
- { where: { email: "lionel.andriniaina@agileum.com" } },
- {
- email: "lionel.andriniaina@agileum.com",
- password: '123',
- firstName: 'Lionel',
- lastName: 'Andriniaina',
- status: 'ACTIVE'
- },
- next
- );
- console.log('SUser:', SUser);
- yield createdEnv.users.add(SUser, next);
- console.log('added super admin ');
- var suUser = yield app.models.EnvironmentUser.findOne({
- where: {
- and: [
- { environmentId: createdEnv.id },
- { eboardUserId: SUser.id }
- ]
- }
- }, next);
- console.log('suUser:', suUser);
- //super admin
- var superAdminRole = yield app.models.Role.findOne({
- where: {
- name: 'Super Admin'
- }
- }, next);
- console.log('superAdminRole:', superAdminRole);
- suUser.idRole = superAdminRole.id || 1;
- yield app.models.EnvironmentUser.upsert(suUser, next);
- console.log('gave super admin some powers');
- //now meeting roles
- var envRoles = yield app.models.MeetingRole.find({
- where: {
- idEnvironment: createdEnv.id
- }
- }, next);
- console.log('envRoles:', envRoles);
- if (envRoles.length === 0) {
- var defaultMeetingRoles = [{
- name: 'director',
- isPredefined: true,
- permission: {
- canDownload: true,
- canUpload: true,
- canVote: false
- }
- }, {
- name: 'chairman',
- isPredefined: true,
- permission: {
- canDownload: true,
- canUpload: true,
- canVote: false
- }
- }, {
- name: 'member',
- isPredefined: true,
- permission: {
- canDownload: true,
- canUpload: true,
- canVote: false
- }
- }];
- for (var mRole of defaultMeetingRoles) {
- var allMr = yield app.models.MeetingRole.find({
- where: {
- idEnvironment: createdEnv.id
- }
- }, next);
- console.log('allMr:', allMr);
- var existingMR = Enumerable.from(allMr).firstOrDefault(m => m.name.toLowerCase() === mRole.name.toLowerCase());
- if (!existingMR) {
- console.log('creating role: ', mRole.name);
- var createdMR = yield createdEnv.meetingRoles.create(mRole, next);
- var resp = yield createdMR.permission.create(mRole.permission, next);
- existingMR = createdMR;
- }
- existingConfig = yield createdEnv.config(next);
- yield existingConfig.patchAttributes({
- defaultMeetingRoleId: existingMR.id
- }, next);
- }
- console.log('added meeting roles to ', createdEnv.name);
- }
- });
- exports.createSampleEnvironment = function (shouldExit) {
- runSync(function (err) {
- if (err) {
- console.error('error while creating sample environment');
- console.error(err);
- }
- console.log('sample environment created');
- if (shouldExit)
- process.exit(1);
- });
- };
- this.createSampleEnvironment(true);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement