summaryrefslogtreecommitdiffstats
path: root/server/models
diff options
context:
space:
mode:
authorChristian Hofmaier2019-03-24 17:02:18 +0100
committerChristian Hofmaier2019-03-24 17:02:18 +0100
commit1ee0e6c1d7484930387438b7ebb15340595b5383 (patch)
treecff87a96c777b9fee0c3e066d1bd6d88763f1915 /server/models
parent[webapp] small design fixes (diff)
downloadbas-1ee0e6c1d7484930387438b7ebb15340595b5383.tar.gz
bas-1ee0e6c1d7484930387438b7ebb15340595b5383.tar.xz
bas-1ee0e6c1d7484930387438b7ebb15340595b5383.zip
[eventmanager] Add module and functionality
- list to show all events, buttons to create/delete events - can add groups/clients to event - can add blacklist to event
Diffstat (limited to 'server/models')
-rw-r--r--server/models/client.js2
-rw-r--r--server/models/event.js26
-rw-r--r--server/models/group.js3
3 files changed, 31 insertions, 0 deletions
diff --git a/server/models/client.js b/server/models/client.js
index 6483573..502f668 100644
--- a/server/models/client.js
+++ b/server/models/client.js
@@ -20,6 +20,8 @@ module.exports = (sequelize, DataTypes) => {
var GroupXClient = sequelize.define('group_x_client', {}, { timestamps: false, freezeTableName: true })
client.belongsToMany(models.group, { as: 'groups', through: GroupXClient, foreignKey: 'clientId', otherKey: 'groupId' })
client.belongsTo(models.config)
+ var ClientXEvent = sequelize.define('client_x_event', { blacklist: DataTypes.BOOLEAN }, { timestamps: false, freezeTableName: true })
+ client.belongsToMany(models.event, { as: 'events', through: ClientXEvent, foreignKey: 'clientId', otherKey: 'eventId' })
}
return client
}
diff --git a/server/models/event.js b/server/models/event.js
new file mode 100644
index 0000000..11a35e7
--- /dev/null
+++ b/server/models/event.js
@@ -0,0 +1,26 @@
+'use strict'
+module.exports = (sequelize, DataTypes) => {
+ var event = sequelize.define('event', {
+ id: {
+ allowNull: false,
+ autoIncrement: true,
+ primaryKey: true,
+ type: DataTypes.INTEGER
+ },
+ name: DataTypes.STRING,
+ description: DataTypes.STRING(2048),
+ config: DataTypes.INTEGER,
+ times: DataTypes.STRING(4096),
+ important: DataTypes.BOOLEAN
+ }, {
+ timestamps: false
+ })
+ event.associate = function (models) {
+ var ClientXEvent = sequelize.define('client_x_event', { blacklist: DataTypes.BOOLEAN }, { timestamps: false, freezeTableName: true })
+ event.belongsToMany(models.client, { as: 'clients', through: ClientXEvent, foreignKey: 'eventId', otherKey: 'clientId' })
+
+ var GroupXEvent = sequelize.define('group_x_event', { blacklist: DataTypes.BOOLEAN }, { timestamps: false, freezeTableName: true })
+ event.belongsToMany(models.group, { as: 'groups', through: GroupXEvent, foreignKey: 'eventId', otherKey: 'groupId' })
+ }
+ return event
+}
diff --git a/server/models/group.js b/server/models/group.js
index 30fc78d..6ff9034 100644
--- a/server/models/group.js
+++ b/server/models/group.js
@@ -15,11 +15,14 @@ module.exports = (sequelize, DataTypes) => {
group.associate = function (models) {
var GroupXGroup = sequelize.define('group_x_group', {}, { timestamps: false, freezeTableName: true })
var GroupXClient = sequelize.define('group_x_client', {}, { timestamps: false, freezeTableName: true })
+ var GroupXEvent = sequelize.define('group_x_event', { blacklist: DataTypes.BOOLEAN }, { timestamps: false, freezeTableName: true })
group.belongsToMany(group, { as: 'parents', through: GroupXGroup, foreignKey: 'childId', otherKey: 'parentId' })
group.belongsToMany(group, { as: 'subgroups', through: GroupXGroup, foreignKey: 'parentId', otherKey: 'childId' })
group.belongsToMany(models.client, { as: 'clients', through: GroupXClient, foreignKey: 'groupId', otherKey: 'clientId' })
+ group.belongsToMany(models.event, { as: 'events', through: GroupXEvent, foreignKey: 'groupId', otherKey: 'eventId' })
group.belongsTo(models.config)
group.hasMany(models.iprange, { as: 'ipranges' })
+
}
return group
}