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
- add LogoutView to dashboard app
- define logout URL pattern
- only use login view from django.contrib.auth.views instead of including all
auth URLs
- change base template to support login/logout
- add template dashboard/user_dashboard.html
- add new dashboard app providing dashboards for anonymous and logged in users
- cleanup gnuviechadmin.urls:
- import dashboard.urls and include dashboard_urls at URL root
- import authentication urls and include them below /auth
- remove generated commented code