示例#1
0
    def identifier():
        device_id = frappe.cache().hget('device_id', frappe.session.sid)

        expires = datetime.datetime.now() + datetime.timedelta(days=365)
        frappe.local.cookie_manager.set_cookie("device_id",
                                               device_id,
                                               expires=expires)

        return device_id
示例#2
0
    def flush_cookies(self, response):
        for key, opts in self.cookies.items():
            response.set_cookie(key,
                                quote((opts.get("value")
                                       or "").encode('utf-8')),
                                expires=opts.get("expires"))

        # expires yesterday!
        expires = datetime.datetime.now() + datetime.timedelta(days=-1)
        for key in set(self.to_delete):
            response.set_cookie(key, "", expires=expires)
示例#3
0
文件: auth.py 项目: Alchez/frappe
    def init_cookies(self):
        if not frappe.local.session.get('sid'): return

        # sid expires in 3 days
        expires = datetime.datetime.now() + datetime.timedelta(days=3)
        if frappe.session.sid:
            self.set_cookie("sid",
                            frappe.session.sid,
                            expires=expires,
                            httponly=True)
        if frappe.session.session_country:
            self.set_cookie("country", frappe.session.session_country)
示例#4
0
文件: auth.py 项目: erpnext-tm/frappe
    def __init__(self,
                 user_name: str,
                 max_consecutive_login_attempts: int = 3,
                 lock_interval: int = 5 * 60):
        """Initialize the tracker.

		:param user_name: Name of the loggedin user
		:param max_consecutive_login_attempts: Maximum allowed consecutive failed login attempts
		:param lock_interval: Locking interval incase of maximum failed attempts
		"""
        self.user_name = user_name
        self.lock_interval = datetime.timedelta(seconds=lock_interval)
        self.max_failed_logins = max_consecutive_login_attempts
示例#5
0
    def init_cookies(self):
        if not frappe.local.session.get('sid'): return

        # sid expires in 3 days
        expires = datetime.datetime.now() + datetime.timedelta(days=3)
        if frappe.session.sid:
            self.cookies["sid"] = {
                "value": frappe.session.sid,
                "expires": expires
            }
        if frappe.session.session_country:
            self.cookies["country"] = {
                "value": frappe.session.get("session_country")
            }
示例#6
0
文件: auth.py 项目: erpnext-tm/frappe
    def flush_cookies(self, response):
        for key, opts in self.cookies.items():
            response.set_cookie(
                key,
                quote((opts.get("value") or "").encode("utf-8")),
                expires=opts.get("expires"),
                secure=opts.get("secure"),
                httponly=opts.get("httponly"),
                samesite=opts.get("samesite"),
            )

        # expires yesterday!
        expires = datetime.datetime.now() + datetime.timedelta(days=-1)
        for key in set(self.to_delete):
            response.set_cookie(key, "", expires=expires)
示例#7
0
    def set_identifier(device_id,
                       string_components=None,
                       detail_components=None):
        expires = datetime.datetime.now() + datetime.timedelta(days=365)
        frappe.cache().hset('device_id', frappe.session.sid, device_id)
        frappe.local.cookie_manager.set_cookie("device_id",
                                               device_id,
                                               expires=expires)

        if frappe.get_value("Device", device_id) is None:
            doc = frappe.new_doc("Device")
            doc.identifier = device_id
            doc.string_components = "" if string_components is None else string_components

            doc.company = frappe.defaults.get_user_default('company')
            if detail_components is not None:
                for row in detail_components:
                    doc.host = row["host"]
                    doc.workstation_name = row["host"]
                    doc.primary_device = row["primary_device"]
                    doc.mac = row["mac"]

            doc.save()
示例#8
0
def _get_send_after(mins):
    if not mins:
        return None
    return get_datetime() + datetime.timedelta(minutes=mins)