diff options
-rw-r--r-- | models/orgUser.js | 80 | ||||
-rw-r--r-- | server/migrations.js | 3 |
2 files changed, 83 insertions, 0 deletions
diff --git a/models/orgUser.js b/models/orgUser.js new file mode 100644 index 00000000..42bd548c --- /dev/null +++ b/models/orgUser.js @@ -0,0 +1,80 @@ +OrgUser = new Mongo.Collection('org_user'); + +/** + * A Organization User in wekan + */ +OrgUser.attachSchema( + new SimpleSchema({ + id: { + /** + * the organization user's id + */ + type: Number, + optional: true, + // eslint-disable-next-line consistent-return + autoValue() { + if (this.isInsert && !this.isSet) { + return incrementCounter('counters', 'org_user_id', 1); + } + }, + }, + org_id: { + /** + * the organization id + */ + type: Number, + optional: true, + }, + user_id: { + /** + * the user id + */ + type: Number, + optional: true, + }, + role: { + /** + * the role of user + */ + type: String, + optional: true, + max: 20, + }, + createdAt: { + /** + * creation date of the organization user + */ + type: Date, + // eslint-disable-next-line consistent-return + autoValue() { + if (this.isInsert) { + return new Date(); + } else { + this.unset(); + } + }, + }, + modifiedAt: { + type: Date, + denyUpdate: false, + // eslint-disable-next-line consistent-return + autoValue() { + if (this.isInsert || this.isUpsert || this.isUpdate) { + return new Date(); + } else { + this.unset(); + } + }, + }, + }), +); + +if (Meteor.isServer) { + // Index for Organization User. + Meteor.startup(() => { + OrgUser._collection._ensureIndex({ org_id: -1 }); + OrgUser._collection._ensureIndex({ org_id: -1, user_id: -1 }); + }); +} + +export default OrgUser; diff --git a/server/migrations.js b/server/migrations.js index 8b902db2..6bb370d4 100644 --- a/server/migrations.js +++ b/server/migrations.js @@ -18,6 +18,7 @@ import Triggers from '../models/triggers'; import UnsavedEdits from '../models/unsavedEdits'; import Users from '../models/users'; import Org from '../models/org'; +import OrgUser from '../models/orgUser'; // Anytime you change the schema of one of the collection in a non-backward // compatible way you have to write a migration in this file using the following @@ -705,6 +706,7 @@ const firstBatchOfDbsToAddCreatedAndUpdated = [ Triggers, UnsavedEdits, Org, + OrgUser, ]; firstBatchOfDbsToAddCreatedAndUpdated.forEach(db => { @@ -740,6 +742,7 @@ const modifiedAtTables = [ UnsavedEdits, Users, Org, + OrgUser, ]; Migrations.add('add-missing-created-and-modified', () => { |