- implement new form osusers.forms.AddSshPublicKeyForm
- move message texts from osusers.admin to osusers.forms
- add new view osusers.views.AddSshPublicKey
- add new URL patter 'add_ssh_key' to osusers.urls
- add new template osusers/sshpublickey_create.html
- link from hosting package detail template to 'add_ssh_key'
- add changelog entry for new feature
- implement custom perform_delete_selected action for SshPublicKeyAdmin that
ensures that the authorized_keys files of all affected users are rebuilt
after deleting keys
- implement custom get_actions to replace the default delete_selected action
with the custom perform_delete_selected
- define get_readonly_fields to make sure that the key algorithm and data
cannot be changed
- implement save and delete methods in osusers.models.SshPublicKey that trigger
set_file_ssh_authorized_keys
- add new test methods to osusers.tests.test_models.SshPublicKeyTest
- implement osusers.models.SshPublicKey and osusers.models.SshPublicKeyManager
- fix broken osusers.models.tests.test_models
- add new test classes SshPublicKeyManagerTest and SshPublicKeyTest
- add migration for SshPublicKey model
- document new feature in changelog
- add autogenerated documentation for osusers.urls and osusers.views
- add osuser URLs to gnuviechadmin.urls
- implement get_absolute_url in hostingpackages.models.CustomerHostingPackage
- use set_ldap_user_password instead of create_ldap_user for existing OS users
in osusers.models.User.set_password
- add URL pattern set_osuser_password in osusers.urls
- implement osusers.views.SetOsUserPassword to set the password of an existing
operating system user
- link to hosting package detail view on user dashboard
- add template hostingpackages/customerhostingpackage_detail.html
- add template osusers/user_setpassword.html
- use new file tasks to create SFTP and mail base directories for users
- use json serializer as default
- remove TaskResult classes that don't provide any significant benefit
- remove TaskResultInline and subclasses
- add custom perform_delete_selected action to UserAdmin and GroupAdmin
- properly clean asynchronous tasks in rabbitmq
- wrap user operations in transactions
- remove duplicate create_ldap_group task
- create Shadow in User.set_password if necessary
- add test UserManagerTest.test_create_user_tasks for group task