Example #1
0
 def __init__(self):
     self.__notification_entity = Notification_Entity()
     self.__option_entity = Option_Entity()
     self.__helpers = Helpers()
     self.__humanize = Humanize()
     self.__logger = self.__helpers.get_logger(__name__)
     option = self.__option_entity.get_one_by_key("app_name")
     self.__app_name = option.value if option is not False else ""
Example #2
0
 def __init__(self):
     self.__option_entity = Option_Entity()
     self.__user_entity = User_Entity()
     self.__host_entity = Host_Entity()
     self.__task_entity = Task_Entity()
     self.__profile_entity = Profile_Entity()
     self.__helpers = Helpers()
     self.__logger = self.__helpers.get_logger(__name__)
     self.__app_name = self.__option_entity.get_value_by_key("app_name").lower()
Example #3
0
 def test_insert_one(self):
     option_entity = Option_Entity()
     option = option_entity.insert_one({
         "key": "key1",
         "value": "value1",
         "autoload": True
     })
     self.assertTrue(option)
     self.assertTrue(option.id > 1)
Example #4
0
 def test_delete_one_by_key(self):
     option_entity = Option_Entity()
     option = option_entity.insert_one({
         "key": "key11",
         "value": "value11",
         "autoload": True
     })
     self.assertTrue(option_entity.delete_one_by_key("key11"), 1)
     self.assertFalse(option_entity.delete_one_by_key("key12"))
Example #5
0
 def test_delete_one_by_id(self):
     option_entity = Option_Entity()
     option = option_entity.insert_one({
         "key": "key10",
         "value": "value10",
         "autoload": True
     })
     self.assertTrue(option_entity.delete_one_by_id(option.id))
     self.assertFalse(option_entity.delete_one_by_id(600))
Example #6
0
 def test_update_value_by_id(self):
     option_entity = Option_Entity()
     option = option_entity.insert_one({
         "key": "key8",
         "value": "value8",
         "autoload": True
     })
     self.assertTrue(
         option_entity.update_value_by_id(option.id, "new_value8"))
     self.assertFalse(option_entity.update_value_by_id(700, "new_value8"))
Example #7
0
 def test_update_value_by_key(self):
     option_entity = Option_Entity()
     option = option_entity.insert_one({
         "key": "key9",
         "value": "value9",
         "autoload": True
     })
     self.assertTrue(option_entity.update_value_by_key(
         "key9", "new_value9"))
     self.assertFalse(
         option_entity.update_value_by_key("not_found_key", "new_value9"))
Example #8
0
    def get(self, request):

        self.__context = Context()
        self.__install = Install_Module()
        self.__option_entity = Option_Entity()

        if self.__install.is_installed():
            return redirect("app.web.login")

        self.__context.push({
            "page_title":
            _("Installation · %s") % self.__option_entity.get_value_by_key(
                "app_name", os.getenv("APP_NAME", "Kraven"))
        })

        return render(request, self.template_name, self.__context.get())
Example #9
0
class Reset_Password(View):

    template_name = 'templates/reset_password.html'
    __reset_password_core = Reset_Password_Module()
    __context = Context()
    __option_entity = Option_Entity()

    @redirect_if_not_installed
    @redirect_if_authenticated
    def get(self, request, token):

        self.__context.autoload_options()
        self.__context.push({
            "page_title":
            _("Reset Password · %s") %
            self.__context.get("app_name", os.getenv("APP_NAME", "Kevin")),
            "reset_token":
            token
        })

        if not self.__reset_password_core.check_token(token):
            messages.error(
                request,
                _("Reset token is expired or invalid, Please request another token!"
                  ))
            return redirect("app.web.forgot_password")

        return render(request, self.template_name, self.__context.get())
Example #10
0
 def __init__(self):
     self.__acl = ACL()
     self.__option_entity = Option_Entity()
     self.__user_entity = User_Entity()
     self.__helpers = Helpers()
     self.__notification_entity = Notification_Entity()
     self.__logger = self.__helpers.get_logger(__name__)
Example #11
0
 def __init__(self):
     self.__option_entity = Option_Entity()
     self.__user_entity = User_Entity()
     self.__helpers = Helpers()
     self.__token = Token()
     self.__profile_entity = Profile_Entity()
     self.__logger = self.__helpers.get_logger(__name__)
Example #12
0
    def __init__(self):
        self.__reset_request_entity = Reset_Request_Entity()
        self.__option_entity = Option_Entity()
        self.__helpers = Helpers()
        self.__user_entity = User_Entity()
        self.__job_entity = Job_Entity()

        messages_count_option = self.__option_entity.get_one_by_key(
            "reset_mails_messages_count")
        reset_expire_option = self.__option_entity.get_one_by_key(
            "reset_mails_expire_after")

        if messages_count_option != False:
            self.__messages_count_option = int(messages_count_option.value)

        if reset_expire_option != False:
            self.__reset_expire_option = int(reset_expire_option.value)
Example #13
0
    def __init__(self):

        self.__option_entity = Option_Entity()
        self.__user_entity = User_Entity()
        self.__helpers = Helpers()

        self.__data["AUTHOR"] = AUTHOR
        self.__data["COPYRIGHT"] = COPYRIGHT
        self.__data["LICENSE"] = LICENSE
        self.__data["VERSION"] = VERSION
        self.__data["MAINTAINER"] = MAINTAINER
        self.__data["EMAIL"] = EMAIL
        self.__data["STATUS"] = STATUS
        self.__data["REPO_URL"] = REPO_URL
        self.__data["AUTHOR_URL"] = AUTHOR_URL
        self.__data["RELEASES"] = RELEASES
        self.__data["SUPPORT_URL"] = SUPPORT_URL
        self.__logger = self.__helpers.get_logger(__name__)
Example #14
0
 def test_insert_many(self):
     option_entity = Option_Entity()
     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
         }]))
Example #15
0
 def wrap(controller, request, *args, **kwargs):
     if kwargs["type"] == "prometheus":
         prometheus_token = Option_Entity().get_one_by_key(
             "prometheus_token")
         if prometheus_token.value != "" and (
                 "HTTP_AUTHORIZATION" not in request.META
                 or prometheus_token.value !=
                 request.META["HTTP_AUTHORIZATION"]):
             raise Http404("Host not found.")
     return function(controller, request, *args, **kwargs)
Example #16
0
    def get(self, request):

        self.__context = Context()
        self.__option_entity = Option_Entity()

        self.__context.autoload_options()
        self.__context.push({
            "page_title": _("Forgot Password · %s") % self.__context.get("app_name", os.getenv("APP_NAME", "Kraven"))
        })

        return render(request, self.template_name, self.__context.get())
Example #17
0
    def get(self, request):

        self.__context = Context()
        self.__option_entity = Option_Entity()

        self.__context.autoload_options()
        self.__context.push({
            "page_title": self.__context.get("app_name", os.getenv("APP_NAME", "Kraven")),
            "is_authenticated": request.user and request.user.is_authenticated
        })

        return render(request, self.template_name, self.__context.get())
Example #18
0
 def test_get_many_by_autoload(self):
     option_entity = Option_Entity()
     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)
Example #19
0
class Metric():

    __option_entity = None
    __user_entity = None
    __host_entity = None
    __task_entity = None
    __profile_entity = None
    __helpers = None
    __logger = None
    __app_name = ""

    def __init__(self):
        self.__option_entity = Option_Entity()
        self.__user_entity = User_Entity()
        self.__host_entity = Host_Entity()
        self.__task_entity = Task_Entity()
        self.__profile_entity = Profile_Entity()
        self.__helpers = Helpers()
        self.__logger = self.__helpers.get_logger(__name__)
        self.__app_name = self.__option_entity.get_value_by_key("app_name").lower()

    def get_all_users(self):
        return {
            "type": "count",
            "record": "%s_all_users" % self.__app_name,
            "count": self.__user_entity.count_all_users(),
            "comment": "Current All Users on System"
        }

    def get_all_profiles(self):
        return {
            "type": "count",
            "record": "%s_all_profiles" % self.__app_name,
            "count": self.__profile_entity.count_all_profiles(),
            "comment": "Current All Profiles on System"
        }

    def get_all_tasks(self):
        return {
            "type": "count",
            "record": "%s_all_tasks" % self.__app_name,
            "count": self.__task_entity.count_all_tasks(),
            "comment": "Current All Tasks on System"
        }

    def get_all_hosts(self):
        return {
            "type": "count",
            "record": "%s_all_hosts" % self.__app_name,
            "count": self.__host_entity.count_all_hosts(),
            "comment": "Current All Hosts on System"
        }
Example #20
0
 def wrap(controller, request, *args, **kwargs):
     installed = False if Option_Entity().get_one_by_key(
         "app_installed") is False else True
     if installed:
         response = Response()
         return JsonResponse(
             response.send_private_failure([{
                 "type":
                 "error",
                 "message":
                 _("Error! Application is already installed.")
             }]))
     return function(controller, request, *args, **kwargs)
Example #21
0
 def test_get_one_by_key(self):
     option_entity = Option_Entity()
     option = option_entity.insert_one({
         "key": "key7",
         "value": "value7",
         "autoload": True
     })
     self.assertEqual(option_entity.get_one_by_key("key7"), option)
     self.assertEqual(option_entity.get_one_by_key("key7").key, "key7")
     self.assertFalse(option_entity.get_one_by_key("not_found_key"))
Example #22
0
class Settings():

    __option_entity = None
    __helpers = None
    __logger = None

    def __init__(self):
        self.__option_entity = Option_Entity()
        self.__helpers = Helpers()
        self.__logger = self.__helpers.get_logger(__name__)

    def update_options(self, options):
        status = True
        for key, value in options.items():
            status &= self.__option_entity.update_value_by_key(key, value)
        return status
Example #23
0
    def test_get_one_by_id(self):
        option_entity = Option_Entity()
        option = option_entity.insert_one({
            "key": "key6",
            "value": "value6",
            "autoload": True
        })

        self.assertEqual(option_entity.get_one_by_id(option.id), option)
        self.assertEqual(option_entity.get_one_by_id(option.id).key, "key6")
        self.assertFalse(option_entity.get_one_by_id(1000))
Example #24
0
class Forgot_Password(View):

    template_name = 'templates/forgot_password.html'
    __context = Context()
    __option_entity = Option_Entity()


    @redirect_if_not_installed
    @redirect_if_authenticated
    def get(self, request):

        self.__context.autoload_options()
        self.__context.push({
            "page_title": _("Forgot Password · %s") % self.__context.get("app_name", os.getenv("APP_NAME", "Kevin"))
        })

        return render(request, self.template_name, self.__context.get())
Example #25
0
class Base():

    __option_entity = Option_Entity()
    __helpers = Helpers()
    __logger = None
    __arguments = {"app_name": "", "app_email": "", "app_url": ""}

    def __init__(self, arguments):
        self.__logger = self.__helpers.get_logger(__name__)
        self.__arguments.update(arguments)
        self.__load_options()

    def __load_options(self):
        options = self.__option_entity.get_many_by_keys(
            ["app_name", "app_email", "app_url"])
        for option in options:
            if option.key in self.__arguments.keys():
                self.__arguments[option.key] = option.value
Example #26
0
    def get(self, request):

        self.__context = Context()
        self.__option_entity = Option_Entity()

        self.__context.autoload_options()
        self.__context.push({
            "page_title":
            _("Login · %s") %
            self.__context.get("app_name", os.getenv("APP_NAME", "Kraven"))
        })

        if "redirect" in request.GET:
            self.__context.push({"redirect_url": request.GET["redirect"]})
        else:
            self.__context.push(
                {"redirect_url": reverse("app.web.admin.dashboard")})

        return render(request, self.template_name, self.__context.get())
Example #27
0
class Forgot_Password():

    __reset_request_entity = None
    __option_entity = None
    __user_entity = None
    __job_entity = None
    __helpers = None

    __reset_expire_option = 24
    __messages_count_option = 5

    def __init__(self):
        self.__reset_request_entity = Reset_Request_Entity()
        self.__option_entity = Option_Entity()
        self.__helpers = Helpers()
        self.__user_entity = User_Entity()
        self.__job_entity = Job_Entity()

        messages_count_option = self.__option_entity.get_one_by_key(
            "reset_mails_messages_count")
        reset_expire_option = self.__option_entity.get_one_by_key(
            "reset_mails_expire_after")

        if messages_count_option != False:
            self.__messages_count_option = int(messages_count_option.value)

        if reset_expire_option != False:
            self.__reset_expire_option = int(reset_expire_option.value)

    def check_email(self, email):
        return True if self.__user_entity.get_one_by_email(
            email) != False else False

    def reset_request_exists(self, email):
        return self.__reset_request_entity.get_one_by_email(email)

    def is_spam(self, request):
        if request.messages_count >= self.__messages_count_option and timezone.now(
        ) < request.expire_at:
            return True
        return False

    def update_request(self, request):

        # Delete Old Request
        self.__reset_request_entity.delete_one_by_id(request.id)

        # Create a Fresh Request
        if timezone.now() > request.expire_at:
            return self.create_request(request.email)

        # Create from the Old Request
        request = self.__reset_request_entity.insert_one({
            "email":
            request.email,
            "expire_at":
            request.expire_at,
            "messages_count":
            request.messages_count + 1
        })
        return request.token if request != False else False

    def create_request(self, email):
        request = self.__reset_request_entity.insert_one({
            "email": email,
            "expire_after": self.__reset_expire_option,
            "messages_count": 0
        })
        return request.token if request != False else False

    def send_message(self, email, token):
        return self.__job_entity.insert_one({
            "name":
            "reset_password_msg_for_%s" % (email),
            "executor":
            "forgot_password_email.Forgot_Password_Email",
            "parameters": {
                "recipient_list": [email],
                "token": token
            },
            "interval": {
                "type": Job_Entity.ONCE
            }
        })
