소스 검색

[usability] automatically set system user, website user based on roles set

version-14
Rushabh Mehta 9 년 전
부모
커밋
ca76432b58
5개의 변경된 파일85개의 추가작업 그리고 10개의 파일을 삭제
  1. +62
    -4
      frappe/core/doctype/user/user.json
  2. +7
    -0
      frappe/core/doctype/user/user.py
  3. +2
    -1
      frappe/patches.txt
  4. +8
    -0
      frappe/patches/v6_20x/remove_roles_from_website_user.py
  5. +6
    -5
      frappe/public/js/frappe/list/listview.js

+ 62
- 4
frappe/core/doctype/user/user.json 파일 보기

@@ -17,6 +17,7 @@
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "",
@@ -41,6 +42,7 @@
"fieldtype": "Check",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Enabled",
@@ -67,6 +69,7 @@
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
@@ -90,6 +93,7 @@
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Email",
@@ -116,6 +120,7 @@
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "First Name",
@@ -141,6 +146,7 @@
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Middle Name (Optional)",
@@ -166,6 +172,7 @@
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Last Name",
@@ -191,6 +198,7 @@
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Username",
@@ -217,6 +225,7 @@
"fieldtype": "Check",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Send Welcome Email",
@@ -241,6 +250,7 @@
"fieldtype": "Check",
"hidden": 1,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Unsubscribed",
@@ -264,6 +274,7 @@
"fieldtype": "Column Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
@@ -290,6 +301,7 @@
"fieldtype": "Select",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Language",
@@ -315,6 +327,7 @@
"fieldtype": "Select",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Timezone",
@@ -339,6 +352,7 @@
"fieldtype": "Attach Image",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "User Image",
@@ -363,6 +377,7 @@
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "More Information",
@@ -386,6 +401,7 @@
"fieldtype": "Select",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Gender",
@@ -412,6 +428,7 @@
"fieldtype": "Date",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Birth Date",
@@ -437,6 +454,7 @@
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Location",
@@ -460,6 +478,7 @@
"fieldtype": "Column Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
@@ -482,6 +501,7 @@
"fieldtype": "Small Text",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Bio",
@@ -505,6 +525,7 @@
"fieldtype": "Check",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Mute Sounds",
@@ -530,6 +551,7 @@
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Change Password",
@@ -553,6 +575,7 @@
"fieldtype": "Password",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Set New Password",
@@ -577,6 +600,7 @@
"fieldtype": "Check",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Send Password Update Notification",
@@ -601,6 +625,7 @@
"fieldtype": "Data",
"hidden": 1,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Reset Password Key",
@@ -625,6 +650,7 @@
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Email Settings",
@@ -650,6 +676,7 @@
"fieldtype": "Check",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Send Notifications for Transactions I Follow",
@@ -674,6 +701,7 @@
"fieldtype": "Small Text",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Email Signature",
@@ -698,6 +726,7 @@
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Desktop Background",
@@ -722,6 +751,7 @@
"fieldtype": "Attach",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Background Image",
@@ -746,6 +776,7 @@
"fieldtype": "Select",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Background Style",
@@ -773,6 +804,7 @@
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Roles",
@@ -796,6 +828,7 @@
"fieldtype": "HTML",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Roles HTML",
@@ -819,6 +852,7 @@
"fieldtype": "Table",
"hidden": 1,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Roles Assigned",
@@ -845,6 +879,7 @@
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Modules Access",
@@ -869,6 +904,7 @@
"fieldtype": "HTML",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Modules HTML",
@@ -893,6 +929,7 @@
"fieldtype": "Table",
"hidden": 1,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Block Modules",
@@ -919,6 +956,7 @@
"fieldtype": "Section Break",
"hidden": 1,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Defaults",
@@ -946,6 +984,7 @@
"fieldtype": "Table",
"hidden": 1,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "User Defaults",
@@ -971,6 +1010,7 @@
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Security Settings",
@@ -992,11 +1032,12 @@
"bold": 0,
"collapsible": 0,
"default": "System User",
"description": "User Type \"System User\" can access Desktop. \"Website User\" can only be logged into the website and portal pages. ",
"description": "If the user has any role checked, then the user becomes a \"System User\". \"System User\" has access to the desktop",
"fieldname": "user_type",
"fieldtype": "Select",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 1,
"label": "User Type",
@@ -1008,7 +1049,7 @@
"permlevel": 1,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"read_only": 1,
"report_hide": 0,
"reqd": 1,
"search_index": 0,
@@ -1024,6 +1065,7 @@
"fieldtype": "Int",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Login After",
@@ -1048,6 +1090,7 @@
"fieldtype": "Int",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Login Before",
@@ -1072,6 +1115,7 @@
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Restrict IP",
@@ -1095,6 +1139,7 @@
"fieldtype": "Column Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
@@ -1120,6 +1165,7 @@
"fieldtype": "Read Only",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Last Login",
@@ -1145,6 +1191,7 @@
"fieldtype": "Read Only",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Last IP",
@@ -1170,6 +1217,7 @@
"fieldtype": "Datetime",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Last Active",
@@ -1195,6 +1243,7 @@
"fieldtype": "Text",
"hidden": 1,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Last Known Versions",
@@ -1220,6 +1269,7 @@
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Third Party Authentication",
@@ -1243,6 +1293,7 @@
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Facebook Username",
@@ -1266,6 +1317,7 @@
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Facebook User ID",
@@ -1289,6 +1341,7 @@
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Google User ID",
@@ -1312,6 +1365,7 @@
"fieldtype": "Column Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"length": 0,
@@ -1335,6 +1389,7 @@
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Github User ID",
@@ -1358,6 +1413,7 @@
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Github Username",
@@ -1385,7 +1441,7 @@
"istable": 0,
"max_attachments": 5,
"menu_index": 0,
"modified": "2016-01-08 04:50:48.919694",
"modified": "2016-03-25 07:17:22.805437",
"modified_by": "Administrator",
"module": "Core",
"name": "User",
@@ -1434,5 +1490,7 @@
],
"read_only": 0,
"read_only_onload": 0,
"search_fields": "first_name, last_name"
"search_fields": "first_name, last_name",
"sort_order": "DESC",
"track_seen": 0
}

