fix: default user permission to handle small int values

This commit is contained in:
Mangesh-Khairnar 2019-04-17 18:49:39 +05:30
parent 1250a931ed
commit fe007f426d
5 changed files with 14 additions and 18 deletions

View file

@ -9,14 +9,12 @@ import unittest
class TestUserPermission(unittest.TestCase):
def test_default_user_permission(self):
user = create_user('test_bulk_creation_update@example.com')
param = get_params(user, 'User', user.name, True)
user = create_user('test_default_permission@example.com')
param = get_params(user, 'User', user.name, is_default=1)
add_user_permissions(param)
#create a duplicate entry with default
perm_user = create_user('test_perm@example.com')
param = get_params(user, 'User', perm_user.name, True)
perm_user = create_user('test_user_perm@example.com')
param = get_params(user, 'User', perm_user.name, is_default=1)
self.assertRaises(frappe.ValidationError, add_user_permissions, param)
def test_apply_to_all(self):
@ -57,17 +55,18 @@ class TestUserPermission(unittest.TestCase):
self.assertIsNone(removed_applicable_second)
self.assertEquals(created, 1)
def create_user(user):
if frappe.db.exists('User', user):
return frappe.get_doc('User', user)
def create_user(email):
''' create user with role system manager '''
if frappe.db.exists('User', email):
return frappe.get_doc('User', email)
else:
user = frappe.new_doc('User')
user.email = user
user.first_name = user.split("@")[0]
user.email = email
user.first_name = email.split("@")[0]
user.add_roles("System Manager")
return user
def get_params(user, doctype, docname, is_default=False, applicable=None):
def get_params(user, doctype, docname, is_default=0, applicable=None):
''' Return param to insert '''
param = {
"user": user.name,

View file

@ -197,7 +197,7 @@ def add_user_permissions(data):
return 1
return 0
def insert_user_perm(user, doctype, docname, is_default=False, apply_to_all=None, applicable=None):
def insert_user_perm(user, doctype, docname, is_default=0, apply_to_all=None, applicable=None):
user_perm = frappe.new_doc("User Permission")
user_perm.user = user
user_perm.allow = doctype

View file

@ -58,14 +58,12 @@ frappe.listview_settings['User Permission'] = {
fieldname: 'is_default',
label: __('Is Default'),
fieldtype: 'Check',
checked: 1,
hidden: 1
},
{
fieldname: 'apply_to_all_doctypes',
label: __('Apply to all Documents Types'),
fieldtype: 'Check',
checked: 1,
hidden: 1,
onchange: function() {
if(dialog.fields_dict.doctype.value && dialog.fields_dict.docname.value && dialog.fields_dict.user.value){
@ -214,7 +212,6 @@ frappe.listview_settings['User Permission'] = {
dialog.set_df_property("docname", "hidden", 0);
dialog.set_df_property("docname", "reqd", 1);
dialog.set_df_property("is_default", "hidden", 0);
dialog.set_value("is_default", "checked", 0);
dialog.set_df_property("apply_to_all_doctypes", "hidden", 0);
dialog.set_value("apply_to_all_doctypes", "checked", 1);
},

View file

@ -395,7 +395,7 @@ def set_user_permission_if_allowed(doctype, name, user, with_message=False):
if get_role_permissions(frappe.get_meta(doctype), user).set_user_permissions!=1:
add_user_permission(doctype, name, user)
def add_user_permission(doctype, name, user, is_default=False, ignore_permissions=False, applicable_for=None):
def add_user_permission(doctype, name, user, ignore_permissions=False, applicable_for=None, is_default=0):
'''Add user permission'''
from frappe.core.doctype.user_permission.user_permission import user_permission_exists

View file

@ -86,7 +86,7 @@ class TestPermissions(unittest.TestCase):
self.assertFalse(doc.get("blog_category"))
# Fetch default based on single user permission
add_user_permission("Blog Category", "_Test Blog Category 1", "test2@example.com", is_default=True)
add_user_permission("Blog Category", "_Test Blog Category 1", "test2@example.com", is_default=1)
frappe.set_user("test2@example.com")
doc = frappe.new_doc("Blog Post")