Example #28
0
 def wrap(controller, request, *args, **kwargs):
     installed = False if Option_Entity().get_one_by_key(
         "app_installed") is False else True
     if not installed:
         return redirect("app.web.install")
     return function(controller, request, *args, **kwargs)
Example #29
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}
    ]
    __admin = {
        "username": "",
        "email": "",
        "password": "",
        "is_superuser": True,
        "is_active": True,
        "is_staff": False
    }
    __option_entity = None
    __user_entity = None
    __helpers = None
    __logger = None
    __acl = None

    def __init__(self):
        self.__option_entity = Option_Entity()
        self.__user_entity = User_Entity()
        self.__helpers = Helpers()
        self.__acl = ACL()
        self.__logger = self.__helpers.get_logger(__name__)

    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):
        try:
            execute_from_command_line(["manage.py", "migrate"])
        except Exception as e:
            self.__logger.error("Error While Running Migrations: %s" % e)
            return False

        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 status
Example #30
0
class Forgot_Password():

    __reset_request_entity = None
    __option_entity = None
    __user_entity = None
    __task_core = None
    __helpers = None

    __reset_expire_option = 24
    __messages_count_option = 5

    def __init__(self):
        self.__reset_request_entity = Reset_Request_Entity()
        self.__option_entity = Option_Entity()
        self.__helpers = Helpers()
        self.__user_entity = User_Entity()
        self.__task_core = Task_Core()

        messages_count_option = self.__option_entity.get_one_by_key(
            "reset_mails_messages_count")
        reset_expire_option = self.__option_entity.get_one_by_key(
            "reset_mails_expire_after")

        if messages_count_option:
            self.__messages_count_option = int(messages_count_option.value)

        if reset_expire_option:
            self.__reset_expire_option = int(reset_expire_option.value)

    def check_email(self, email):
        return True if self.__user_entity.get_one_by_email(
            email) is not False else False

    def reset_request_exists(self, email):
        return self.__reset_request_entity.get_one_by_email(email)

    def is_spam(self, request):
        if request.messages_count >= self.__messages_count_option and timezone.now(
        ) < request.expire_at:
            return True
        return False

    def update_request(self, request):

        # Delete Old Request
        self.__reset_request_entity.delete_one_by_id(request.id)

        # Create a Fresh Request
        if timezone.now() > request.expire_at:
            return self.create_request(request.email)

        # Create from the Old Request
        request = self.__reset_request_entity.insert_one({
            "email":
            request.email,
            "expire_at":
            request.expire_at,
            "messages_count":
            request.messages_count + 1
        })
        return request.token if request is not False else False

    def create_request(self, email):
        request = self.__reset_request_entity.insert_one({
            "email": email,
            "expire_after": self.__reset_expire_option,
            "messages_count": 0
        })
        return request.token if request is not False else False

    def send_message(self, email, token):

        app_name = self.__option_entity.get_value_by_key("app_name")
        app_email = self.__option_entity.get_value_by_key("app_email")
        app_url = self.__option_entity.get_value_by_key("app_url")
        user = self.__user_entity.get_one_by_email(email)

        return self.__task_core.delay(
            "forgot_password_email", {
                "app_name": app_name,
                "app_email": app_email,
                "app_url": app_url,
                "recipient_list": [email],
                "token": token,
                "subject": _("%s Password Reset") % (app_name),
                "template": "mails/reset_password.html",
                "fail_silently": False
            }, user.id)