This commit raises the test coverage for osusers.admin to 100% by adding
tests for UserAdmin, GroupAdmin, SshPublicKeyCreationForm and
SshPublicKeyAdmin. The commit adds a refactoring TODO to
SshPublicKeyAdmin.perform_delete_selected because the asynchronous
background task should be launched from a signal handler.
This commit fixes all warnings created by flake8 by removing unused
imports and variable assignments. Some wrongly indented lines are now
indented correctly.
This commit adds a test suite for the views defined in
managemails.views. One issue discovered when writing tests is fixed by
checking the request method in CreateMailbox.dispatch.
This commit adds tests for managemails.models to improve the test
coverage of that model. There are some changes to the classes in
managemails.models too:
- add a method create_mailbox to MailboxManager
- properly handle uncommited mailaddresses in MailAddress.set_mailbox
and MailAddress.set_forward_addresses
This commit adds tests for managemails.forms. A refactoring TODO is
added to MailAddressFieldMixin and pragma: no cover has been added to
code paths not reachable if no new constants are added to the
MAILBOX_OR_FORWARDS constant array.
This commit adds a refactoring for gnuviechadmin.celery to make the
installed apps detection testable. The test is added in
gnuviechadmin.tests.test_celery. Debug code in gnuviechadmin.urls is no
excluded from coverage reporting.
This commit adds new tests for the gnuviechadmin.context_processors
module. The module gnuviechadmin.tests has been moved into a separate
directory for a more clear structure.
This commit adds documentation how to setup PowerDNS to use the
gnuviechadmin DNS schema. The queries are provided in a PowerDNS
configuration file.
Addresses #17
This commit adds Meta information and __str__ methods to all DNS table
models. The new methods are now covered with new tests. The new
constants DNS_DOMAIN_METADATA_KINDS and DNS_TSIG_KEY_ALGORITHMS are
defined and used in the DNSDomainMetadata and DNSTSIGKey models. A
matching database schema migration is added.
Addresses #17
This commit add model classes closely matching the tables defined in
PowerDNS' schema as described at
https://doc.powerdns.com/md/authoritative/backend-generic-mypgsql/.
The commit includes the model definitions a schema migration including
PostgreSQL specific CHECK constraints and the registration in the Django
admin interface.
addresses #17
- don't execute celery tasks directly
- introduce optional parameters to fileserver tasks to allow chaining
- handle user/group/key create and delete tasks in new osusers.signals
class
- adapt unit tests
- change TaskResults model to store the task signatures
- generalize the local settings' logging configuration
- make sure that AddSshPublicKeyForm does not try to parse the key if it is
None
- split the key text into a maximum of 3 parts to allow whitespace in comments
- update changelog
- add __version__ to gnuviechadmin/__init__.py
- change docs/conf.py to use version number from gnuviechadmin
- add gnuviechadmin.context_processors.version_info to add
gnuviechadmin_version to template context
- add version and technology links to templates/base.html footer
- add CSS styles for footer formatting
- add flatpages app to gnuviechadmin.settings.base.DJANGO_APPS
- add imprint handling to gnuviechadmin.context_processors.navigation, remove
unused about page handling
- add URL 'imprint' to gnuviechadmin.urls
- replace link 'about' in template base.html with 'imprint'
- add templates for flatpages
- add german translation for imprint and contact navigation links
- create view hostingpackages.views.CustomerHostingPackageList to display a
specific customer's hosting packages
- add docstring to view AllCustomerHostingPackageList
- add URL pattern 'hosting_packages' to hostingpackages.urls
- restructure hostingpackages URL patterns to remove useless parts
- add template hostingpackages/customerhostingpackage_list.html
- change links in template base.html to link to 'hosting_packages'
- add new links dropdown to top navigation in template base.html
- add new settings GVA_LINK_WEBMAIL, GVA_LINK_PHPMYADMIN and
GVA_LINK_PHPPGADMIN to gnuviechadmin.settings.base
- implement gnuviechadmin.context_processors.navigation to add links to
request context of non-AJAX requests
- add generated documentation for gnuviechadmin.context_processors
- add changelog entry
- add sshkeys to hostingpackage detail view context
- implement new osusers.forms.EditSshPublicKeyCommentForm
- implement new views ListSshPublicKeys, DeleteSshPublicKey and
EditSshPublicKeyComment
- add new URL patterns 'list_ssh_keys', 'edit_ssh_key_comment' and
'delete_ssh_key'
- link from hosting package detail view to 'list_ssh_keys' when there are
SSH keys assigned to the shown hosting package
- add new templates osusers/sshpublickey_list.html,
osusers/sshpublickey_confirm_delete.html and
osusers/sshpublickey_edit_comment
- add operating system user output to template
osusers/sshpublickey_create.html
- add changelog entry
- 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
- implement delete method and let it call these tasks:
- disable_web_vhost
- delete_web_vhost_config
- delete_file_website_hierarchy
- delete_web_php_fpm_pool_config if this was the last website of the
user
- implement save method and let it call these tasks:
- create_web_php_fpm_pool_config if the user has no website yet
- create_file_website_hierarchy
- create_web_vhost_config
- enable_web_vhost
- implement domains.forms.relative_domain_validator
- use the validator for domain field validation in
domains.forms.CreateHostingDomainForm
- use the validator for subdomain field validation in
websites.forms.AddWebsiteForm
- modify userdbs.models.UserDatabase.delete to perform deletion of database
user if it has no other databases assigned
- implement userdbs.views.DeleteUserDatabase
- add URL pattern 'delete_userdatabase' to userdbs.urls
- add template userdbs/userdatabase_confirm_delete.html
- add link to 'delete_userdatabase' on hosting package detail page
- add changelog entry
- add database URLs to gnuviechadmin.urls
- add link in template hostingpackages/customerhostingpackage_detail.html
- add changelog entry for new feature
- prefetch database objects in CustomerHostingPackageDetails.get_context_data
- use prefetched data in template hostingpackage/customerhostingpackage_detail.html
- mention optimization in changelog
- fix unique constraints on CustomerDiskSpaceOption and
CustomerUserDatabaseOption to allow multiple options from the same template
for hosting packages
- fix disk space calculation in CustomerHostingPackage
- implement hostingpackages forms AddDiskspaceOptionForm, AddMailboxOptionForm,
AddUserDatabaseOptionForm
- implement hostingpackages.views.AddHostingOption
- add new URL pattern add_hosting_option to hostingpackages.urls
- add template hostingpackages/add_hosting_option.html
- link items on hostingpackages/customerhostingpackage_option_choices.html to
add_hosting_option
- implement new hostingpackages.views.HostingOptionChoices
- add URL pattern 'hosting_option_choices' to hostingpackages.urls
- add template hostingpackages/customerhostingpackage_option_choices.html
- link from hostingpackages/customerhostingpackage_detail.html to
'hosting_package_choices'
- implement managemails.forms.ChangeMailboxPasswordForm
- extract code for determining hosting package and customer from URL into
HostingPackageAndCustomerMixin
- implement managemails.views.ChangeMailboxPassword
- add new URL pattern 'change_mailbox_password' to managemails.urls
- add template managemails/mailbox_setpassword.html
- link from template hostingpackages/customerhostingpackage_detail.html to
change_mailbox_password
- add german translation for new strings
- document new feature in changelog
- add managemails.urls to gnuviechadmin.urls
- add link to create_mailbox to customerhostingpackage_detail.html template
- document feature in changelog
- implement domains.views.CreateHostingDomain
- define new URL create_hosting_domain in domains.urls
- add domains app URLs to gnuviechadmin.urls
- add templates domains/base.html and domains/hostingdomain_create.html
- link from hostingpackage detail page to domain creation view
- implement domains.forms.CreateHostingDomainForm
- implement domains.models.HostingDomainManager.create_for_hosting_package that
takes care of creating the necessary database objects for hosting domains
assigned to a hosting package
- rename CreateHostingPackage to CreateCustomerHostingPackage
- add new CreateHostingPackage that allows to select a customer
- rename CreateHostingPackageForm to CreateCustomerHostingPackageForm
- add new CreateHostingPackageForm that has a customer field
- add new URL pattern create_hosting_package, rename existing pattern to
create_customer_hosting_package
- modify template dashboard/user_dashboard to use the correct URL name
- add get_hostingoptions method and property hostingoptions
- add get_package_space method to determine disk space provided by the
hosting package itself
- add get_databases_flat and property databases to get a list of databases
assigned to the hosting package
- add may_add_database to determine whether additional databases are allowed
by the hosting package's options
- add properties mailboxes, used_mailbox_count, mailbox_count and
may_add_mailbox to CustomerHostingPackage class
- use new properties in template dashboard/user_dashboard.html
- add managemails.apps to give a more meaningful title in the admin site
- add verbose names to MailAddressMailbox fields
- implement managemails.models.Mailbox.get_mailaddresses and a corresponding
property mailaddresses
- add new domains.apps.AppConfig to allow translatable app description for
domains app
- link domains to a customer
- extract common functionality from domains.models.MailDomain into abstract
domains.models.DomainBase
- add separate domains.models.HostingDomain to allow for generic external
domains
- add new hostingpackages.models.CustomerHostingPackageDomain to assign hosting
domains to hosting packages
- 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