Просмотр исходного кода

rename page role to has role, added doctype custom role to set the roles, added screen to set roles to the page and report

version-14
Rohit Waghchaure 8 лет назад
Родитель
Сommit
cc37c5fda8
26 измененных файлов: 549 добавлений и 147 удалений
  1. +26
    -33
      frappe/boot.py
  2. +0
    -0
      frappe/core/doctype/custom_role/__init__.py
  3. +8
    -0
      frappe/core/doctype/custom_role/custom_role.js
  4. +145
    -0
      frappe/core/doctype/custom_role/custom_role.json
  5. +1
    -1
      frappe/core/doctype/custom_role/custom_role.py
  6. +12
    -0
      frappe/core/doctype/custom_role/test_custom_role.py
  7. +0
    -0
      frappe/core/doctype/custom_role_manager/__init__.py
  8. +18
    -0
      frappe/core/doctype/custom_role_manager/custom_role_manager.js
  9. +256
    -0
      frappe/core/doctype/custom_role_manager/custom_role_manager.json
  10. +44
    -0
      frappe/core/doctype/custom_role_manager/custom_role_manager.py
  11. +0
    -0
      frappe/core/doctype/has_role/__init__.py
  12. +6
    -3
      frappe/core/doctype/has_role/has_role.json
  13. +10
    -0
      frappe/core/doctype/has_role/has_role.py
  14. +2
    -13
      frappe/core/doctype/page/page.json
  15. +2
    -2
      frappe/core/doctype/page/page.py
  16. +0
    -1
      frappe/core/doctype/page_role/README.md
  17. +0
    -4
      frappe/core/doctype/page_role/__init__.py
  18. +0
    -10
      frappe/core/doctype/page_role/page_role.py
  19. +1
    -1
      frappe/core/doctype/report/report.json
  20. +2
    -2
      frappe/core/doctype/report/report.py
  21. +4
    -4
      frappe/core/doctype/report/test_report.py
  22. +0
    -70
      frappe/core/doctype/report_role/report_role.json
  23. +1
    -1
      frappe/custom/doctype/customize_form/customize_form.js
  24. +1
    -1
      frappe/desk/desk_page.py
  25. +1
    -1
      frappe/modules/import_file.py
  26. +9
    -0
      frappe/patches/v7_3/rename_page_role_to_has_role.py

+ 26
- 33
frappe/boot.py Просмотреть файл

@@ -91,49 +91,42 @@ def load_desktop_icons(bootinfo):
bootinfo.desktop_icons = get_desktop_icons()

def get_allowed_pages():
return get_user_page_or_report('Page')

def get_allowed_reports():
return get_user_page_or_report('Report')
def get_user_page_or_report(parent):
roles = frappe.get_roles()
page_info = {}
has_role = {}

