Merge branch 'staging-fixes' into staging

This commit is contained in:
Ameya Shenoy 2018-10-11 06:55:08 +00:00
commit 472d6a50de
No known key found for this signature in database
GPG key ID: AC016A555657D0A3
7 changed files with 43 additions and 23 deletions

View file

@ -17,7 +17,7 @@ from faker import Faker
from .exceptions import *
from .utils.jinja import (get_jenv, get_template, render_template, get_email_from_template, get_jloader)
__version__ = '10.1.50'
__version__ = '10.1.51'
__title__ = "Frappe Framework"
local = Local()

View file

@ -36,7 +36,7 @@ class PreparedReport(Document):
def run_background(instance):
report = frappe.get_doc("Report", instance.ref_report_doctype)
result = generate_report_result(report, filters=json.loads(instance.filters), user=instance.owner)
create_csv_file(remove_header_meta(result['columns']), result['result'], 'Prepared Report', instance.name)
create_csv_file(result['columns'], result['result'], 'Prepared Report', instance.name)
instance.status = "Completed"
instance.report_end_time = frappe.utils.now()
@ -59,7 +59,25 @@ def remove_header_meta(columns):
def create_csv_file(columns, data, dt, dn):
csv_filename = '{0}.csv'.format(frappe.utils.data.format_datetime(frappe.utils.now(), "Y-m-d-H:M"))
rows = [tuple(columns)] + data
rows = []
if data:
columns_without_meta = remove_header_meta(columns)
row = data[0]
if type(row) == list:
rows = [tuple(columns_without_meta)] + data
else:
for row in data:
new_row = []
for col in columns:
key = col.get('fieldname') or col.get('label')
new_row.append(frappe.format(row.get(key, ''), col))
rows.append(new_row)
rows = [tuple(columns_without_meta)] + rows
encoded = base64.b64encode(frappe.safe_encode(to_csv(rows)))
# Call save_file function to upload and attach the file
save_file(

View file

@ -797,24 +797,17 @@ def sign_up(email, full_name, redirect_to):
return 2, _("Please ask your administrator to verify your sign-up")
@frappe.whitelist(allow_guest=True)
def reset_password(user, send_email=True):
def reset_password(user):
if user=="Administrator":
return 'not allowed'
if isinstance(send_email, unicode) or isinstance(send_email, basestring):
if send_email=='false':
send_email = False
try:
user = frappe.get_doc("User", user)
if not user.enabled:
return 'disabled'
user.validate_reset_password()
link = user.reset_password(send_email=send_email)
if not send_email:
return { "link": link }
user.reset_password(send_email=True)
return frappe.msgprint(_("Password reset instructions have been sent to your email"))

View file

@ -180,7 +180,7 @@ def run(report_name, filters=None, user=None):
def get_prepared_report_result(report, filters, dn=""):
latest_report_data = {}
doc_list = frappe.get_list("Prepared Report", filters={"status": "Completed", "report_name": report.name})
doc_list = frappe.get_all("Prepared Report", filters={"status": "Completed", "report_name": report.name})
doc = None
if len(doc_list):
if dn:

View file

@ -12,7 +12,7 @@ source_link = "https://github.com/frappe/frappe"
app_license = "MIT"
develop_version = '11.x.x-develop'
staging_version = '11.0.3-beta.6'
staging_version = '11.0.3-beta.7'
app_email = "info@frappe.io"

View file

@ -117,8 +117,6 @@ def get_doc_permissions(doc, verbose=False, user=None, ptype=None):
if(doc.owner == frappe.session.user):
permissions = permissions.get("if_owner")
# if_owner does not come with create rights...
permissions['create'] = 0
else:
permissions = {}
@ -265,7 +263,7 @@ def get_valid_perms(doctype=None, user=None):
perms = get_perms_for(roles)
custom_perms = get_perms_for(roles, 'Custom DocPerm')
doctypes_with_custom_perms = list(set([d.parent for d in custom_perms]))
doctypes_with_custom_perms = get_doctypes_with_custom_docperms()
for p in perms:
if not p.parent in doctypes_with_custom_perms:
custom_perms.append(p)
@ -312,11 +310,18 @@ def get_roles(user=None, with_standard=True):
def get_perms_for(roles, perm_doctype='DocPerm'):
'''Get perms for given roles'''
return frappe.db.sql("""
select * from `tab{doctype}` where docstatus=0
and ifnull(permlevel,0)=0
and role in ({roles})""".format(doctype = perm_doctype,
roles=", ".join(["%s"]*len(roles))), tuple(roles), as_dict=1)
filters = {
'permlevel': 0,
'docstatus': 0,
'role': ['in', roles]
}
return frappe.db.get_all(perm_doctype, fields=['*'], filters=filters)
def get_doctypes_with_custom_docperms():
'''Returns all the doctypes with Custom Docperms'''
doctypes = frappe.db.get_all('Custom DocPerm', fields=['parent'], distinct=1)
return [d.parent for d in doctypes]
def can_set_user_permissions(doctype, docname=None):
# System Manager can always set user permissions
@ -460,4 +465,4 @@ def allow_everything():
eg. {"read": 1, "write": 1, ...}
'''
perm = {ptype: 1 for ptype in rights}
return perm
return perm

View file

@ -53,6 +53,10 @@ $.extend(frappe.perm, {
perm[0].read = 1;
}
if (!meta) {
return perm;
}
frappe.perm.build_role_permissions(perm, meta);
if (doc) {