Browse Source

Make is mandatory for a permission on doctype creation

version-14
Anand Doshi 11 years ago
committed by Pratik Vyas
parent
commit
aba484dd15
3 changed files with 18 additions and 15 deletions
  1. +4
    -2
      frappe/core/doctype/docfield/docfield.json
  2. +3
    -3
      frappe/core/doctype/doctype/doctype.json
  3. +11
    -10
      frappe/core/doctype/doctype/doctype.py

+ 4
- 2
frappe/core/doctype/docfield/docfield.json View File

@@ -1,7 +1,7 @@
{
"allow_copy": 0,
"autoname": "FL.#####",
"creation": "2013-02-22 01:27:33.000000",
"creation": "2013-02-22 01:27:33",
"docstatus": 0,
"doctype": "DocType",
"fields": [
@@ -26,6 +26,7 @@
"width": "163"
},
{
"default": "Data",
"fieldname": "fieldtype",
"fieldtype": "Select",
"hidden": 0,
@@ -303,10 +304,11 @@
"in_dialog": 1,
"issingle": 0,
"istable": 1,
"modified": "2014-03-05 14:58:43.000000",
"modified": "2014-04-24 15:56:23.561687",
"modified_by": "Administrator",
"module": "Core",
"name": "DocField",
"owner": "Administrator",
"permissions": [],
"read_only": 0
}

+ 3
- 3
frappe/core/doctype/doctype/doctype.json View File

@@ -2,7 +2,7 @@
"allow_attach": 0,
"allow_copy": 0,
"autoname": "Prompt",
"creation": "2013-02-18 13:36:19.000000",
"creation": "2013-02-18 13:36:19",
"custom": 0,
"description": "DocType is a Table / Form in the application.",
"docstatus": 0,
@@ -108,7 +108,7 @@
"oldfieldtype": "Table",
"options": "DocField",
"permlevel": 0,
"reqd": 0,
"reqd": 1,
"search_index": 0
},
{
@@ -326,7 +326,7 @@
"idx": 1,
"issingle": 0,
"istable": 0,
"modified": "2014-01-27 11:57:14.000000",
"modified": "2014-04-24 15:55:05.094304",
"modified_by": "Administrator",
"module": "Core",
"name": "DocType",


+ 11
- 10
frappe/core/doctype/doctype/doctype.py View File

@@ -22,7 +22,8 @@ class DocType(Document):
self.scrub_field_names()
self.validate_title_field()
validate_fields(self.get("fields"))
validate_permissions(self.get("permissions"))
if not self.istable:
validate_permissions(self)
self.make_amendable()
self.check_link_replacement_error()

@@ -216,17 +217,17 @@ def validate_fields(fields):
check_min_items_in_list(fields)

def validate_permissions_for_doctype(doctype, for_remove=False):
validate_permissions(frappe.get_meta(doctype, cached=False).get("permissions"), for_remove)
validate_permissions(frappe.get_doc(doctype), for_remove)

def validate_permissions(permissions, for_remove=False):
doctype = permissions and permissions[0].parent
def validate_permissions(doctype, for_remove=False):
permissions = doctype.get("permissions")
if not permissions:
frappe.throw(_('Enter at least one permission row'), frappe.MandatoryError)
issingle = issubmittable = isimportable = False
values = frappe.db.get_value("DocType", doctype,
["issingle", "is_submittable", "allow_import"], as_dict=True)
if values:
issingle = cint(values.issingle)
issubmittable = cint(values.is_submittable)
isimportable = cint(values.allow_import)
if doctype:
issingle = cint(doctype.issingle)
issubmittable = cint(doctype.is_submittable)
isimportable = cint(doctype.allow_import)

def get_txt(d):
return _("For {0} at level {1} in {2} in row {3}").format(d.role, d.permlevel, d.parent, d.idx)


Loading…
Cancel
Save