Bläddra i källkod

Fixes in Print, Test Cases, Permissions

version-14
Anand Doshi 11 år sedan
förälder
incheckning
98ad3c41b4
6 ändrade filer med 26 tillägg och 25 borttagningar
  1. +1
    -1
      frappe/core/doctype/communication/communication.py
  2. +18
    -18
      frappe/core/page/user_properties/user_properties.py
  3. +2
    -1
      frappe/permissions.py
  4. +1
    -1
      frappe/templates/pages/website_script.js
  5. +3
    -3
      frappe/website/doctype/blog_post/blog_post.json
  6. +1
    -1
      frappe/website/doctype/blog_post/test_blog_post.py

+ 1
- 1
frappe/core/doctype/communication/communication.py Visa fil

@@ -118,7 +118,7 @@ def send_comm_email(d, name, sent_via=None, print_html=None, attachments='[]', s
footer = set_portal_link(sent_via, d) footer = set_portal_link(sent_via, d)


send_print_in_body = frappe.db.get_value("Outgoing Email Settings", None, "send_print_in_body_and_attachment") send_print_in_body = frappe.db.get_value("Outgoing Email Settings", None, "send_print_in_body_and_attachment")
if not send_print_in_body:
if print_html and not send_print_in_body:
d.content += "<p>Please see attachment for document details.</p>" d.content += "<p>Please see attachment for document details.</p>"


mail = get_email(d.recipients, sender=d.sender, subject=d.subject, mail = get_email(d.recipients, sender=d.sender, subject=d.subject,


+ 18
- 18
frappe/core/page/user_properties/user_properties.py Visa fil

@@ -18,17 +18,17 @@ def get_users_and_links():
def get_properties(parent=None, defkey=None, defvalue=None): def get_properties(parent=None, defkey=None, defvalue=None):
if defkey and not frappe.permissions.can_restrict(defkey, defvalue): if defkey and not frappe.permissions.can_restrict(defkey, defvalue):
raise frappe.PermissionError raise frappe.PermissionError
conditions, values = _build_conditions(locals()) conditions, values = _build_conditions(locals())
properties = frappe.db.sql("""select name, parent, defkey, defvalue
properties = frappe.db.sql("""select name, parent, defkey, defvalue
from tabDefaultValue from tabDefaultValue
where parent not in ('__default', '__global') where parent not in ('__default', '__global')
and substr(defkey,1,1)!='_' and substr(defkey,1,1)!='_'
and parenttype='Restriction' and parenttype='Restriction'
{conditions} {conditions}
order by parent, defkey""".format(conditions=conditions), values, as_dict=True) order by parent, defkey""".format(conditions=conditions), values, as_dict=True)
if not defkey: if not defkey:
out = [] out = []
doctypes = get_restrictable_doctypes() doctypes = get_restrictable_doctypes()
@@ -36,9 +36,9 @@ def get_properties(parent=None, defkey=None, defvalue=None):
if p.defkey in doctypes: if p.defkey in doctypes:
out.append(p) out.append(p)
properties = out properties = out
return properties return properties
def _build_conditions(filters): def _build_conditions(filters):
conditions = [] conditions = []
values = {} values = {}
@@ -46,7 +46,7 @@ def _build_conditions(filters):
if filters.get(key): if filters.get(key):
conditions.append("and `{key}`=%({key})s".format(key=key)) conditions.append("and `{key}`=%({key})s".format(key=key))
values[key] = value values[key] = value
return "\n".join(conditions), values return "\n".join(conditions), values


@frappe.whitelist() @frappe.whitelist()
@@ -54,35 +54,35 @@ def remove(user, name, defkey, defvalue):
if not frappe.permissions.can_restrict_user(user, defkey, defvalue): if not frappe.permissions.can_restrict_user(user, defkey, defvalue):
raise frappe.PermissionError("Cannot Remove Restriction for User: {user} on DocType: {doctype} and Name: {name}".format( raise frappe.PermissionError("Cannot Remove Restriction for User: {user} on DocType: {doctype} and Name: {name}".format(
user=user, doctype=defkey, name=defvalue)) user=user, doctype=defkey, name=defvalue))
frappe.defaults.clear_default(name=name)
frappe.defaults.clear_default(key=defkey, value=defvalue, parent=user, name=name)
def clear_restrictions(doctype): def clear_restrictions(doctype):
frappe.defaults.clear_default(parenttype="Restriction", key=doctype) frappe.defaults.clear_default(parenttype="Restriction", key=doctype)
@frappe.whitelist() @frappe.whitelist()
def add(user, defkey, defvalue): def add(user, defkey, defvalue):
if not frappe.permissions.can_restrict_user(user, defkey, defvalue): if not frappe.permissions.can_restrict_user(user, defkey, defvalue):
raise frappe.PermissionError("Cannot Restrict User: {user} for DocType: {doctype} and Name: {name}".format( raise frappe.PermissionError("Cannot Restrict User: {user} for DocType: {doctype} and Name: {name}".format(
user=user, doctype=defkey, name=defvalue)) user=user, doctype=defkey, name=defvalue))
# check if already exists # check if already exists
d = frappe.db.sql("""select name from tabDefaultValue
d = frappe.db.sql("""select name from tabDefaultValue
where parent=%s and parenttype='Restriction' and defkey=%s and defvalue=%s""", (user, defkey, defvalue)) where parent=%s and parenttype='Restriction' and defkey=%s and defvalue=%s""", (user, defkey, defvalue))
if not d: if not d:
frappe.defaults.add_default(defkey, defvalue, user, "Restriction") frappe.defaults.add_default(defkey, defvalue, user, "Restriction")
def get_restrictable_doctypes(): def get_restrictable_doctypes():
user_roles = frappe.get_roles() user_roles = frappe.get_roles()
condition = "" condition = ""
values = [] values = []
if "System Manager" not in user_roles: if "System Manager" not in user_roles:
condition = """and exists(select `tabDocPerm`.name from `tabDocPerm`
condition = """and exists(select `tabDocPerm`.name from `tabDocPerm`
where `tabDocPerm`.parent=`tabDocType`.name and `tabDocPerm`.`restrict`=1 where `tabDocPerm`.parent=`tabDocType`.name and `tabDocPerm`.`restrict`=1
and `tabDocPerm`.role in ({roles}))""".format(roles=", ".join(["%s"]*len(user_roles))) and `tabDocPerm`.role in ({roles}))""".format(roles=", ".join(["%s"]*len(user_roles)))
values = user_roles values = user_roles
return frappe.db.sql_list("""select name from tabDocType
return frappe.db.sql_list("""select name from tabDocType
where ifnull(issingle,0)=0 and ifnull(istable,0)=0 {condition}""".format(condition=condition), where ifnull(issingle,0)=0 and ifnull(istable,0)=0 {condition}""".format(condition=condition),
tuple(values)) tuple(values))

+ 2
- 1
frappe/permissions.py Visa fil

@@ -71,11 +71,12 @@ def has_unrestricted_access(doc, verbose=True):
restrictions = get_restrictions() restrictions = get_restrictions()


meta = frappe.get_meta(doc.get("doctype")) meta = frappe.get_meta(doc.get("doctype"))
user_perms = get_user_perms(meta)
if get_user_perms(meta).restricted: if get_user_perms(meta).restricted:
if doc.owner == frappe.session.user: if doc.owner == frappe.session.user:
# owner is always allowed for restricted permissions # owner is always allowed for restricted permissions
return True return True
elif not restrictions:
elif not (restrictions and restrictions.get(doc.get("doctype"))):
return False return False
else: else:
if not restrictions: if not restrictions:


+ 1
- 1
frappe/templates/pages/website_script.js Visa fil

@@ -10,4 +10,4 @@ m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
ga('create', '{{ google_analytics_id }}', 'auto'); ga('create', '{{ google_analytics_id }}', 'auto');
ga('send', 'pageview'); ga('send', 'pageview');
<!-- End Google Analytics --> <!-- End Google Analytics -->
{%- endif %}
{%- endif %}

+ 3
- 3
frappe/website/doctype/blog_post/blog_post.json Visa fil

@@ -1,7 +1,7 @@
{ {
"allow_attach": 1, "allow_attach": 1,
"allow_import": 1, "allow_import": 1,
"creation": "2013-03-28 10:35:30.000000",
"creation": "2013-03-28 10:35:30",
"docstatus": 0, "docstatus": 0,
"doctype": "DocType", "doctype": "DocType",
"fields": [ "fields": [
@@ -95,7 +95,7 @@
"icon": "icon-quote-left", "icon": "icon-quote-left",
"idx": 1, "idx": 1,
"max_attachments": 5, "max_attachments": 5,
"modified": "2014-02-20 12:55:07.000000",
"modified": "2014-05-05 04:00:24.210166",
"modified_by": "Administrator", "modified_by": "Administrator",
"module": "Website", "module": "Website",
"name": "Blog Post", "name": "Blog Post",
@@ -104,7 +104,7 @@
{ {
"cancel": 0, "cancel": 0,
"create": 1, "create": 1,
"delete": 0,
"delete": 1,
"email": 1, "email": 1,
"permlevel": 0, "permlevel": 0,
"print": 1, "print": 1,


+ 1
- 1
frappe/website/doctype/blog_post/test_blog_post.py Visa fil

@@ -105,7 +105,7 @@ class TestBlogPost(unittest.TestCase):
self.assertRaises(frappe.PermissionError, add, self.assertRaises(frappe.PermissionError, add,
"test2@example.com", "Blog Post", "_test-blog-post") "test2@example.com", "Blog Post", "_test-blog-post")


def test_not_allowed_to_restrict(self):
def test_not_allowed_on_restrict(self):
self.add_restriction_to_user2() self.add_restriction_to_user2()


frappe.set_user("test2@example.com") frappe.set_user("test2@example.com")


Laddar…
Avbryt
Spara