changed user_roles to roles

This commit is contained in:
Rohit Waghchaure 2017-02-20 14:38:42 +05:30
parent 1e8fd83e7b
commit 8a2c83918b
28 changed files with 82 additions and 67 deletions

View file

@ -19,7 +19,7 @@ frappe.ui.form.on('Custom Role Manager', {
method:"get_custom_roles",
doc: frm.doc,
callback: function(r) {
refresh_field('has_roles')
refresh_field('roles')
frm.roles_editor.show()
}
})

View file

@ -12,11 +12,11 @@ class CustomRoleManager(Document):
args = self.get_args()
name = frappe.db.get_value('Custom Role', args, "name")
if not name:
self.set('has_roles', [])
self.set('roles', [])
return
doc = frappe.get_doc('Custom Role', name)
self.set('has_roles', doc.roles)
self.set('roles', doc.roles)
def set_custom_roles(self):
args = self.get_args()
@ -24,12 +24,12 @@ class CustomRoleManager(Document):
args.update({
'doctype': 'Custom Role',
'has_roles': self.has_roles
'roles': self.roles
})
if name:
doc = frappe.get_doc("Custom Role", name)
doc.set('has_roles', self.has_roles)
doc.set('roles', self.roles)
doc.save()
else:
frappe.get_doc(args).insert()

View file

@ -27,7 +27,7 @@ class TestUser(unittest.TestCase):
self.assertEquals(new_user.user_type, 'System User')
# clear role
new_user.user_roles = []
new_user.roles = []
new_user.save()
self.assertEquals(new_user.user_type, 'Website User')
@ -86,7 +86,7 @@ class TestUser(unittest.TestCase):
def test_high_permlevel_validations(self):
user = frappe.get_meta("User")
self.assertTrue("user_roles" in [d.fieldname for d in user.get_high_permlevel_fields()])
self.assertTrue("roles" in [d.fieldname for d in user.get_high_permlevel_fields()])
me = frappe.get_doc("User", "testperm@example.com")
me.remove_roles("System Manager")
@ -101,7 +101,7 @@ class TestUser(unittest.TestCase):
me = frappe.get_doc("User", "testperm@example.com")
me.add_roles("System Manager")
self.assertTrue("System Manager" in [d.role for d in me.get("user_roles")])
self.assertTrue("System Manager" in [d.role for d in me.get("roles")])
def test_user_limit_for_site(self):
update_limits({'users': get_total_users()})

View file

