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" }
class Install(View): template_name = 'templates/install.html' __context = None __install = None __option_entity = None 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())
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)