Przeglądaj źródła

wip validation, removed nesting

Steven Fukase 4 lat temu
rodzic
commit
1f677bbf50

+ 3 - 1
packages/app/src/server/models/user.js

@@ -343,7 +343,9 @@ module.exports = function(crowi) {
   };
 
   userSchema.methods.updateEditorCurrentSettings = async function(editorSettings) {
-    this.editorCurrentSettings = editorSettings;
+    if (editorSettings.isTextlint != null) {
+      this.editorCurrentSettings.isTextlintEnabled = editorSettings.isTextlintEnabled;
+    }
     const userData = await this.save();
     return userData;
   };

+ 5 - 3
packages/app/src/server/routes/apiv3/personal-setting.js

@@ -98,6 +98,9 @@ module.exports = (crowi) => {
       body('providerType').isString().not().isEmpty(),
       body('accountId').isString().not().isEmpty(),
     ],
+    editorSettings: [
+      body('isTextlintEnabled').isBoolean(),
+    ],
   };
 
   /**
@@ -479,10 +482,9 @@ module.exports = (crowi) => {
    *                      type: object
    *                      description: personal params
    */
-  router.put('/editor-settings', accessTokenParser, loginRequiredStrictly, async(req, res) => {
-    const { editorSettings } = req.body;
+  router.put('/editor-settings', accessTokenParser, loginRequiredStrictly, csrf, validator.editorSettings, apiV3FormValidator, async(req, res) => {
     try {
-      const userData = await req.user.updateEditorCurrentSettings(editorSettings);
+      const userData = await req.user.updateEditorCurrentSettings(req.body);
       return res.apiv3({ userData });
     }
     catch (err) {