resolved merge conflicts
This commit is contained in:
commit
bd88d09040
8 changed files with 34 additions and 28 deletions
|
|
@ -14,7 +14,7 @@ import os, sys, importlib, inspect, json
|
|||
from .exceptions import *
|
||||
from .utils.jinja import get_jenv, get_template, render_template
|
||||
|
||||
__version__ = '8.0.69'
|
||||
__version__ = '8.0.70'
|
||||
__title__ = "Frappe Framework"
|
||||
|
||||
local = Local()
|
||||
|
|
|
|||
|
|
@ -222,15 +222,10 @@ class TestUser(unittest.TestCase):
|
|||
def test_password_strength(self):
|
||||
# Test Password without Password Strenth Policy
|
||||
frappe.db.set_value("System Settings", "System Settings", "enable_password_policy", 0)
|
||||
frappe.db.set_value("System Settings", "System Settings", "minimum_password_score", "")
|
||||
|
||||
# Score 0; should fail
|
||||
# password policy is disabled, test_password_strength should be ignored
|
||||
result = test_password_strength("test_password")
|
||||
self.assertEqual(result['feedback']['password_policy_validation_passed'], False)
|
||||
|
||||
# Score 1; should pass
|
||||
result = test_password_strength("bee2ve")
|
||||
self.assertEqual(result['feedback']['password_policy_validation_passed'], True)
|
||||
self.assertFalse(result.get("feedback", None))
|
||||
|
||||
# Test Password with Password Strenth Policy Set
|
||||
frappe.db.set_value("System Settings", "System Settings", "enable_password_policy", 1)
|
||||
|
|
|
|||
|
|
@ -408,11 +408,12 @@ class User(Document):
|
|||
|
||||
def password_strength_test(self):
|
||||
""" test password strength """
|
||||
if frappe.db.get_single_value("System Settings", "enable_password_policy") and self.__new_password:
|
||||
if self.__new_password:
|
||||
user_data = (self.first_name, self.middle_name, self.last_name, self.email, self.birth_date)
|
||||
result = test_password_strength(self.__new_password, '', None, user_data)
|
||||
feedback = result.get("feedback", None)
|
||||
|
||||
if not result['feedback']['password_policy_validation_passed']:
|
||||
if feedback and not feedback.get('password_policy_validation_passed', False):
|
||||
handle_password_test_fail(result)
|
||||
|
||||
def suggest_username(self):
|
||||
|
|
@ -512,8 +513,9 @@ def get_perm_info(role):
|
|||
@frappe.whitelist(allow_guest=True)
|
||||
def update_password(new_password, key=None, old_password=None):
|
||||
result = test_password_strength(new_password, key, old_password)
|
||||
feedback = result.get("feedback", None)
|
||||
|
||||
if not result['feedback']['password_policy_validation_passed']:
|
||||
if feedback and not feedback.get('password_policy_validation_passed', False):
|
||||
handle_password_test_fail(result)
|
||||
|
||||
res = _get_user_for_update_password(key, old_password)
|
||||
|
|
@ -544,20 +546,28 @@ def update_password(new_password, key=None, old_password=None):
|
|||
def test_password_strength(new_password, key=None, old_password=None, user_data=[]):
|
||||
from frappe.utils.password_strength import test_password_strength as _test_password_strength
|
||||
|
||||
password_policy = frappe.db.get_value("System Settings", None,
|
||||
["enable_password_policy", "minimum_password_score"], as_dict=True)
|
||||
|
||||
enable_password_policy = cint(password_policy.get("enable_password_policy", 0))
|
||||
minimum_password_score = cint(password_policy.get("minimum_password_score", 0))
|
||||
|
||||
if not enable_password_policy:
|
||||
return {}
|
||||
|
||||
if not user_data:
|
||||
user_data = frappe.db.get_value('User', frappe.session.user, ['first_name', 'middle_name', 'last_name', 'email', 'birth_date'])
|
||||
user_data = frappe.db.get_value('User', frappe.session.user,
|
||||
['first_name', 'middle_name', 'last_name', 'email', 'birth_date'])
|
||||
|
||||
if new_password:
|
||||
result = _test_password_strength(new_password, user_inputs=user_data)
|
||||
|
||||
minimum_password_score = cint(frappe.db.get_single_value("System Settings", "minimum_password_score")) or 0
|
||||
|
||||
password_policy_validation_passed = False
|
||||
if result['score'] > minimum_password_score:
|
||||
|
||||
# score should be greater than 0 and minimum_password_score
|
||||
if result.get('score') and result.get('score') >= minimum_password_score:
|
||||
password_policy_validation_passed = True
|
||||
|
||||
result['feedback']['password_policy_validation_passed'] = password_policy_validation_passed
|
||||
|
||||
return result
|
||||
|
||||
#for login
|
||||
|
|
|
|||
|
|
@ -146,18 +146,17 @@ def export_query():
|
|||
|
||||
# build table from dict
|
||||
if isinstance(data.result[0], dict):
|
||||
for row in data.result:
|
||||
if row:
|
||||
for i,row in enumerate(data.result):
|
||||
# only rows which are visible in the report
|
||||
if row and (i+1 in visible_idx):
|
||||
row_list = []
|
||||
for idx in range(len(data.columns)):
|
||||
row_list.append(row.get(columns[idx]["fieldname"],""))
|
||||
result.append(row_list)
|
||||
elif not row:
|
||||
result.append([])
|
||||
else:
|
||||
result = result + data.result
|
||||
|
||||
# filter rows by slickgrid's inline filter
|
||||
if visible_idx:
|
||||
result = [x for idx, x in enumerate(result) if idx == 0 or idx in visible_idx]
|
||||
|
||||
from frappe.utils.xlsxutils import make_xlsx
|
||||
xlsx_file = make_xlsx(result, "Query Report")
|
||||
|
|
|
|||
|
|
@ -66,7 +66,9 @@ frappe.ui.form.on('Auto Email Report', {
|
|||
|
||||
var filters = JSON.parse(frm.doc.filters || '{}');
|
||||
var report_filters = frappe.query_reports[frm.doc.report].filters;
|
||||
frm.set_value('filter_meta', JSON.stringify(report_filters));
|
||||
if(report_filters && report_filters.length > 0) {
|
||||
frm.set_value('filter_meta', JSON.stringify(report_filters));
|
||||
}
|
||||
|
||||
var report_filters_list = []
|
||||
$.each(report_filters, function(key, val){
|
||||
|
|
|
|||
|
|
@ -104,7 +104,7 @@ def dropbox_callback(oauth_token=None, not_approved=False):
|
|||
@frappe.whitelist()
|
||||
def take_backup():
|
||||
"Enqueue longjob for taking backup to dropbox"
|
||||
enqueue("frappe.integrations.doctype.dropbox_settings.dropbox_settings.take_backup_to_dropbox", queue='long')
|
||||
enqueue("frappe.integrations.doctype.dropbox_settings.dropbox_settings.take_backup_to_dropbox", queue='long', timeout=1500)
|
||||
frappe.msgprint(_("Queued for backup. It may take a few minutes to an hour."))
|
||||
|
||||
def take_backups_daily():
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ frappe.upload = {
|
|||
$uploaded_files_wrapper.removeClass('hidden').empty();
|
||||
|
||||
file_array = file_array.map(
|
||||
file => Object.assign(file, {is_private: opts.is_private || 0})
|
||||
file => Object.assign(file, {is_private: opts.is_private || 1})
|
||||
)
|
||||
$upload.data('attached_files', file_array);
|
||||
|
||||
|
|
@ -391,4 +391,4 @@ frappe.upload = {
|
|||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -834,7 +834,7 @@ frappe.views.QueryReport = Class.extend({
|
|||
var view_data = frappe.slickgrid_tools.get_view_data(me.columns, me.dataView);
|
||||
var result = view_data.map(row => row.splice(1));
|
||||
|
||||
// rows filtered by inline_filter of slickgrid
|
||||
// to download only visible rows
|
||||
var visible_idx = view_data.map(row => row[0]).filter(sr_no => sr_no !== 'Sr No');
|
||||
|
||||
if (data.file_format_type == "CSV") {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue