|
|
@@ -0,0 +1,53 @@ |
|
|
|
from __future__ import unicode_literals |
|
|
|
import frappe |
|
|
|
from frappe import _ |
|
|
|
import frappe.www.list |
|
|
|
|
|
|
|
no_cache = 1 |
|
|
|
no_sitemap = 1 |
|
|
|
|
|
|
|
def get_context(context): |
|
|
|
if frappe.session.user == 'Guest': |
|
|
|
frappe.throw(_("You need to be logged in to access this page"), frappe.PermissionError) |
|
|
|
|
|
|
|
active_tokens = frappe.get_all("OAuth Bearer Token", |
|
|
|
filters=[["user", "=", frappe.session.user]], |
|
|
|
fields=["client"], distinct=True, order_by="creation") |
|
|
|
|
|
|
|
client_apps = [] |
|
|
|
|
|
|
|
for token in active_tokens: |
|
|
|
creation = get_first_login(token.client) |
|
|
|
app = { |
|
|
|
"name": token.get("client"), |
|
|
|
"app_name": frappe.db.get_value("OAuth Client", token.get("client"), "app_name"), |
|
|
|
"creation": creation |
|
|
|
} |
|
|
|
client_apps.append(app) |
|
|
|
|
|
|
|
app = None |
|
|
|
if (frappe.form_dict.has_key("app")): |
|
|
|
app = frappe.get_doc("OAuth Client", frappe.form_dict.app) |
|
|
|
app = app.__dict__ |
|
|
|
app["client_secret"] = None |
|
|
|
|
|
|
|
if app: |
|
|
|
context.app = app |
|
|
|
|
|
|
|
context.apps = client_apps |
|
|
|
context.show_sidebar = True |
|
|
|
|
|
|
|
def get_first_login(client): |
|
|
|
login_date = frappe.get_all("OAuth Bearer Token", |
|
|
|
filters=[["user", "=", frappe.session.user], ["client", "=", client]], |
|
|
|
fields=["creation"], order_by="creation", limit=1) |
|
|
|
|
|
|
|
login_date = login_date[0].get("creation") if login_date and len(login_date) > 0 else None |
|
|
|
|
|
|
|
return login_date |
|
|
|
|
|
|
|
@frappe.whitelist() |
|
|
|
def delete_client(client_id): |
|
|
|
active_client_id_tokens = frappe.get_all("OAuth Bearer Token", filters=[["user", "=", frappe.session.user], ["client","=", client_id]]) |
|
|
|
for token in active_client_id_tokens: |
|
|
|
frappe.delete_doc("OAuth Bearer Token", token.get("name"), ignore_permissions=True) |