示例#1
0
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
示例#2
0
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
示例#3
0
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
示例#4
0
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)
		})