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()
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
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()