var md5 = require('md5');
var _ = require('lodash');
var moment = require('moment');
-var VoiceQueue = require('.').VoiceQueue;
module.exports = function(sequelize, DataTypes) {
var User = sequelize.define('User', {
voicePause: {
type: DataTypes.BOOLEAN,
defaultValue: false,
- set: function(voicePause) {
- this.setDataValue('voicePause', voicePause);
- if (voicePause) {
- this.setDataValue('queueStatus', 'paused');
- this.setDataValue('queueStatusAt', moment().format("YYYY-MM-DD HH:mm:ss"));
- } else {
- this.setDataValue('queueStatus', 'complete');
- this.setDataValue('queueStatusAt', moment().format("YYYY-MM-DD HH:mm:ss"));
- }
- }
+ // set: function(voicePause) {
+ // this.setDataValue('voicePause', voicePause);
+ // if (voicePause) {
+ // this.setDataValue('queueStatus', 'paused');
+ // this.setDataValue('queueStatusAt', moment().format("YYYY-MM-DD HH:mm:ss"));
+ // } else {
+ // this.setDataValue('queueStatus', 'complete');
+ // this.setDataValue('queueStatusAt', moment().format("YYYY-MM-DD HH:mm:ss"));
+ // }
+ // }
},
chatPause: {
type: DataTypes.BOOLEAN,
type: DataTypes.STRING,
allowNull: true,
},
+ host: {
+ type: DataTypes.STRING,
+ allowNull: true,
+ defaultValue: 'dynamic'
+ },
ipaddr: { //REALTIME ASTERISK
type: DataTypes.STRING,
allowNull: true,
'PROHIB_FAILED_SCREEN', 'PROHIB'),
allowNull: true,
},
- permit: {
+ deny: {
type: DataTypes.STRING,
allowNull: true,
},
- deny: {
+ permit: {
type: DataTypes.STRING,
allowNull: true,
},
type: DataTypes.STRING,
allowNull: true
},
- allow: {
+ disallow: {
type: DataTypes.STRING,
allowNull: true,
- defaultValue: 'alaw;ulaw;gsm'
+ defaultValue: 'all'
},
- disallow: {
+ allow: {
type: DataTypes.STRING,
allowNull: true,
- defaultValue: null
+ defaultValue: 'alaw;ulaw;gsm'
},
autoframing: {
type: DataTypes.ENUM('yes', 'no'),
type: DataTypes.STRING,
allowNull: true,
},
- host: {
- type: DataTypes.STRING,
- allowNull: true,
- defaultValue: 'dynamic'
- },
qualify: {
type: DataTypes.ENUM('yes', 'no'),
allowNull: true,
call_limit: {
type: DataTypes.INTEGER(11),
allowNull: true,
- defaultValue: null
+ defaultValue: 10
},
registertrying: { //Send a 100 Trying when the device registers.
type: DataTypes.ENUM('yes', 'no'),
loginInPause: {
type: DataTypes.BOOLEAN,
defaultValue: false
+ },
+ resetPasswordToken: {
+ type: DataTypes.STRING
+ },
+ resetPasswordExpires: {
+ type: DataTypes.DATE
+ },
+ phoneBarEnableRecording: {
+ type: DataTypes.BOOLEAN,
+ defaultValue: true
+ },
+ showWebBar: {
+ type: DataTypes.BOOLEAN,
+ defaultValue: false
}
}, {
tableName: 'users',
'phoneBarExpires',
'phoneBarRemoteControl',
'phoneBarRemoteControlPort',
+ 'phoneBarEnableRecording',
'chanspy',
'voicePause',
'mailPause',
'port',
'lastms',
'description',
- 'loginInPause'
+ 'loginInPause',
+ 'showWebBar'
]
});
User.addScope('telephone', {
}
});
User.addScope('queues', {
- include: [models.VoiceQueue, models.ChatQueue, models.MailQueue,
- models.FaxQueue, models.SmsQueue, models.OpenchannelQueue
- ]
+ include: [{
+ model: models.VoiceQueue,
+ required: false
+ }, {
+ model: models.ChatQueue,
+ required: false
+ }, {
+ model: models.MailQueue,
+ required: false
+ }, {
+ model: models.FaxQueue,
+ required: false
+ }, {
+ model: models.SmsQueue,
+ required: false
+ }, {
+ model: models.OpenchannelQueue,
+ required: false
+ }]
});
User.addScope('checkPauseStatus', function(query) {
}
return scope;
});
+
+ User.addScope('me', function(userId) {
+ var scope = {
+ where: {
+ id: userId
+ },
+ attributes: ['id', 'fullname', 'name', 'email', 'role', 'userpic', 'lastLoginAt', 'voicePause',
+ 'mailPause',
+ 'chatPause',
+ 'faxPause',
+ 'smsPause',
+ 'openchannelPause',
+ 'lastPauseAt',
+ 'pauseType',
+ 'phoneBarRemoteControl',
+ 'phoneBarRemoteControlPort',
+ 'loginInPause',
+ 'showWebBar'
+ ],
+ include: [{
+ model: models.Module,
+ include: [{
+ model: models.Module,
+ as: 'SubModules',
+ required: false,
+ include: [{
+ all: true
+ }]
+ }]
+ }, {
+ model: models.VoiceQueue,
+ as: 'PVoiceQueues'
+ }, {
+ model: models.ChatQueue,
+ as: 'PChatQueues'
+ }, {
+ model: models.MailQueue,
+ as: 'PMailQueues'
+ }, {
+ model: models.FaxQueue,
+ as: 'PFaxQueues'
+ }, {
+ model: models.SmsQueue,
+ as: 'PSmsQueues'
+ }]
+ };
+ return scope;
+ });
}
});