From 42f723f3cb4426295d304fbe5da5b097a024aebd Mon Sep 17 00:00:00 2001 From: FinnStutzenstein Date: Tue, 13 Sep 2016 12:52:50 +0200 Subject: [PATCH] Option to generate multiple new passwords (closes #2350) --- openslides/users/static/js/users/site.js | 20 ++++++++++++++++++- .../static/templates/users/user-list.html | 7 +++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/openslides/users/static/js/users/site.js b/openslides/users/static/js/users/site.js index b635200bd..fe2eaf8c3 100644 --- a/openslides/users/static/js/users/site.js +++ b/openslides/users/static/js/users/site.js @@ -415,11 +415,13 @@ angular.module('OpenSlidesApp.users.site', ['OpenSlidesApp.users']) .controller('UserListCtrl', [ '$scope', '$state', + '$http', 'ngDialog', 'UserForm', 'User', 'Group', - function($scope, $state, ngDialog, UserForm, User, Group) { + 'PasswordGenerator', + function($scope, $state, $http, ngDialog, UserForm, User, Group, PasswordGenerator) { User.bindAll({}, $scope, 'users'); Group.bindAll({where: {id: {'>': 1}}}, $scope, 'groups'); $scope.alert = {}; @@ -520,6 +522,22 @@ angular.module('OpenSlidesApp.users.site', ['OpenSlidesApp.users']) $scope.isSelectMode = false; $scope.uncheckAll(); }; + // generate new passwords + $scope.generateNewPasswordsMultiple = function () { + angular.forEach($scope.users, function (user) { + if (user.selected) { + var newPassword = PasswordGenerator.generate(); + user.default_password = newPassword; + User.save(user); + $http.post( + '/rest/users/user/' + user.id + '/reset_password/', + {'password': newPassword} + ); + } + }); + $scope.isSelectMode = false; + $scope.uncheckAll(); + }; } ]) diff --git a/openslides/users/static/templates/users/user-list.html b/openslides/users/static/templates/users/user-list.html index f49a93748..ad0033353 100644 --- a/openslides/users/static/templates/users/user-list.html +++ b/openslides/users/static/templates/users/user-list.html @@ -87,6 +87,7 @@ + Remove group + + + + Generate new passwords +