for p in frappe.db.sql("""select distinct
tabPage.name, tabPage.modified, tabPage.title
from `tabPage Role`, `tabPage`
where `tabPage Role`.role in (%s)
and `tabPage Role`.parent = `tabPage`.name""" % ', '.join(['%s']*len(roles)),
tab{parent}.name, tab{parent}.modified
from `tabHas Role`, `tab{parent}`
where `tabHas Role`.role in ({roles})
and `tabHas Role`.parent = `tab{parent}`.name
""".format(parent=parent, roles = ', '.join(['%s']*len(roles))),
roles, as_dict=True):

page_info[p.name] = {"modified":p.modified, "title":p.title}

# pages where role is not set are also allowed
for p in frappe.db.sql("""select name, modified, title
from `tabPage` where
(select count(*) from `tabPage Role`
where `tabPage Role`.parent=tabPage.name) = 0""", as_dict=1):

page_info[p.name] = {"modified":p.modified, "title":p.title}
has_role[p.name] = {"modified":p.modified}

return page_info
# pages or reports where role is not set are also allowed
for p in frappe.db.sql("""select name, modified
from `tab{parent}` where
(select count(*) from `tabHas Role`
where `tabHas Role`.parent=tab{parent}.name) = 0""".format(parent=parent), as_dict=1):

def get_allowed_reports():
roles = frappe.get_roles()
report_info = frappe._dict()

for d in frappe.db.sql("""select distinct
tabReport.name, tabReport.report_type, tabReport.ref_doctype
from `tabReport Role`, `tabReport`
where `tabReport Role`.role in (%s)
and `tabReport Role`.parent = `tabReport`.name""" % ', '.join(['%s']*len(roles)),
roles, as_dict=True):
has_role[p.name] = {"modified":p.modified}

report_info[d.name] = d
# get pages or reports set on custom role
for p in frappe.db.sql("""select {field} as name, modified
from `tabCustom Role` where
{field} is not null and role in ({roles})
""".format(field=parent.lower(), roles = ', '.join(['%s']*len(roles))), roles, as_dict=1):

# reports where role is not set are also allowed
for d in frappe.db.sql("""select name, report_type, ref_doctype
from `tabReport` where
(select count(*) from `tabReport Role`
where `tabReport Role`.parent=tabReport.name) = 0""", as_dict=1):
has_role[p.name] = {"modified":p.modified}

report_info[d.name] = d
return report_info
return has_role

def load_translations(bootinfo):
messages = frappe.get_lang_dict("boot")


frappe/core/doctype/report_role/__init__.py → frappe/core/doctype/custom_role/__init__.py Просмотреть файл


+ 8
- 0
frappe/core/doctype/custom_role/custom_role.js Просмотреть файл

@@ -0,0 +1,8 @@
// Copyright (c) 2016, Frappe Technologies and contributors
// For license information, please see license.txt

frappe.ui.form.on('Custom Role', {
refresh: function(frm) {

}
});

+ 145
- 0
frappe/core/doctype/custom_role/custom_role.json Просмотреть файл

@@ -0,0 +1,145 @@
{
"allow_copy": 0,
"allow_import": 1,
"allow_rename": 0,
"autoname": "hash",
"beta": 0,
"creation": "2017-02-13 14:53:36.240122",
"custom": 0,
"docstatus": 0,
"doctype": "DocType",
"document_type": "",
"editable_grid": 1,
"engine": "InnoDB",
"fields": [
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "role",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Role",
"length": 0,
"no_copy": 0,
"options": "Role",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "page",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Page",
"length": 0,
"no_copy": 0,
"options": "Page",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "report",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Report",
"length": 0,
"no_copy": 0,
"options": "Report",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
}
],
"hide_heading": 0,
"hide_toolbar": 0,
"idx": 0,
"image_view": 0,
"in_create": 0,
"in_dialog": 0,
"is_submittable": 0,
"issingle": 0,
"istable": 0,
"max_attachments": 0,
"modified": "2017-02-13 14:53:36.240122",
"modified_by": "Administrator",
"module": "Core",
"name": "Custom Role",
"name_case": "",
"owner": "Administrator",
"permissions": [
{
"amend": 0,
"apply_user_permissions": 0,
"cancel": 0,
"create": 1,
"delete": 1,
"email": 1,
"export": 1,
"if_owner": 0,
"import": 0,
"permlevel": 0,
"print": 1,
"read": 1,
"report": 1,
"role": "System Manager",
"set_user_permissions": 0,
"share": 1,
"submit": 0,
"write": 1
}
],
"quick_entry": 0,
"read_only": 1,
"read_only_onload": 0,
"sort_field": "modified",
"sort_order": "DESC",
"track_changes": 0,
"track_seen": 0
}

frappe/core/doctype/report_role/report_role.py → frappe/core/doctype/custom_role/custom_role.py Просмотреть файл

@@ -6,5 +6,5 @@ from __future__ import unicode_literals
import frappe
from frappe.model.document import Document

class ReportRole(Document):
class CustomRole(Document):
pass

+ 12
- 0
frappe/core/doctype/custom_role/test_custom_role.py Просмотреть файл

@@ -0,0 +1,12 @@
# -*- coding: utf-8 -*-
# Copyright (c) 2015, Frappe Technologies and Contributors
# See license.txt
from __future__ import unicode_literals

import frappe
import unittest

# test_records = frappe.get_test_records('Custom Role')

class TestCustomRole(unittest.TestCase):
pass

+ 0
- 0
frappe/core/doctype/custom_role_manager/__init__.py Просмотреть файл


+ 18
- 0
frappe/core/doctype/custom_role_manager/custom_role_manager.js Просмотреть файл

@@ -0,0 +1,18 @@
// Copyright (c) 2016, Frappe Technologies and contributors
// For license information, please see license.txt

frappe.ui.form.on('Custom Role Manager', {
refresh: function(frm) {
frm.disable_save();
},

get_roles: function(frm) {
frappe.call({
method: "get_custom_roles",
doc: frm.doc,
callback: function(r) {
refresh_field('roles')
}
})
}
});

+ 256
- 0
frappe/core/doctype/custom_role_manager/custom_role_manager.json Просмотреть файл

@@ -0,0 +1,256 @@
{
"allow_copy": 0,
"allow_import": 0,
"allow_rename": 0,
"beta": 0,
"creation": "2017-02-13 17:33:25.157332",
"custom": 0,
"docstatus": 0,
"doctype": "DocType",
"document_type": "",
"editable_grid": 1,
"engine": "InnoDB",
"fields": [
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "set_role_for",
"fieldtype": "Select",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Set Role For",
"length": 0,
"no_copy": 0,
"options": "\nPage\nReport",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"depends_on": "eval:doc.set_role_for == 'Page'",
"fieldname": "page",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Page",
"length": 0,
"no_copy": 0,
"options": "Page",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"depends_on": "eval:doc.set_role_for == 'Report'",
"fieldname": "report",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Report",
"length": 0,
"no_copy": 0,
"options": "Report",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "get_roles",
"fieldtype": "Button",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Get Roles",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "roles_permission",
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Roles Permission",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "roles",
"fieldtype": "Table",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Roles",
"length": 0,
"no_copy": 0,
"options": "Has Role",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "update",
"fieldtype": "Button",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Update",
"length": 0,
"no_copy": 0,
"options": "set_custom_roles",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
}
],
"hide_heading": 0,
"hide_toolbar": 0,
"idx": 0,
"image_view": 0,
"in_create": 0,
"in_dialog": 0,
"is_submittable": 0,
"issingle": 1,
"istable": 0,
"max_attachments": 0,
"modified": "2017-02-13 19:52:03.288983",
"modified_by": "Administrator",
"module": "Core",
"name": "Custom Role Manager",
"name_case": "",
"owner": "Administrator",
"permissions": [
{
"amend": 0,
"apply_user_permissions": 0,
"cancel": 0,
"create": 1,
"delete": 1,
"email": 1,
"export": 0,
"if_owner": 0,
"import": 0,
"permlevel": 0,
"print": 1,
"read": 1,
"report": 0,
"role": "System Manager",
"set_user_permissions": 0,
"share": 1,
"submit": 0,
"write": 1
}
],
"quick_entry": 1,
"read_only": 0,
"read_only_onload": 0,
"sort_field": "modified",
"sort_order": "DESC",
"track_changes": 0,
"track_seen": 0
}

+ 44
- 0
frappe/core/doctype/custom_role_manager/custom_role_manager.py Просмотреть файл

@@ -0,0 +1,44 @@
# -*- coding: utf-8 -*-
# Copyright (c) 2015, Frappe Technologies and contributors
# For license information, please see license.txt

from __future__ import unicode_literals
import frappe
from frappe import _
from frappe.model.document import Document

class CustomRoleManager(Document):
def get_custom_roles(self):
args = self.get_args()
self.set('roles', [])
for data in frappe.get_all('Custom Role',
filters=args, fields=['role', 'page', 'report']):
self.append('roles', {
'report': data.report,
'page': data.page,
'role': data.role
})

def set_custom_roles(self):
for d in self.roles:
args = self.get_args(d)
name = frappe.db.get_value('Custom Role', args, "role")
if not name:
args.update({'doctype': "Custom Role"})
self.make_custom_role(args)
frappe.msgprint(_("Successfully Updated"))

def get_args(self, row=None):
args = {}
name = self.page if self.set_role_for == 'Page' else self.report
check_for = self.set_role_for.replace(" ","_").lower()
args = {check_for: name}
if row:
args.update({'role': row.role})

return args

def make_custom_role(self, args):
frappe.get_doc(args).insert()

+ 0
- 0
frappe/core/doctype/has_role/__init__.py Просмотреть файл


frappe/core/doctype/page_role/page_role.json → frappe/core/doctype/has_role/has_role.json Просмотреть файл

@@ -14,13 +14,14 @@
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "role",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"in_standard_filter": 0,
"label": "Role",
"length": 0,
"no_copy": 0,
@@ -31,6 +32,7 @@
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
@@ -48,14 +50,15 @@
"issingle": 0,
"istable": 1,
"max_attachments": 0,
"modified": "2016-07-11 03:28:03.281497",
"modified": "2017-02-13 14:00:08.116312",
"modified_by": "Administrator",
"module": "Core",
"name": "Page Role",
"name": "Has Role",
"owner": "Administrator",
"permissions": [],
"quick_entry": 0,
"read_only": 0,
"read_only_onload": 0,
"track_changes": 0,
"track_seen": 0
}

+ 10
- 0
frappe/core/doctype/has_role/has_role.py Просмотреть файл

@@ -0,0 +1,10 @@
# -*- coding: utf-8 -*-
# Copyright (c) 2015, Frappe Technologies and contributors
# For license information, please see license.txt

from __future__ import unicode_literals
import frappe
from frappe.model.document import Document

class HasRole(Document):
pass

+ 2
- 13
frappe/core/doctype/page/page.json Просмотреть файл

@@ -21,7 +21,6 @@
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Page HTML",
@@ -49,7 +48,6 @@
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"in_standard_filter": 0,
"label": "Page Name",
@@ -78,7 +76,6 @@
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"in_standard_filter": 0,
"label": "Title",
@@ -105,7 +102,6 @@
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"in_standard_filter": 0,
"label": "icon",
@@ -132,7 +128,6 @@
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"length": 0,
@@ -158,7 +153,6 @@
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"in_standard_filter": 1,
"label": "Module",
@@ -188,7 +182,6 @@
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Standard",
@@ -218,7 +211,6 @@
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"length": 0,
@@ -244,7 +236,6 @@
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Roles",
@@ -252,7 +243,7 @@
"no_copy": 0,
"oldfieldname": "roles",
"oldfieldtype": "Table",
"options": "Page Role",
"options": "Has Role",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
@@ -276,7 +267,7 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
"modified": "2016-12-29 14:40:09.047100",
"modified": "2017-02-13 13:58:37.481593",
"modified_by": "Administrator",
"module": "Core",
"name": "Page",
@@ -292,7 +283,6 @@
"export": 0,
"if_owner": 0,
"import": 0,
"is_custom": 0,
"permlevel": 0,
"print": 1,
"read": 1,
@@ -313,7 +303,6 @@
"export": 0,
"if_owner": 0,
"import": 0,
"is_custom": 0,
"permlevel": 0,
"print": 1,
"read": 1,


+ 2
- 2
frappe/core/doctype/page/page.py Просмотреть файл

@@ -72,10 +72,10 @@ class Page(Document):
return d

def is_permitted(self):
"""Returns true if Page Role is not set or the user is allowed."""
"""Returns true if Has Role is not set or the user is allowed."""
from frappe.utils import has_common

allowed = [d.role for d in frappe.get_all("Page Role", fields=["role"],
allowed = [d.role for d in frappe.get_all("Has Role", fields=["role"],
filters={"parent": self.name})]

if not allowed:


+ 0
- 1
frappe/core/doctype/page_role/README.md Просмотреть файл

@@ -1 +0,0 @@
Role that has access to parent Page

+ 0
- 4
frappe/core/doctype/page_role/__init__.py Просмотреть файл

@@ -1,4 +0,0 @@
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
# MIT License. See license.txt

from __future__ import unicode_literals

+ 0
- 10
frappe/core/doctype/page_role/page_role.py Просмотреть файл

@@ -1,10 +0,0 @@
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
# MIT License. See license.txt

from __future__ import unicode_literals
import frappe

from frappe.model.document import Document

class PageRole(Document):
pass

+ 1
- 1
frappe/core/doctype/report/report.json Просмотреть файл

@@ -457,7 +457,7 @@
"label": "Roles",
"length": 0,
"no_copy": 0,
"options": "Report Role",
"options": "Has Role",
"permlevel": 0,
"precision": "",
"print_hide": 0,


+ 2
- 2
frappe/core/doctype/report/report.py Просмотреть файл

@@ -46,10 +46,10 @@ class Report(Document):
self.set('roles', roles)

def is_permitted(self):
"""Returns true if Page Role is not set or the user is allowed."""
"""Returns true if Has Role is not set or the user is allowed."""
from frappe.utils import has_common

allowed = [d.role for d in frappe.get_all("Report Role", fields=["role"],
allowed = [d.role for d in frappe.get_all("Has Role", fields=["role"],
filters={"parent": self.name})]

if not allowed:


+ 4
- 4
frappe/core/doctype/report/test_report.py Просмотреть файл

@@ -30,12 +30,12 @@ class TestReport(unittest.TestCase):

def test_report_permisisons(self):
frappe.db.sql("""delete from `tabUserRole` where parent = %s
and role = 'Test Report Role'""", frappe.session.user, auto_commit=1)
and role = 'Test Has Role'""", frappe.session.user, auto_commit=1)

if not frappe.db.exists('Role', 'Test Report Role'):
if not frappe.db.exists('Role', 'Test Has Role'):
role = frappe.get_doc({
'doctype': 'Role',
'role_name': 'Test Report Role'
'role_name': 'Test Has Role'
}).insert(ignore_permissions=True)

if not frappe.db.exists("Report", "Test Report"):
@@ -46,7 +46,7 @@ class TestReport(unittest.TestCase):
'report_type': 'Query Report',
'is_standard': 'No',
'roles': [
{'role': 'Test Report Role'}
{'role': 'Test Has Role'}
]
}).insert(ignore_permissions=True)
else:


+ 0
- 70
frappe/core/doctype/report_role/report_role.json Просмотреть файл

@@ -1,70 +0,0 @@
{
"allow_copy": 0,
"allow_import": 0,
"allow_rename": 0,
"autoname": "hash",
"beta": 0,
"creation": "2017-02-09 16:10:53.284047",
"custom": 0,
"docstatus": 0,
"doctype": "DocType",
"document_type": "",
"editable_grid": 1,
"engine": "InnoDB",
"fields": [
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "role",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_list_view": 1,
"in_standard_filter": 0,
"label": "Role",
"length": 0,
"no_copy": 0,
"oldfieldname": "role",
"oldfieldtype": "Link",
"options": "Role",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
}
],
"hide_heading": 0,
"hide_toolbar": 0,
"idx": 0,
"image_view": 0,
"in_create": 0,
"in_dialog": 0,
"is_submittable": 0,
"issingle": 0,
"istable": 1,
"max_attachments": 0,
"modified": "2017-02-09 16:10:53.284047",
"modified_by": "Administrator",
"module": "Core",
"name": "Report Role",
"name_case": "",
"owner": "Administrator",
"permissions": [],
"quick_entry": 0,
"read_only": 0,
"read_only_onload": 0,
"sort_field": "modified",
"sort_order": "DESC",
"track_changes": 1,
"track_seen": 0
}

