|
@@ -1,4 +1,5 @@
|
|
|
const logger = require('@alias/logger')('growi:service:BoltService');
|
|
const logger = require('@alias/logger')('growi:service:BoltService');
|
|
|
|
|
+const mongoose = require('mongoose');
|
|
|
|
|
|
|
|
const PAGINGLIMIT = 10;
|
|
const PAGINGLIMIT = 10;
|
|
|
|
|
|
|
@@ -293,20 +294,6 @@ class BoltService {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
async createModal(command, client, body) {
|
|
async createModal(command, client, body) {
|
|
|
- const User = this.crowi.model('User');
|
|
|
|
|
- const slackUser = await User.findUserByUsername('slackUser');
|
|
|
|
|
-
|
|
|
|
|
- // if "slackUser" is null, don't show create Modal
|
|
|
|
|
- if (slackUser == null) {
|
|
|
|
|
- logger.error('Failed to create a page because slackUser is not found.');
|
|
|
|
|
- this.client.chat.postEphemeral({
|
|
|
|
|
- channel: command.channel_id,
|
|
|
|
|
- user: command.user_id,
|
|
|
|
|
- blocks: [this.generateMarkdownSectionBlock('*slackUser does not exist.*')],
|
|
|
|
|
- });
|
|
|
|
|
- throw new Error('/growi command:create: slackUser is not found');
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
try {
|
|
try {
|
|
|
await client.views.open({
|
|
await client.views.open({
|
|
|
trigger_id: body.trigger_id,
|
|
trigger_id: body.trigger_id,
|
|
@@ -349,23 +336,20 @@ class BoltService {
|
|
|
|
|
|
|
|
// Submit action in create Modal
|
|
// Submit action in create Modal
|
|
|
async createPageInGrowi(view, body) {
|
|
async createPageInGrowi(view, body) {
|
|
|
- const User = this.crowi.model('User');
|
|
|
|
|
const Page = this.crowi.model('Page');
|
|
const Page = this.crowi.model('Page');
|
|
|
const pathUtils = require('growi-commons').pathUtils;
|
|
const pathUtils = require('growi-commons').pathUtils;
|
|
|
|
|
|
|
|
const contentsBody = view.state.values.contents.contents_input.value;
|
|
const contentsBody = view.state.values.contents.contents_input.value;
|
|
|
|
|
|
|
|
try {
|
|
try {
|
|
|
- // search "slackUser" to create page in slack
|
|
|
|
|
- const slackUser = await User.findUserByUsername('slackUser');
|
|
|
|
|
-
|
|
|
|
|
let path = view.state.values.path.path_input.value;
|
|
let path = view.state.values.path.path_input.value;
|
|
|
// sanitize path
|
|
// sanitize path
|
|
|
path = this.crowi.xss.process(path);
|
|
path = this.crowi.xss.process(path);
|
|
|
path = pathUtils.normalizePath(path);
|
|
path = pathUtils.normalizePath(path);
|
|
|
|
|
|
|
|
- const user = slackUser._id;
|
|
|
|
|
- await Page.create(path, contentsBody, user, {});
|
|
|
|
|
|
|
+ // generate a dummy id because Operation to create a page needs ObjectId
|
|
|
|
|
+ const dummyObjectIdOfUser = new mongoose.Types.ObjectId();
|
|
|
|
|
+ await Page.create(path, contentsBody, dummyObjectIdOfUser, {});
|
|
|
}
|
|
}
|
|
|
catch (err) {
|
|
catch (err) {
|
|
|
this.client.chat.postMessage({
|
|
this.client.chat.postMessage({
|