@ -18,7 +18,7 @@ frappe.ui.form.on('User', {
},
onload: function(frm) {
if(has_common(has_roles, ["Administrator", "System Manager"]) && !frm.doc.__islocal) {
if(has_common(roles, ["Administrator", "System Manager"]) && !frm.doc.__islocal) {
if(!frm.roles_editor) {
var role_area = $('<div style="min-height: 300px">')
.appendTo(frm.fields_dict.roles_html.wrapper);
@ -53,7 +53,7 @@ frappe.ui.form.on('User', {
frappe.set_route("modules_setup");
}, null, "btn-default")
if(has_common(has_roles, ["Administrator", "System Manager"])) {
if(has_common(roles, ["Administrator", "System Manager"])) {
frm.add_custom_button(__("Set User Permissions"), function() {
frappe.route_options = {
@ -104,7 +104,7 @@ frappe.ui.form.on('User', {
},
enabled: function(frm) {
var doc = frm.doc;
if(!doc.__islocal && has_common(has_roles, ["Administrator", "System Manager"])) {
if(!doc.__islocal && has_common(roles, ["Administrator", "System Manager"])) {
frm.toggle_display(['sb1', 'sb3', 'modules_access'], doc.enabled);
frm.set_df_property('enabled', 'read_only', 0);
}

View file

@ -102,19 +102,19 @@ class User(Document):
def add_system_manager_role(self):
# if adding system manager, do nothing
if not cint(self.enabled) or ("System Manager" in [user_role.role for user_role in
self.get("user_roles")]):
self.get("roles")]):
return
if self.name not in STANDARD_USERS and self.user_type == "System User" and not self.get_other_system_managers():
msgprint(_("Adding System Manager to this User as there must be atleast one System Manager"))
self.append("user_roles", {
self.append("roles", {
"doctype": "UserRole",
"role": "System Manager"
})
if self.name == 'Administrator':
# Administrator should always have System Manager Role
self.extend("user_roles", [
self.extend("roles", [
{
"doctype": "UserRole",
"role": "System Manager"
@ -142,13 +142,13 @@ class User(Document):
def has_desk_access(self):
'''Return true if any of the set roles has desk access'''
if not self.user_roles:
if not self.roles:
return False
return len(frappe.db.sql("""select name
from `tabRole` where desk_access=1
and name in ({0}) limit 1""".format(', '.join(['%s'] * len(self.user_roles))),
[d.role for d in self.user_roles]))
and name in ({0}) limit 1""".format(', '.join(['%s'] * len(self.roles))),
[d.role for d in self.roles]))
def share_with_self(self):
@ -338,11 +338,11 @@ class User(Document):
def append_roles(self, *roles):
"""Add roles to user"""
current_roles = [d.role for d in self.get("user_roles")]
current_roles = [d.role for d in self.get("roles")]
for role in roles:
if role in current_roles:
continue
self.append("user_roles", {"role": role})
self.append("roles", {"role": role})
def add_roles(self, *roles):
"""Add roles to user and save"""
@ -350,28 +350,28 @@ class User(Document):
self.save()
def remove_roles(self, *roles):
existing_roles = dict((d.role, d) for d in self.get("user_roles"))
existing_roles = dict((d.role, d) for d in self.get("roles"))
for role in roles:
if role in existing_roles:
self.get("user_roles").remove(existing_roles[role])
self.get("roles").remove(existing_roles[role])
self.save()
def remove_all_roles_for_guest(self):
if self.name == "Guest":
self.set("user_roles", list(set(d for d in self.get("user_roles") if d.role == "Guest")))
self.set("roles", list(set(d for d in self.get("roles") if d.role == "Guest")))
def remove_disabled_roles(self):
disabled_roles = [d.name for d in frappe.get_all("Role", filters={"disabled":1})]
for role in list(self.get('user_roles')):
for role in list(self.get('roles')):
if role.role in disabled_roles:
self.get('user_roles').remove(role)
self.get('roles').remove(role)
def ensure_unique_roles(self):
exists = []
for i, d in enumerate(self.get("user_roles")):
for i, d in enumerate(self.get("roles")):
if (not d.role) or (d.role in exists):
self.get("user_roles").remove(d)
self.get("roles").remove(d)
else:
exists.append(d.role)
@ -465,7 +465,7 @@ def get_all_roles(arg=None):
where name not in ('Administrator', 'Guest', 'All') and not disabled order by name""")]
@frappe.whitelist()
def get_user_roles(arg=None):
def get_roles(arg=None):
"""get roles for a user"""
return frappe.get_roles(frappe.form_dict['uid'])

View file

@ -82,7 +82,7 @@ frappe.UserPermissions = Class.extend({
options: "[Select]"
});
if(has_roles.indexOf("System Manager")!==-1) {
if(roles.indexOf("System Manager")!==-1) {
me.download = me.wrapper.page.add_field({
fieldname: "download",
label: __("Download"),

View file

@ -134,7 +134,7 @@ def add_all_roles_to(name):
user = frappe.get_doc("User", name)
for role in frappe.db.sql("""select name from tabRole"""):
if role[0] not in ["Administrator", "Guest", "All", "Customer", "Supplier", "Partner", "Employee"]:
d = user.append("user_roles")
d = user.append("roles")
d.role = role[0]
user.save()

View file

@ -4,7 +4,7 @@ frappe.listview_settings['Email Queue'] = {
return [__(doc.status), colour[doc.status], "status,=," + doc.status];
},
refresh: function(doclist){
if (has_common(has_roles, ["Administrator", "System Manager"])){
if (has_common(roles, ["Administrator", "System Manager"])){
if (cint(frappe.defaults.get_default("hold_queue"))){
doclist.page.clear_inner_toolbar()
doclist.page.add_inner_button(__("Resume Sending"), function() {

View file

@ -158,7 +158,7 @@ def create_user(params):
"send_welcome_email": 0,
"language": "",
"user_type": "System User",
"user_roles": [{
"roles": [{
"role": _("Blogger")
}]
})

View file

@ -34,7 +34,7 @@ def get_doc(arg1, arg2=None):
user = get_doc({
"doctype":"User"
"email_id": "test@example.com",
"user_roles: [
"roles: [
{"role": "System Manager"}
]
})
@ -459,10 +459,10 @@ class Document(BaseDocument):
def get_permlevel_access(self, permission_type='write'):
if not hasattr(self, "_has_access_to"):
user_roles = frappe.get_roles()
roles = frappe.get_roles()
self._has_access_to = []
for perm in self.get_permissions():
if perm.role in user_roles and perm.permlevel > 0 and perm.get(permission_type):
if perm.role in roles and perm.permlevel > 0 and perm.get(permission_type):
if perm.permlevel not in self._has_access_to:
self._has_access_to.append(perm.permlevel)

View file

@ -28,7 +28,7 @@ def sync_for(app_name, force=0, sync_everything = False, verbose=False, reset_pe
if app_name == "frappe":
# these need to go first at time of install
for d in (("core", "docfield"), ("core", "docperm"), ("core", "doctype"),
("core", "user"), ("core", "role"), ("core", "report_role"), ("custom", "custom_field"),
("core", "user"), ("core", "role"), ("custom", "custom_field"),
("custom", "property_setter"), ("website", "web_form"),
("website", "web_form_field"), ("website", "portal_menu_item")):
files.append(os.path.join(frappe.get_app_path("frappe"), d[0],

View file

@ -3,6 +3,6 @@ import frappe
def execute():
for user_name in frappe.get_all('User', filters={'user_type': 'Website User'}):
user = frappe.get_doc('User', user_name)
if user.user_roles:
user.user_roles = []
if user.roles:
user.roles = []
user.save()

View file

@ -0,0 +1,15 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
import frappe
def execute():
frappe.reload_doc("core", 'doctype', "user")
frappe.reload_doc("core", 'doctype', "has_role")
for data in frappe.get_all('User', fields = ["name"]):
doc = frappe.get_doc('User', data.name)
roles = [{'role': d.role} for d in doc.user_roles]
doc.set('roles', roles)
for role in doc.roles:
role.db_update()

View file

@ -6,7 +6,7 @@ import frappe
def execute():
frappe.reload_doc("core", 'doctype', "report")
frappe.reload_doc("core", 'doctype', "report_role")
frappe.reload_doc("core", 'doctype', "has_role")
for data in frappe.get_all('Report', fields=["name"]):
doc = frappe.get_doc('Report', data.name)
doc.set_doctype_roles()

View file

@ -182,12 +182,12 @@ def get_role_permissions(meta, user=None, verbose=False):
user_permission_doctypes={},
if_owner={}
)
user_roles = frappe.get_roles(user)
roles = frappe.get_roles(user)
dont_match = []
has_a_role_with_apply_user_permissions = False
for p in meta.permissions:
if cint(p.permlevel)==0 and (p.role in user_roles):
if cint(p.permlevel)==0 and (p.role in roles):
# apply only for level 0
for ptype in rights:

View file

@ -260,7 +260,7 @@ frappe.Application = Class.extend({
user = frappe.boot.user.name;
user_fullname = frappe.user_info(user).fullname;
user_defaults = frappe.boot.user.defaults;
has_roles = frappe.boot.user.roles;
roles = frappe.boot.user.roles;
user_email = frappe.boot.user.email;
sys_defaults = frappe.boot.sysdefaults;
frappe.ui.py_date_format = frappe.boot.sysdefaults.date_format.replace('dd', '%d').replace('mm', '%m').replace('yyyy', '%Y');
@ -288,7 +288,7 @@ frappe.Application = Class.extend({
user = 'Guest';
user_fullname = 'Guest';
user_defaults = {};
has_roles = ['Guest'];
roles = ['Guest'];
user_email = '';
sys_defaults = {};
},
@ -489,12 +489,12 @@ frappe.get_desktop_icons = function(show_hidden, show_global) {
}
}
if(has_roles.indexOf('System Manager')!=-1) {
if(roles.indexOf('System Manager')!=-1) {
var m = frappe.get_module('Setup');
if(show_module(m)) add_to_out(m)
}
if(has_roles.indexOf('Administrator')!=-1) {
if(roles.indexOf('Administrator')!=-1) {
var m = frappe.get_module('Core');
if(show_module(m)) add_to_out(m)
}

View file

@ -159,7 +159,7 @@ frappe.ui.form.Toolbar = Class.extend({
me.frm.savetrash();}, true);
}
if(in_list(has_roles, "System Manager")) {
if(in_list(roles, "System Manager")) {
this.page.add_menu_item(__("Customize"), function() {
frappe.set_route("Form", "Customize Form", {
doc_type: me.frm.doctype

View file

@ -73,7 +73,7 @@ frappe.ui.form.States = Class.extend({
}
$.each(frappe.workflow.get_transitions(this.frm.doctype, state), function(i, d) {
if(in_list(has_roles, d.allowed)) {
if(in_list(roles, d.allowed)) {
added = true;
me.frm.page.add_action_item(__(d.action), function() {
var action = d.action;

View file

@ -4,7 +4,7 @@
frappe.provide("frappe.tools");
frappe.tools.downloadify = function(data, roles, title) {
if(roles && roles.length && !has_common(roles, has_roles)) {
if(roles && roles.length && !has_common(roles, roles)) {
msgprint(__("Export not allowed. You need {0} role to export.", [frappe.utils.comma_or(roles)]));
return;
}

View file

@ -230,7 +230,7 @@ $.extend(frappe.model, {
can_import: function(doctype, frm) {
// system manager can always import
if(has_roles.indexOf("System Manager")!==-1) return true;
if(roles.indexOf("System Manager")!==-1) return true;
if(frm) return frm.perm[0].import===1;
return frappe.boot.user.can_import.indexOf(doctype)!==-1;
@ -238,7 +238,7 @@ $.extend(frappe.model, {
can_export: function(doctype, frm) {
// system manager can always export
if(has_roles.indexOf("System Manager")!==-1) return true;
if(roles.indexOf("System Manager")!==-1) return true;
if(frm) return frm.perm[0].export===1;
return frappe.boot.user.can_export.indexOf(doctype)!==-1;
@ -263,7 +263,7 @@ $.extend(frappe.model, {
can_set_user_permissions: function(doctype, frm) {
// system manager can always set user permissions
if(has_roles.indexOf("System Manager")!==-1) return true;
if(roles.indexOf("System Manager")!==-1) return true;
if(frm) return frm.perm[0].set_user_permissions===1;
return frappe.boot.user.can_set_user_permissions.indexOf(doctype)!==-1;

View file

@ -45,7 +45,7 @@ $.extend(frappe.perm, {
return perm;
}
if (user==="Administrator" || has_roles.indexOf("Administrator")!==-1) {
if (user==="Administrator" || roles.indexOf("Administrator")!==-1) {
perm[0].read = 1;
}
@ -109,7 +109,7 @@ $.extend(frappe.perm, {
$.each(meta.permissions || [], function(i, p) {
// if user has this role
if(has_roles.indexOf(p.role)!==-1) {
if(roles.indexOf(p.role)!==-1) {
var permlevel = cint(p.permlevel);
if(!perm[permlevel]) {
perm[permlevel] = {};

View file

@ -58,7 +58,7 @@ frappe.workflow = {
var allow_edit = state ? frappe.workflow.get_document_state(doctype, state).allow_edit : null;
if(has_roles.indexOf(allow_edit)==-1) {
if(roles.indexOf(allow_edit)==-1) {
return true;
}
}

View file

@ -79,7 +79,7 @@ frappe.RoleEditor = Class.extend({
var existing_roles_map = {};
var existing_roles_list = [];
$.each((cur_frm.doc.has_roles || []), function(i, user_role) {
$.each((cur_frm.doc.roles || []), function(i, user_role) {
existing_roles_map[user_role.role] = user_role.name;
existing_roles_list.push(user_role.role);
});
@ -94,12 +94,12 @@ frappe.RoleEditor = Class.extend({
// add new roles that are checked
$.each(opts.checked_roles, function(i, role) {
if(existing_roles_list.indexOf(role)==-1) {
var user_role = frappe.model.add_child(cur_frm.doc, "UserRole", "has_roles");
var user_role = frappe.model.add_child(cur_frm.doc, "UserRole", "roles");
user_role.role = role;
}
});
refresh_field("has_roles");
refresh_field("roles");
},
get_roles: function() {
var checked_roles = [];

View file

@ -27,7 +27,7 @@ var DOWN_ARROW = 40;
var user=null;
var user=null;
var user_defaults=null;
var has_roles=null;
var roles=null;
var user_fullname=null;
var user_email=null;
var user_img = {};

View file

@ -30,7 +30,7 @@ def clear(user=None):
def clear_cache(user=None):
cache = frappe.cache()
groups = ("bootinfo", "user_recent", "user_roles", "user_doc", "lang",
groups = ("bootinfo", "user_recent", "roles", "user_doc", "lang",
"defaults", "user_permissions", "roles", "home_page", "linked_with",
"desktop_icons", 'portal_menu_items')

View file

@ -62,7 +62,7 @@ class TestDataImport(unittest.TestCase):
user = frappe.get_doc("User", user_email)
self.assertTrue(frappe.db.get_value("UserRole", filters={"role": "Blogger", "parent": user_email}))
self.assertTrue(user.get("user_roles")[0].role, "Blogger")
self.assertTrue(user.get("roles")[0].role, "Blogger")
# overwrite
exporter.get_template("UserRole", "User", all_doctypes="No", with_data="No")
@ -71,8 +71,8 @@ class TestDataImport(unittest.TestCase):
importer.upload(content, overwrite=True)
user = frappe.get_doc("User", user_email)
self.assertEquals(len(user.get("user_roles")), 1)
self.assertTrue(user.get("user_roles")[0].role, "Website Manager")
self.assertEquals(len(user.get("roles")), 1)
self.assertTrue(user.get("roles")[0].role, "Website Manager")
def test_import_with_children(self):
exporter.get_template("Event", all_doctypes="Yes", with_data="No")

View file

@ -7,7 +7,7 @@ import frappe, unittest
class TestDocument(unittest.TestCase):
def test_get_return_empty_list_for_table_field_if_none(self):
d = frappe.get_doc({"doctype":"User"})
self.assertEquals(d.get("user_roles"), [])
self.assertEquals(d.get("roles"), [])
def test_load(self):
d = frappe.get_doc("DocType", "User")
@ -114,7 +114,7 @@ class TestDocument(unittest.TestCase):
"doctype": "User",
"email": "test_link_validation@example.com",
"first_name": "Link Validation",
"user_roles": [
"roles": [
{
"role": "ABC"
}
@ -122,8 +122,8 @@ class TestDocument(unittest.TestCase):
})
self.assertRaises(frappe.LinkValidationError, d.insert)
d.user_roles = []
d.append("user_roles", {
d.roles = []
d.append("roles", {
"role": "System Manager"
})
d.insert()

View file

@ -46,11 +46,11 @@ def install_basic_docs():
install_docs = [
{'doctype':'User', 'name':'Administrator', 'first_name':'Administrator',
'email':'admin@example.com', 'enabled':1, "is_admin": 1,
'user_roles': [{'role': 'Administrator'}]
'roles': [{'role': 'Administrator'}]
},
{'doctype':'User', 'name':'Guest', 'first_name':'Guest',
'email':'guest@example.com', 'enabled':1, "is_guest": 1,
'user_roles': [{'role': 'Guest'}]
'roles': [{'role': 'Guest'}]
},
{'doctype': "Role", "role_name": "Report Manager"},
{'doctype': "Workflow State", "workflow_state_name": "Pending",