def list_user_groups(user, check_enable=True):
    groups = []
    appended_groups = []
    for d in frappe.db.get_values("Cloud Company GroupUser", {"user": user},
                                  ["parent", "role", "modified", "creation"]):
        if frappe.get_value("Cloud Company Group", d[0], "enabled"):
            groups.append(
                _dict({
                    "name": d[0],
                    "role": d[1],
                    "modified": d[2],
                    "creation": d[3],
                    "user": user
                }))
            appended_groups.append(d[0])
    for comp in list_admin_companies(user):
        for d in frappe.db.get_values("Cloud Company Group", {
                "company": comp,
                "enabled": 1
        }, "name"):
            if d[0] not in appended_groups:
                groups.append(
                    _dict({
                        "name": d[0],
                        "role": "Admin",
                        "user": user
                    }))

    return groups
Exemplo n.º 2
0
def remove(name):
	try:
		valid_auth_code()
		company = frappe.get_value("IOT Application Conf", name, "company")
		if not company:
			throw("application_not_found")

		if company not in list_admin_companies(frappe.session.user):
			throw("invalid_permission")

		if frappe.get_value("IOT Application Conf", name, "public") == 1:
			throw("public_application_conf_cannot_be_deleted!")

		doc = frappe.get_doc("IOT Application Conf", name)
		doc.clean_before_delete()
		frappe.delete_doc("IOT Application Conf", name)
		frappe.response.update({
			"ok": True,
			"message": "configuration_removed"
		})
	except Exception as ex:
		frappe.response.update({
			"ok": False,
			"error": str(ex)
		})
Exemplo n.º 3
0
def list():
    try:
        valid_auth_code()
        data = list_admin_companies(frappe.session.user)

        frappe.response.update({"ok": True, "data": data})
    except Exception as ex:
        frappe.response.update({"ok": False, "error": str(ex)})
def get_permission_query_conditions(user):
    if 'Cloud Manager' in frappe.get_roles(user):
        return ""

    ent_list = list_admin_companies(user)

    return """(`tabCloud Company Group`.company in ({user_ents}))""".format(
        user_ents='"' + '", "'.join(ent_list) + '"')
Exemplo n.º 5
0
def get_permission_query_conditions(user):
    if 'Cloud Manager' in frappe.get_roles(user):
        return ""
    from cloud.cloud.doctype.cloud_company.cloud_company import list_admin_companies

    ent_list = list_admin_companies(user)

    return """(`tabCloud Employee`.company in ({user_ents}))""".format(
        user_ents='"' + '", "'.join(ent_list) + '"')
Exemplo n.º 6
0
def list_admin_projects(user, check_enable=True):
    ent_list = list_admin_companies(user)
    if len(ent_list) == 0:
        return []
    filters = {"company": ["in", ent_list]}
    if check_enable:
        filters["enabled"] = 1
    return [
        d[0] for d in frappe.db.get_values("Cloud Project", filters=filters)
    ]
Exemplo n.º 7
0
def validate_owner(name):
    companies = list_admin_companies(frappe.session.user)
    user = frappe.get_value("IOT User Application", name, "on_behalf")
    if not user:
        throw("pusher_on_behalf_missing")
    company = frappe.get_value("Cloud Employee", user, "company")
    if not company:
        throw("pusher_on_behalf_user_company")
    if company not in companies:
        throw("pusher_not_yours")
Exemplo n.º 8
0
def is_user_in_group(group, user):
    if 'Company Admin' in frappe.get_roles(user):
        company = frappe.get_value("Cloud Company Group", group, "company")
        if company in list_admin_companies(user):
            return True

    if frappe.get_value("Cloud Company GroupUser", {
            "user": user,
            "parent": group
    }, "name"):
        return True
    return False
