示例#1
0
    def __init__(self, page_name):
        self.page_name = page_name
        self.extended_cards = []
        self.extended_charts = []
        self.extended_shortcuts = []

        self.user = frappe.get_user()
        self.allowed_modules = self.get_cached_value('user_allowed_modules',
                                                     self.get_allowed_modules)
        self.doc = self.get_page_for_user()

        if self.doc.module not in self.allowed_modules:
            raise frappe.PermissionError

        self.can_read = self.get_cached_value('user_perm_can_read',
                                              self.get_can_read_items)

        self.allowed_pages = get_allowed_pages(cache=True)
        self.allowed_reports = get_allowed_reports(cache=True)
        self.onboarding_doc = self.get_onboarding_doc()
        self.onboarding = None

        self.table_counts = get_table_with_counts()
        self.restricted_doctypes = frappe.cache().get_value(
            "domain_restricted_doctypes"
        ) or build_domain_restriced_doctype_cache()
        self.restricted_pages = frappe.cache().get_value(
            "domain_restricted_pages") or build_domain_restriced_page_cache()
示例#2
0
def filter_by_restrict_to_domain(data):
	""" filter Pages and DocType depending on the Active Module(s) """
	doctypes = frappe.cache().get_value("domain_restricted_doctypes") or build_domain_restriced_doctype_cache()
	pages = frappe.cache().get_value("domain_restricted_pages") or build_domain_restriced_page_cache()

	for d in data:
		_items = []
		for item in d.get("items", []):

			item_type = item.get("type")
			item_name = item.get("name")

			if (item_name in pages) or (item_name in doctypes) or item_type == 'report':
				_items.append(item)

		d.update({ "items": _items })

	return data
示例#3
0
    def __init__(self, page, minimal=False):
        self.page_name = page.get('name')
        self.page_title = page.get('title')
        self.public_page = page.get('public')
        self.extended_links = []
        self.extended_charts = []
        self.extended_shortcuts = []
        self.workspace_manager = "Workspace Manager" in frappe.get_roles()

        self.user = frappe.get_user()
        self.allowed_modules = self.get_cached('user_allowed_modules',
                                               self.get_allowed_modules)

        self.doc = frappe.get_cached_doc("Workspace", self.page_name)

        if self.doc and self.doc.module and self.doc.module not in self.allowed_modules and not self.workspace_manager:
            raise frappe.PermissionError

        self.can_read = self.get_cached('user_perm_can_read',
                                        self.get_can_read_items)

        self.allowed_pages = get_allowed_pages(cache=True)
        self.allowed_reports = get_allowed_reports(cache=True)

        if not minimal:
            if self.doc.content:
                self.onboarding_list = [
                    x['data']['onboarding_name']
                    for x in loads(self.doc.content)
                    if x['type'] == 'onboarding'
                ]
            self.onboardings = []

            self.table_counts = get_table_with_counts()
        self.restricted_doctypes = frappe.cache().get_value(
            "domain_restricted_doctypes"
        ) or build_domain_restriced_doctype_cache()
        self.restricted_pages = frappe.cache().get_value(
            "domain_restricted_pages") or build_domain_restriced_page_cache()