users: Fix admin group appearing twice in permissions

Signed-off-by: Joseph Nuthalapati <njoseph@thoughtworks.com>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
This commit is contained in:
Joseph Nuthalapati 2018-03-28 12:07:24 +05:30 committed by James Valleroy
parent f3d2b64832
commit 14442b1db2
No known key found for this signature in database
GPG Key ID: 77C0C75E7B650808
2 changed files with 30 additions and 28 deletions

View File

@ -44,8 +44,8 @@ first_boot_steps = [
name = _('Users and Groups')
# List of all FreedomBox user groups
groups = set()
# All FreedomBox user groups
groups = dict()
def init():
@ -104,4 +104,4 @@ def remove_group(group):
def register_group(group):
groups.add(group)
groups[group[0]] = group[1]

View File

@ -32,15 +32,15 @@ from plinth.modules import first_boot, users
from plinth.modules.security import set_restricted_access
from plinth.translation import set_language
from plinth.utils import is_user_admin
from plinth.models import UserProfile
def get_group_choices():
"""Return localized group description and group name in one string."""
admin_group = ('admin', _('Access to all services and system settings'))
users.register_group(admin_group)
choices = {(g[0], ('{} ({})'.format(g[1], g[0]))) for g in users.groups}
return sorted(list(choices), key=lambda g: g[0])
choices = [(k, ('{} ({})'.format(users.groups[k], k)))
for k in users.groups]
return sorted(choices, key=lambda g: g[0])
class ValidNewUsernameCheckMixin(object):
@ -115,18 +115,19 @@ class CreateUserForm(ValidNewUsernameCheckMixin,
user.userprofile.save()
try:
actions.superuser_run('users', [
'create-user', user.get_username()
], input=self.cleaned_data['password1'].encode())
actions.superuser_run(
'users',
['create-user', user.get_username()],
input=self.cleaned_data['password1'].encode())
except ActionError:
messages.error(self.request, _('Creating LDAP user failed.'))
for group in self.cleaned_data['groups']:
try:
actions.superuser_run('users', [
'add-user-to-group',
user.get_username(), group
])
actions.superuser_run(
'users',
['add-user-to-group',
user.get_username(), group])
except ActionError:
messages.error(
self.request,
@ -207,10 +208,10 @@ class UserUpdateForm(ValidNewUsernameCheckMixin,
if self.username != user.get_username():
try:
actions.superuser_run('users', [
'rename-user', self.username,
user.get_username()
])
actions.superuser_run(
'users',
['rename-user', self.username,
user.get_username()])
except ActionError:
messages.error(self.request,
_('Renaming LDAP user failed.'))
@ -263,10 +264,10 @@ class UserChangePasswordForm(SetPasswordForm):
user = super(UserChangePasswordForm, self).save(commit)
if commit:
try:
actions.superuser_run('users', [
'set-user-password',
user.get_username()
], input=self.cleaned_data['new_password1'].encode())
actions.superuser_run(
'users', ['set-user-password',
user.get_username()],
input=self.cleaned_data['new_password1'].encode())
except ActionError:
messages.error(self.request,
_('Changing LDAP user password failed.'))
@ -288,17 +289,18 @@ class FirstBootForm(ValidNewUsernameCheckMixin, auth.forms.UserCreationForm):
first_boot.mark_step_done('users_firstboot')
try:
actions.superuser_run('users', [
'create-user', user.get_username()
], input=self.cleaned_data['password1'].encode())
actions.superuser_run(
'users',
['create-user', user.get_username()],
input=self.cleaned_data['password1'].encode())
except ActionError:
messages.error(self.request, _('Creating LDAP user failed.'))
try:
actions.superuser_run('users', [
'add-user-to-group',
user.get_username(), 'admin'
])
actions.superuser_run(
'users',
['add-user-to-group',
user.get_username(), 'admin'])
except ActionError:
messages.error(self.request,
_('Failed to add new user to admin group.'))