aboutsummaryrefslogtreecommitdiff
path: root/client/js/controllers/user_registration_controller.js
diff options
context:
space:
mode:
Diffstat (limited to 'client/js/controllers/user_registration_controller.js')
-rw-r--r--client/js/controllers/user_registration_controller.js20
1 files changed, 15 insertions, 5 deletions
diff --git a/client/js/controllers/user_registration_controller.js b/client/js/controllers/user_registration_controller.js
index 7d82238..78b9402 100644
--- a/client/js/controllers/user_registration_controller.js
+++ b/client/js/controllers/user_registration_controller.js
@@ -10,7 +10,7 @@ const EmptyView = require('../views/empty_view.js');
class UserRegistrationController {
constructor() {
- if (!api.hasPrivilege('users:create')) {
+ if (!api.hasPrivilege('users:create:self')) {
this._view = new EmptyView();
this._view.showError('Registration is closed.');
return;
@@ -29,12 +29,22 @@ class UserRegistrationController {
user.name = e.detail.name;
user.email = e.detail.email;
user.password = e.detail.password;
+ const isLoggedIn = api.isLoggedIn();
user.save().then(() => {
- api.forget();
- return api.login(e.detail.name, e.detail.password, false);
+ if (isLoggedIn) {
+ return Promise.resolve();
+ } else {
+ api.forget();
+ return api.login(e.detail.name, e.detail.password, false);
+ }
}).then(() => {
- const ctx = router.show(uri.formatClientLink());
- ctx.controller.showSuccess('Welcome aboard!');
+ if (isLoggedIn) {
+ const ctx = router.show(uri.formatClientLink('users'));
+ ctx.controller.showSuccess('User added!');
+ } else {
+ const ctx = router.show(uri.formatClientLink());
+ ctx.controller.showSuccess('Welcome aboard!');
+ }
}, error => {
this._view.showError(error.message);
this._view.enableForm();

© 2015 - 2026 Jakob L. Kreuze