users: Rename a POSIX user when Plinth user is renamed

This commit is contained in:
Sunil Mohan Adapa 2015-01-25 01:43:07 +05:30
parent a3de3ae277
commit c2b806cf0d
2 changed files with 44 additions and 0 deletions

36
actions/rename-user Executable file
View File

@ -0,0 +1,36 @@
#!/bin/sh
#
# This file is part of Plinth.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# Must be run as root.
old_username="$1"
new_username="$2"
getent passwd "$old_username"
if [ $? -ne 0 ]; then
echo "Failed: user not found"
exit
fi
usermod -l "$new_username" "$old_username"
if [ $? -eq 0 ]; then
echo "Success: user renamed"
else
echo "Failed: user rename failed"
exit 2
fi

View File

@ -88,6 +88,14 @@ class UserUpdateForm(forms.ModelForm):
self.request,
_('Setting active status for POSIX system user failed.'))
try:
if self.username != user.get_username():
actions.superuser_run('rename-user',
[self.username, user.get_username()])
except ActionError:
messages.error(self.request,
_('Renaming POSIX system user failed.'))
return user