Exemplo n.º 9
0
def update():
    try:
        valid_auth_code()
        data = get_post_json_data()

        companies = list_admin_companies(frappe.session.user)
        if frappe.get_value("IOT Application", data.get('name'),
                            'company') not in companies:
            throw("invalid_permission")
        update_doc("IOT Application", data)
        frappe.response.update({"ok": True, "message": "application_updated"})
    except Exception as ex:
        frappe.response.update({"ok": False, "error": str(ex)})
Exemplo n.º 10
0
def get_permission_query_conditions(user):
    """
	Show devices for Company Administrator
	:param user: 
	:return: 
	"""
    if 'IOT Manager' in frappe.get_roles(user):
        return ""
    from cloud.cloud.doctype.cloud_company.cloud_company import list_admin_companies

    ent_list = list_admin_companies(user)

    return """(`tabIOT Device`.company in ({user_ents}))""".format(
        user_ents='"' + '", "'.join(ent_list) + '"')
Exemplo n.º 11
0
def list(conf_type='Template'):
	try:
		valid_auth_code()
		apps = []
		companies = list_admin_companies(frappe.session.user)
		filters = {"company": ["in", companies], "type": conf_type}
		for d in frappe.get_all("IOT Application Conf", "name", filters=filters, order_by="modified desc"):
			apps.append(as_dict(frappe.get_doc("IOT Application Conf", d.name)))

		frappe.response.update({
			"ok": True,
			"data": apps
		})
	except Exception as ex:
		frappe.response.update({
			"ok": False,
			"error": str(ex)
		})
Exemplo n.º 12
0
def get_project_list(doctype,
                     txt,
                     filters,
                     limit_start,
                     limit_page_length=20,
                     order_by="modified desc"):
    ent_list = list_admin_companies(frappe.session.user)

    return frappe.db.sql('''select *
		from `tabCloud Project`
		where
			company in {2}
			order by %(order_by)s
			limit {0}, {1}
		'''.format(limit_start, limit_page_length,
             "('" + "','".join(ent_list) + "')"), {'order_by': order_by},
                         as_dict=True,
                         update={'doctype': 'Cloud Project'})
Exemplo n.º 13
0
def list():
	try:
		valid_auth_code()
		data = []
		if 'Cloud Manager' in frappe.get_roles():
			data = [d[0] for d in frappe.db.get_values("Cloud Company", {"enabled": 1}, "name")]
		else:
			data = list_admin_companies(frappe.session.user)

		frappe.response.update({
			"ok": True,
			"data": data
		})
	except Exception as ex:
		frappe.response.update({
			"ok": False,
			"error": str(ex)
		})
Exemplo n.º 14
0
def list():
    try:
        valid_auth_code()
        apps = []
        companies = list_admin_companies(frappe.session.user)
        filters = {"company": ["in", companies]}

        for d in frappe.get_all("IOT Application",
                                "name",
                                filters=filters,
                                order_by="modified desc"):
            apps.append(
                get_doc_as_dict("IOT Application", d.name, include_tags=True))

        for app in apps:
            app.installed = frappe.get_value("IOT Application Counter",
                                             app.name, "installed") or 0

        frappe.response.update({"ok": True, "data": apps})
    except Exception as ex:
        frappe.response.update({"ok": False, "error": str(ex)})
Exemplo n.º 15
0
def list():
    try:
        if 'Company Admin' not in frappe.get_roles():
            throw("not_company_admin")

        companies = list_admin_companies(frappe.session.user)
        apps = []
        for d in frappe.get_all("IOT User Application", "name"):
            user = frappe.get_value("IOT User Application", d[0], "on_behalf")
            if not user:
                continue
            company = frappe.get_value("Cloud Employee", user, "company")
            if not company:
                continue
            if company in companies:
                apps.append(
                    as_dict(frappe.get_doc("IOT User Application", d.name)))

        frappe.response.update({"ok": True, "data": apps})
    except Exception as ex:
        frappe.response.update({"ok": False, "error": str(ex)})
Exemplo n.º 16
0
def is_company_admin(user, company):
    return company in list_admin_companies(user)