Merge pull request #6694 from surajshetty3416/permission-fixes-defaults

Fix: default not found issue (fixes "in user permission" check)
This commit is contained in:
Suraj Shetty 2018-12-27 21:02:19 +05:30 committed by GitHub
commit added8a07a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -8,9 +8,11 @@ frappe.defaults = {
if(!d && frappe.defaults.is_a_user_permission_key(key))
d = defaults[frappe.model.scrub(key)];
if($.isArray(d)) d = d[0];
if(frappe.defaults.not_in_user_permission(key, d)) {
if(!frappe.defaults.in_user_permission(key, d)) {
return;
}
return d;
},
get_user_defaults: function(key) {
@ -29,7 +31,7 @@ frappe.defaults = {
// filter out values which are not permitted to the user
d.filter(item => {
if(!frappe.defaults.not_in_user_permission(key, item)) {
if(frappe.defaults.in_user_permission(key, item)) {
return item;
}
});
@ -73,7 +75,7 @@ frappe.defaults = {
}
}
if(frappe.defaults.not_in_user_permission(key, value)) {
if(!frappe.defaults.in_user_permission(key, value)) {
return;
}
@ -90,14 +92,22 @@ frappe.defaults = {
return key.indexOf(":")===-1 && key !== frappe.model.scrub(key);
},
not_in_user_permission: function(key, value) {
let user_permission = this.get_user_permissions()[frappe.model.unscrub(key)] || [];
in_user_permission: function(key, value) {
let user_permission = this.get_user_permissions()[frappe.model.unscrub(key)];
let doc_found = user_permission.some(perm => {
return perm.doc === value;
});
if (user_permission && user_permission.length) {
let doc_found = user_permission.some(perm => {
return perm.doc === value;
});
return doc_found;
} else {
// there is no user permission for this doctype
// so we can allow this doc i.e., value
return true;
}
return !doc_found;
},
get_user_permissions: function() {