Esempio n. 1
0
 def test_insert_many(self):
     option_entity = OptionEntity()
     self.assertTrue(
         option_entity.insert_many([{
             "key": "key2",
             "value": "value2",
             "autoload": False
         }, {
             "key": "key3",
             "value": "value3"
         }, {
             "key": "key4",
             "value": "value4",
             "autoload": True
         }, {
             "key": "key5",
             "value": "value5",
             "autoload": True
         }]))
Esempio n. 2
0
 def test_get_many_by_autoload(self):
     option_entity = OptionEntity()
     self.assertTrue(
         option_entity.insert_many([{
             "key": "key2",
             "value": "value2",
             "autoload": False
         }, {
             "key": "key3",
             "value": "value3"
         }, {
             "key": "key4",
             "value": "value4",
             "autoload": True
         }, {
             "key": "key5",
             "value": "value5",
             "autoload": True
         }]))
     self.assertEqual(option_entity.get_many_by_autoload(True).count(), 2)
     self.assertEqual(option_entity.get_many_by_autoload(False).count(), 2)
Esempio n. 3
0
class Install():

    __options = [{
        "key": "app_installed",
        "value": "true",
        "autoload": True
    }, {
        "key": "app_description",
        "value": "",
        "autoload": False
    }, {
        "key": "google_analytics_account",
        "value": "",
        "autoload": True
    }, {
        "key": "reset_mails_messages_count",
        "value": "5",
        "autoload": False
    }, {
        "key": "reset_mails_expire_after",
        "value": "24",
        "autoload": False
    }, {
        "key": "access_tokens_expire_after",
        "value": "48",
        "autoload": False
    }, {
        "key": "prometheus_token",
        "value": "",
        "autoload": False
    }, {
        "key": "newrelic_api_key",
        "value": "",
        "autoload": False
    }]
    __admin = {
        "username": "",
        "email": "",
        "password": "",
        "is_superuser": True,
        "is_active": True,
        "is_staff": False
    }

    def __init__(self):
        self.__option_entity = OptionEntity()
        self.__user_entity = UserEntity()
        self.__acl = ACL()

    def is_installed(self):
        return False if self.__option_entity.get_one_by_key(
            "app_installed") is False else True

    def set_app_data(self, name, email, url):
        self.__options.append({
            "key": "app_name",
            "value": name,
            "autoload": True
        })
        self.__options.append({
            "key": "app_email",
            "value": email,
            "autoload": True
        })
        self.__options.append({
            "key": "app_url",
            "value": url,
            "autoload": True
        })

    def set_admin_data(self, username, email, password):
        self.__admin["username"] = username
        self.__admin["email"] = email
        self.__admin["password"] = password

    def init_base_acl(self, user_id):
        self.__acl.truncate_default_permissions()
        self.__acl.new_role("super_admin")
        self.__acl.new_role("normal_user")
        self.__acl.new_permission(
            "Manage Settings", self.__acl.get_content_type_id("auth", "user"),
            "manage_settings")
        self.__acl.add_permission_to_role("super_admin", "manage_settings")
        self.__acl.add_role_to_user("super_admin", user_id)
        return True

    def install(self):
        execute_from_command_line(["manage.py", "migrate"])
        status = True
        status &= self.__option_entity.insert_many(self.__options)
        user = self.__user_entity.insert_one(self.__admin)
        status &= (user is not False)

        if user is not False:
            status &= self.init_base_acl(user.id)

        return user.id if status else False

    def uninstall(self):
        self.__option_entity.truncate()
        self.__user_entity.truncate()