|
@@ -108,6 +108,10 @@ Users.attachSchema(new SimpleSchema({
|
|
|
type: Boolean,
|
|
|
optional: true,
|
|
|
},
|
|
|
+ createdThroughApi: {
|
|
|
+ type: Boolean,
|
|
|
+ optional: true,
|
|
|
+ },
|
|
|
}));
|
|
|
|
|
|
// 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.createdThroughApi = true;
|
|
|
+ return user;
|
|
|
+ }
|
|
|
+
|
|
|
const disableRegistration = Settings.findOne().disableRegistration;
|
|
|
if (!disableRegistration) {
|
|
|
return user;
|
|
@@ -524,6 +534,17 @@ if (Meteor.isServer) {
|
|
|
|
|
|
Users.after.insert((userId, doc) => {
|
|
|
|
|
|
+ if (doc.createdThroughApi) {
|
|
|
+ // The admin user should be able to create a user despite disabling registration because
|
|
|
+ // it is two different things (registration and creation).
|
|
|
+ // So, when a new user is created via the api (only admin user can do that) one must avoid
|
|
|
+ // the disableRegistration check.
|
|
|
+ // Issue : https://github.com/wekan/wekan/issues/1232
|
|
|
+ // PR : https://github.com/wekan/wekan/pull/1251
|
|
|
+ Users.update(doc._id, { $set: { createdThroughApi: '' } });
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
//invite user to corresponding boards
|
|
|
const disableRegistration = Settings.findOne().disableRegistration;
|
|
|
if (disableRegistration) {
|
|
@@ -581,7 +602,8 @@ if (Meteor.isServer) {
|
|
|
const id = Accounts.createUser({
|
|
|
username: req.body.username,
|
|
|
email: req.body.email,
|
|
|
- password: 'default',
|
|
|
+ password: req.body.password,
|
|
|
+ from: 'admin',
|
|
|
});
|
|
|
|
|
|
JsonRoutes.sendResult(res, {
|