+ 7
- 0
frappe/core/doctype/user/user.py 파일 보기

@@ -40,6 +40,7 @@ class User(Document):
self.validate_email_type(self.email)
self.add_system_manager_role()
self.validate_system_manager_user_type()
self.set_system_user()
self.check_enable_disable()
self.update_gravatar()
self.ensure_unique_roles()
@@ -88,6 +89,12 @@ class User(Document):
self.password_update_mail(new_password)
frappe.msgprint(_("New password emailed"))

def set_system_user(self):
if self.user_roles or self.name == 'Administrator':
self.user_type = 'System User'
else:
self.user_type = 'Website User'

def on_update(self):
# clear new password
self.share_with_self()


+ 2
- 1
frappe/patches.txt 파일 보기

@@ -1,7 +1,7 @@
execute:frappe.db.sql("""update `tabPatch Log` set patch=replace(patch, '.4_0.', '.v4_0.')""") #2014-05-12
frappe.patches.v5_0.convert_to_barracuda_and_utf8mb4
frappe.patches.v6_1.rename_file_data
execute:frappe.reload_doc('core', 'doctype', 'doctype', force=True) #2016-02-17
execute:frappe.reload_doc('core', 'doctype', 'doctype', force=True) #2016-03-25
execute:frappe.reload_doc('core', 'doctype', 'docfield', force=True) #2016-02-26
execute:frappe.reload_doc('core', 'doctype', 'docperm') #2014-06-24
execute:frappe.reload_doc('custom', 'doctype', 'custom_field') #2015-10-19
@@ -121,3 +121,4 @@ frappe.patches.v6_24.set_language_as_code
frappe.patches.v6_20x.update_insert_after
frappe.patches.v6_24.sync_desktop_icons
frappe.patches.v6_20x.set_allow_draft_for_print
frappe.patches.v6_20x.remove_roles_from_website_user

+ 8
- 0
frappe/patches/v6_20x/remove_roles_from_website_user.py 파일 보기

@@ -0,0 +1,8 @@
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 = []
user.save()

+ 6
- 5
frappe/public/js/frappe/list/listview.js 파일 보기

@@ -259,12 +259,13 @@ frappe.views.ListView = Class.extend({

get_avatar_and_id: function(data, without_workflow) {
data._without_workflow = without_workflow;

var seen = JSON.parse(data._seen);

data.css_seen = '';
if(seen && seen.indexOf(frappe.session.user) !== -1) {
data.css_seen = 'seen'

if(data._seen) {
var seen = JSON.parse(data._seen);
if(seen && seen.indexOf(frappe.session.user) !== -1) {
data.css_seen = 'seen'
}
}

return frappe.render_template("list_item_subject", data);


불러오는 중...
취소
저장