diff --git a/gnuviechadmin/userdbs/models.py b/gnuviechadmin/userdbs/models.py index c678a31..cf09969 100644 --- a/gnuviechadmin/userdbs/models.py +++ b/gnuviechadmin/userdbs/models.py @@ -202,6 +202,26 @@ class UserDatabaseManager(models.Manager): break return nextname + @transaction.atomic + def create_userdatabase_with_user( + self, db_type, osuser, password=None, commit=True): + """ + Creates a new user database with a new user. + + :param db_type: database type from :py:data:`DB_TYPES` + :param osuser: :py:class:`osusers.models.OsUser` instance + :param str password: the password of the new database user + :param boolean commit: whether the user and the database should be + persisted + :return: database instance + :rtype: :py:class:`UserDatabase` + + """ + dbuser = DatabaseUser.objects.create_database_user( + osuser, db_type, password=password, commit=commit) + database = self.create_userdatabase(dbuser, commit=commit) + return database + @transaction.atomic def create_userdatabase(self, db_user, db_name=None, commit=True): """