def list_curuser_groups(): curuser = frappe.session.user groups = _list_user_groups(curuser) for g in groups: g.group_name = frappe.get_value("Cloud Company Group", g.name, "group_name") return groups
def list_user_groups(user): valid_auth_code() groups = _list_user_groups(user) for g in groups: g.group_name = frappe.get_value("Cloud Company Group", g.name, "group_name") return groups
def list_iot_devices(user): frappe.logger(__name__).debug(_("List Devices for user {0}").format(user)) # Get Enteprise Devices ent_devices = [] groups = _list_user_groups(user) companies = list_user_companies(user) for g in groups: dev_list = [ d[0] for d in frappe.db.get_values("IOT Device", { "owner_id": g.name, "owner_type": "Cloud Company Group" }, "name") ] ent_devices.append({ "group": g.name, "devices": dev_list, "role": g.role }) # Get Shared Devices shd_devices = [] for shared_group in [ d[0] for d in frappe.db.get_values("IOT ShareGroupUser", {"user": user}, "parent") ]: # Make sure we will not having shared device from your company if frappe.get_value("IOT Share Group", shared_group, "company") in companies: continue role = frappe.get_value("IOT Share Group", shared_group, "role") dev_list = [] for dev in [ d[0] for d in frappe.db.get_values( "IOT ShareGroupDevice", {"parent": shared_group}, "device") ]: dev_list.append(dev) shd_devices.append({ "group": shared_group, "devices": dev_list, "role": role }) # Get Private Devices pri_devices = [ d[0] for d in frappe.db.get_values("IOT Device", { "owner_id": user, "owner_type": "User" }, "name") ] devices = { "company_devices": ent_devices, "private_devices": pri_devices, "shared_devices": shd_devices, } return devices
def list(): try: valid_auth_code() # frappe.logger(__name__).debug("List Devices for user {0}").format(user) # Get Enteprise Devices ent_devices = [] user = frappe.session.user groups = _list_user_groups(user) companies = list_user_companies(user) for g in groups: dev_list = [d[0] for d in frappe.db.get_values("IOT Device", { "owner_id": g.name, "owner_type": "Cloud Company Group" }, "name")] ent_devices.append({"group": g.name, "devices": dev_list, "role": g.role}) # Get Shared Devices shd_devices = [] for shared_group in [ d[0] for d in frappe.db.get_values("IOT ShareGroupUser", {"user": user}, "parent")]: # Make sure we will not having shared device from your company if frappe.get_value("IOT Share Group", shared_group, "company") in companies: continue role = frappe.get_value("IOT Share Group", shared_group, "role") dev_list = [] for dev in [d[0] for d in frappe.db.get_values("IOT ShareGroupDevice", {"parent": shared_group}, "device")]: dev_list.append(dev) shd_devices.append({"group": shared_group, "devices": dev_list, "role": role}) device_share_list = [] for d in frappe.db.get_values("IOT Device Share", {"share_to": user}, "name"): end_time = frappe.get_value("IOT Device Share", d[0], "end_time") if time_diff_in_seconds(end_time, get_datetime()) > 0: device_share_list.append(frappe.get_value("IOT Device Share", d[0], "device")) shd_devices.append({"group": "IOT Device Share", "devices": device_share_list, "role": 'Admin'}) # Get Private Devices pri_devices = [d[0] for d in frappe.db.get_values("IOT Device", {"owner_id": user, "owner_type": "User"}, "name")] devices = { "company_devices": ent_devices, "private_devices": pri_devices, "shared_devices": shd_devices, } frappe.response.update({ "ok": True, "data": devices }) except Exception as ex: frappe.response.update({ "ok": False, "error": str(ex) })