summaryrefslogtreecommitdiff
path: root/lib/models
diff options
context:
space:
mode:
authorChristoph (Sheogorath) Kern2018-06-17 23:33:57 +0200
committerGitHub2018-06-17 23:33:57 +0200
commit56d78a7d6c2b49bb194cba05d1a5ff5e4b54a983 (patch)
tree009a0c047d9b537548c0a4a741d60ade9b2ee6ea /lib/models
parentf36b10abb2368459e4ba546d826c16b3232f4ba0 (diff)
parentfce735e833f91a0f1d17c518b65c4c724d1a4b4d (diff)
Merge pull request #830 from SISheogorath/feature/GDPR
GDPR compliant part 1
Diffstat (limited to 'lib/models')
-rw-r--r--lib/models/author.js8
-rw-r--r--lib/models/note.js6
-rw-r--r--lib/models/revision.js4
-rw-r--r--lib/models/user.js7
4 files changed, 20 insertions, 5 deletions
diff --git a/lib/models/author.js b/lib/models/author.js
index 8b4f74e5..03f832a4 100644
--- a/lib/models/author.js
+++ b/lib/models/author.js
@@ -24,12 +24,16 @@ module.exports = function (sequelize, DataTypes) {
Author.belongsTo(models.Note, {
foreignKey: 'noteId',
as: 'note',
- constraints: false
+ constraints: false,
+ onDelete: 'CASCADE',
+ hooks: true
})
Author.belongsTo(models.User, {
foreignKey: 'userId',
as: 'user',
- constraints: false
+ constraints: false,
+ onDelete: 'CASCADE',
+ hooks: true
})
}
}
diff --git a/lib/models/note.js b/lib/models/note.js
index 2a048e37..7d8e9625 100644
--- a/lib/models/note.js
+++ b/lib/models/note.js
@@ -85,13 +85,15 @@ module.exports = function (sequelize, DataTypes) {
type: DataTypes.DATE
}
}, {
- paranoid: true,
+ paranoid: false,
classMethods: {
associate: function (models) {
Note.belongsTo(models.User, {
foreignKey: 'ownerId',
as: 'owner',
- constraints: false
+ constraints: false,
+ onDelete: 'CASCADE',
+ hooks: true
})
Note.belongsTo(models.User, {
foreignKey: 'lastchangeuserId',
diff --git a/lib/models/revision.js b/lib/models/revision.js
index 9ecd14dc..8bc95cb1 100644
--- a/lib/models/revision.js
+++ b/lib/models/revision.js
@@ -102,7 +102,9 @@ module.exports = function (sequelize, DataTypes) {
Revision.belongsTo(models.Note, {
foreignKey: 'noteId',
as: 'note',
- constraints: false
+ constraints: false,
+ onDelete: 'CASCADE',
+ hooks: true
})
},
getNoteRevisions: function (note, callback) {
diff --git a/lib/models/user.js b/lib/models/user.js
index 0f6acd65..5dd13869 100644
--- a/lib/models/user.js
+++ b/lib/models/user.js
@@ -31,6 +31,10 @@ module.exports = function (sequelize, DataTypes) {
refreshToken: {
type: DataTypes.TEXT
},
+ deleteToken: {
+ type: DataTypes.UUID,
+ defaultValue: Sequelize.UUIDV4
+ },
email: {
type: Sequelize.TEXT,
validate: {
@@ -66,6 +70,9 @@ module.exports = function (sequelize, DataTypes) {
})
},
getProfile: function (user) {
+ if (!user) {
+ return null
+ }
return user.profile ? User.parseProfile(user.profile) : (user.email ? User.parseProfileByEmail(user.email) : null)
},
parseProfile: function (profile) {