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 f1be8df4a..9817e0c56 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
+