+ 1
- 1
frappe/custom/doctype/customize_form/customize_form.js Просмотреть файл

@@ -17,7 +17,7 @@ frappe.ui.form.on("Customize Form", {
['DocType', 'issingle', '=', 0],
['DocType', 'custom', '=', 0],
['DocType', 'name', 'not in', 'DocType, DocField, DocPerm, User, Role, UserRole, \
Page, Page Role, Module Def, Print Format, Report, Customize Form, \
Page, Has Role, Module Def, Print Format, Report, Customize Form, \
Customize Form Field']
]
};


+ 1
- 1
frappe/desk/desk_page.py Просмотреть файл

@@ -53,5 +53,5 @@ def has_permission(page):
# check if there are any user_permissions
return False
else:
# hack for home pages! if no page roles, allow everyone to see!
# hack for home pages! if no Has Roles, allow everyone to see!
return True

+ 1
- 1
frappe/modules/import_file.py Просмотреть файл

@@ -89,7 +89,7 @@ ignore_values = {
"Print Format": ["disabled"]
}

ignore_doctypes = ["Page Role"]
ignore_doctypes = ["Has Role"]

def import_doc(docdict, force=False, data_import=False, pre_process=None,
ignore_version=None, reset_permissions=False):


+ 9
- 0
frappe/patches/v7_3/rename_page_role_to_has_role.py Просмотреть файл

@@ -0,0 +1,9 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt

from __future__ import unicode_literals
import frappe

def execute():
if not frappe.db.exists('DocType', 'Has Role'):
frappe.rename_doc('DocType', 'Page Role', 'Has Role')

Загрузка…
Отмена
Сохранить