浏览代码

Merge branch 'soohwa-admin-create-user' into devel

REST API: Create user despite disabling registration.
Thanks to soohwa ! Closes #1232
Lauri Ojansivu 7 年之前
父节点
当前提交
1dd66fdac2
共有 2 个文件被更改,包括 17 次插入2 次删除
  1. 3 2
      CHANGELOG.md
  2. 14 0
      models/users.js

+ 3 - 2
CHANGELOG.md

@@ -4,14 +4,15 @@ This release adds the following new features:
 
 * [Add translations (en/de/fi) for email notifications regarding checklists and checklist
    items](https://github.com/wekan/wekan/pull/1238);
-* [Added plus button to add card on top of the list](https://github.com/wekan/wekan/pull/1244).
+* [Added plus button to add card on top of the list](https://github.com/wekan/wekan/pull/1244);
+* [REST API: Create user despite disabling registration](https://github.com/wekan/wekan/issues/1232).
 
 and fixes the following bugs:
 
 * [Checklist items are lost when moving items to another checklist](https://github.com/wekan/wekan/pull/1240);
 * [Keep state of checklist items when moved to another checklist](https://github.com/wekan/wekan/pull/1242).
 
-Thanks to GitHub users GhassenRjab, mario-orlicky, umbertooo and xet7 for their contributions.
+Thanks to GitHub users GhassenRjab, mario-orlicky, soohwa, umbertooo and xet7 for their contributions.
 
 # v0.39 2017-09-18 Wekan release
 

+ 14 - 0
models/users.js

@@ -108,6 +108,10 @@ Users.attachSchema(new SimpleSchema({
     type: Boolean,
     optional: true,
   },
+  fromAdmin: {
+    type: Boolean,
+    optional: false,
+  },
 }));
 
 // Search a user in the complete server database by its name or username. This
@@ -435,6 +439,12 @@ if (Meteor.isServer) {
       user.isAdmin = true;
       return user;
     }
+
+    if (options.from === 'admin') {
+      user.fromAdmin = true;
+      return user;
+    }
+
     const disableRegistration = Settings.findOne().disableRegistration;
     if (!disableRegistration) {
       return user;
@@ -524,6 +534,9 @@ if (Meteor.isServer) {
 
   Users.after.insert((userId, doc) => {
 
+    if (doc.fromAdmin)
+      return;
+
     //invite user to corresponding boards
     const disableRegistration = Settings.findOne().disableRegistration;
     if (disableRegistration) {
@@ -582,6 +595,7 @@ if (Meteor.isServer) {
       username: req.body.username,
       email: req.body.email,
       password: 'default',
+      from: 'admin',
     });
 
     JsonRoutes.sendResult(res, {