|
|
@@ -582,7 +582,7 @@ module.exports = function(crowi) {
|
|
|
});
|
|
|
};
|
|
|
|
|
|
- pageSchema.statics.updatePage = function(page, updateData) {
|
|
|
+ pageSchema.statics.updatePageProperty = function(page, updateData) {
|
|
|
var Page = this;
|
|
|
return new Promise(function(resolve, reject) {
|
|
|
// TODO foreach して save
|
|
|
@@ -597,27 +597,24 @@ module.exports = function(crowi) {
|
|
|
};
|
|
|
|
|
|
pageSchema.statics.updateGrant = function(page, grant, userData) {
|
|
|
- var self = this;
|
|
|
+ var Page = this;
|
|
|
|
|
|
return new Promise(function(resolve, reject) {
|
|
|
- self.update({_id: page._id}, {$set: {grant: grant}}, function(err, data) {
|
|
|
+ page.grant = grant;
|
|
|
+ if (grant == GRANT_PUBLIC) {
|
|
|
+ page.grantedUsers = [];
|
|
|
+ } else {
|
|
|
+ page.grantedUsers = [];
|
|
|
+ page.grantedUsers.push(userData._id);
|
|
|
+ }
|
|
|
+
|
|
|
+ page.save(function(err, data) {
|
|
|
+ debug('Page.updateGrant, saved grantedUsers.', err, data);
|
|
|
if (err) {
|
|
|
return reject(err);
|
|
|
}
|
|
|
|
|
|
- if (grant == GRANT_PUBLIC) {
|
|
|
- page.grantedUsers = [];
|
|
|
- } else {
|
|
|
- page.grantedUsers = [];
|
|
|
- page.grantedUsers.push(userData._id);
|
|
|
- }
|
|
|
- page.save(function(err, data) {
|
|
|
- if (err) {
|
|
|
- return reject(err);
|
|
|
- }
|
|
|
-
|
|
|
- return resolve(data);
|
|
|
- });
|
|
|
+ return resolve(data);
|
|
|
});
|
|
|
});
|
|
|
};
|
|
|
@@ -718,7 +715,7 @@ module.exports = function(crowi) {
|
|
|
});
|
|
|
};
|
|
|
|
|
|
- pageSchema.statics.update = function(pageData, body, user, options) {
|
|
|
+ pageSchema.statics.updatePage = function(pageData, body, user, options) {
|
|
|
var Page = this
|
|
|
, Revision = crowi.model('Revision')
|
|
|
, grant = options.grant || null
|
|
|
@@ -731,15 +728,17 @@ module.exports = function(crowi) {
|
|
|
.then(function(revision) {
|
|
|
if (grant != pageData.grant) {
|
|
|
return Page.updateGrant(pageData, grant, user).then(function(data) {
|
|
|
+ debug('Page grant update:', data);
|
|
|
resolve(data);
|
|
|
pageEvent.emit('update', data, user);
|
|
|
});
|
|
|
} else {
|
|
|
resolve(pageData);
|
|
|
- pageEvent.emit('update', data, user);
|
|
|
+ pageEvent.emit('update', pageData, user);
|
|
|
}
|
|
|
}).catch(function(err) {
|
|
|
debug('Error on update', err);
|
|
|
+ debug('Error on update', err.stack);
|
|
|
});
|
|
|
});
|
|
|
};
|
|
|
@@ -753,7 +752,7 @@ module.exports = function(crowi) {
|
|
|
|
|
|
return new Promise(function(resolve, reject) {
|
|
|
// pageData の path を変更
|
|
|
- Page.updatePage(pageData, {updatedAt: Date.now(), path: newPagePath})
|
|
|
+ Page.updatePageProperty(pageData, {updatedAt: Date.now(), path: newPagePath})
|
|
|
.then(function(data) {
|
|
|
debug('Before ', pageData);
|
|
|
// reivisions の path を変更
|
|
|
@@ -762,6 +761,7 @@ module.exports = function(crowi) {
|
|
|
debug('After ', pageData);
|
|
|
pageData.path = newPagePath;
|
|
|
|
|
|
+ pageEvent.emit('update', data, user); // update as renamed page
|
|
|
if (createRedirectPage) {
|
|
|
var body = 'redirect ' + newPagePath;
|
|
|
return Page.create(path, body, user, {redirectTo: newPagePath}).then(resolve).catch(reject);
|