diff --git a/frappe/__init__.py b/frappe/__init__.py index b7cc65cbe1..5f96e8818a 100644 --- a/frappe/__init__.py +++ b/frappe/__init__.py @@ -1000,7 +1000,10 @@ def publish_realtime(*args, **kwargs): :param event: Event name, like `task_progress` etc. :param message: JSON message object. For async must contain `task_id` - :param room: Room in which to publish update (default entire site)""" + :param room: Room in which to publish update (default entire site) + :param user: Transmit to user + :param doctype: Transmit to doctype, docname + :param docname: Transmit to doctype, docname""" import frappe.async - frappe.async.publish_realtime(*args, **kwargs) + return frappe.async.publish_realtime(*args, **kwargs) diff --git a/frappe/async.py b/frappe/async.py index e2a748b4ba..fbe7856b23 100644 --- a/frappe/async.py +++ b/frappe/async.py @@ -120,7 +120,7 @@ def is_file_old(file_path): return ((time.time() - os.stat(file_path).st_mtime) > TASK_LOG_MAX_AGE) -def publish_realtime(event, message, room=None, user=None, doctype=None, docname=None): +def publish_realtime(event, message=None, room=None, user=None, doctype=None, docname=None): """Publish real-time updates :param event: Event name, like `task_progress` etc. @@ -128,18 +128,23 @@ def publish_realtime(event, message, room=None, user=None, doctype=None, docname :param room: Room in which to publish update (default entire site) :param user: Transmit to user :param doctype: Transmit to doctype, docname - :param doctype: Transmit to doctype, docname""" + :param docname: Transmit to doctype, docname""" + if message is None: + message = {} + if not room: if user: - get_user_room(user) - if doctype and docname: - get_doc_room(doctype, docname) + room = get_user_room(user) + elif doctype and docname: + room = get_doc_room(doctype, docname) + message["doctype"] = doctype + message["name"] = docname else: room = get_site_room() emit_via_redis(event, message, room) -def emit_via_redis(event, message, room=None): +def emit_via_redis(event, message, room): """Publish real-time updates via redis :param event: Event name, like `task_progress` etc. diff --git a/frappe/core/doctype/user/user.json b/frappe/core/doctype/user/user.json index e1789d655d..904906d1ad 100644 --- a/frappe/core/doctype/user/user.json +++ b/frappe/core/doctype/user/user.json @@ -1,519 +1,1204 @@ { - "allow_copy": 0, - "allow_import": 1, - "allow_rename": 1, - "creation": "2014-03-11 14:55:00", - "description": "Represents a User in the system.", - "docstatus": 0, - "doctype": "DocType", - "document_type": "Master", + "allow_copy": 0, + "allow_import": 1, + "allow_rename": 1, + "creation": "2014-03-11 14:55:00", + "custom": 0, + "description": "Represents a User in the system.", + "docstatus": 0, + "doctype": "DocType", + "document_type": "", "fields": [ { - "fieldname": "sb0_5", - "fieldtype": "Section Break", - "label": "", - "permlevel": 0 - }, - { - "default": "1", - "fieldname": "enabled", - "fieldtype": "Check", - "in_list_view": 0, - "label": "Enabled", - "no_copy": 0, - "oldfieldname": "enabled", - "oldfieldtype": "Check", - "permlevel": 0, - "read_only": 1 - }, - { - "fieldname": "section_break_3", - "fieldtype": "Section Break", - "permlevel": 0, - "precision": "" - }, - { - "fieldname": "email", - "fieldtype": "Data", - "hidden": 0, - "label": "Email", - "no_copy": 1, - "oldfieldname": "email", - "oldfieldtype": "Data", - "options": "Email", - "permlevel": 0, - "reqd": 1, - "search_index": 0 - }, - { - "fieldname": "first_name", - "fieldtype": "Data", - "in_list_view": 0, - "label": "First Name", - "no_copy": 0, - "oldfieldname": "first_name", - "oldfieldtype": "Data", - "permlevel": 0, - "reqd": 1 - }, - { - "fieldname": "middle_name", - "fieldtype": "Data", - "label": "Middle Name (Optional)", - "no_copy": 0, - "oldfieldname": "middle_name", - "oldfieldtype": "Data", - "permlevel": 0 - }, - { - "fieldname": "last_name", - "fieldtype": "Data", - "in_list_view": 0, - "label": "Last Name", - "oldfieldname": "last_name", - "oldfieldtype": "Data", - "permlevel": 0 - }, - { - "default": "1", - "depends_on": "eval:doc.__islocal", - "fieldname": "send_welcome_email", - "fieldtype": "Check", - "label": "Send Welcome Email", - "permlevel": 0, - "precision": "" - }, - { - "fieldname": "unsubscribed", - "fieldtype": "Check", - "hidden": 1, - "label": "Unsubscribed", - "no_copy": 1, - "permlevel": 0 - }, - { - "fieldname": "column_break0", - "fieldtype": "Column Break", - "oldfieldtype": "Column Break", - "permlevel": 0, - "print_width": "50%", + "allow_on_submit": 0, + "fieldname": "sb0_5", + "fieldtype": "Section Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "", + "no_copy": 0, + "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "default": "1", + "fieldname": "enabled", + "fieldtype": "Check", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Enabled", + "no_copy": 0, + "oldfieldname": "enabled", + "oldfieldtype": "Check", + "permlevel": 0, + "print_hide": 0, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "fieldname": "section_break_3", + "fieldtype": "Section Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "fieldname": "email", + "fieldtype": "Data", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Email", + "no_copy": 1, + "oldfieldname": "email", + "oldfieldtype": "Data", + "options": "Email", + "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 1, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "fieldname": "first_name", + "fieldtype": "Data", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "First Name", + "no_copy": 0, + "oldfieldname": "first_name", + "oldfieldtype": "Data", + "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 1, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "fieldname": "middle_name", + "fieldtype": "Data", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Middle Name (Optional)", + "no_copy": 0, + "oldfieldname": "middle_name", + "oldfieldtype": "Data", + "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "fieldname": "last_name", + "fieldtype": "Data", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Last Name", + "no_copy": 0, + "oldfieldname": "last_name", + "oldfieldtype": "Data", + "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "default": "1", + "depends_on": "eval:doc.__islocal", + "fieldname": "send_welcome_email", + "fieldtype": "Check", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Send Welcome Email", + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "fieldname": "unsubscribed", + "fieldtype": "Check", + "hidden": 1, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Unsubscribed", + "no_copy": 1, + "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "fieldname": "column_break0", + "fieldtype": "Column Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "no_copy": 0, + "oldfieldtype": "Column Break", + "permlevel": 0, + "print_hide": 0, + "print_width": "50%", + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0, "width": "50%" - }, - { - "description": "", - "fieldname": "language", - "fieldtype": "Select", - "label": "Language", - "options": "Loading...", - "permlevel": 0 - }, - { - "description": "", - "fieldname": "time_zone", - "fieldtype": "Select", - "label": "Timezone", - "permlevel": 0 - }, - { - "depends_on": "eval:!doc.__islocal", - "fieldname": "change_password", - "fieldtype": "Section Break", - "label": "", - "permlevel": 0 - }, - { - "fieldname": "new_password", - "fieldtype": "Password", - "label": "Set New Password", - "no_copy": 1, - "permlevel": 0 - }, - { - "depends_on": "", - "fieldname": "send_password_update_notification", - "fieldtype": "Check", - "label": "Send Password Update Notification", - "permlevel": 0, - "precision": "" - }, - { - "fieldname": "reset_password_key", - "fieldtype": "Data", - "hidden": 1, - "label": "Reset Password Key", - "no_copy": 1, - "permlevel": 0, - "print_hide": 1, - "read_only": 1 - }, - { - "depends_on": "eval:!doc.__islocal", - "fieldname": "display_settings", - "fieldtype": "Section Break", - "label": "", - "permlevel": 0 - }, - { - "description": "Get your globally recognized avatar from Gravatar.com", - "fieldname": "user_image", - "fieldtype": "Attach", - "hidden": 0, - "label": "User Image", - "no_copy": 1, - "permlevel": 0 - }, - { - "fieldname": "cb21", - "fieldtype": "Column Break", - "permlevel": 0 - }, - { - "fieldname": "user_image_show", - "fieldtype": "Image", - "label": "user_image_show", - "options": "user_image", - "permlevel": 0 - }, - { - "fieldname": "email_settings", - "fieldtype": "Section Break", - "label": "Email Settings", - "permlevel": 0, - "precision": "" - }, - { - "default": "1", - "fieldname": "thread_notify", - "fieldtype": "Check", - "label": "Send Notifications for Transactions I Follow", - "permlevel": 0, - "precision": "" - }, - { - "fieldname": "email_signature", - "fieldtype": "Small Text", - "label": "Email Signature", - "no_copy": 1, - "permlevel": 0 - }, - { - "fieldname": "background", - "fieldtype": "Section Break", - "label": "", - "permlevel": 0, - "precision": "" - }, - { - "fieldname": "background_image", - "fieldtype": "Attach", - "label": "Background Image", - "permlevel": 0, - "precision": "" - }, - { - "fieldname": "background_style", - "fieldtype": "Select", - "label": "Background Style", - "options": "Fill Screen\nTile", - "permlevel": 0, - "precision": "" - }, - { - "fieldname": "short_bio", - "fieldtype": "Section Break", - "label": "", - "permlevel": 0 - }, - { - "fieldname": "gender", - "fieldtype": "Select", - "label": "Gender", - "oldfieldname": "gender", - "oldfieldtype": "Select", - "options": "\nMale\nFemale\nOther", - "permlevel": 0, - "search_index": 0 - }, - { - "fieldname": "birth_date", - "fieldtype": "Date", - "label": "Birth Date", - "no_copy": 1, - "oldfieldname": "birth_date", - "oldfieldtype": "Date", - "permlevel": 0 - }, - { - "fieldname": "location", - "fieldtype": "Data", - "label": "Location", - "no_copy": 1, - "permlevel": 0 - }, - { - "fieldname": "column_break_22", - "fieldtype": "Column Break", - "permlevel": 0 - }, - { - "fieldname": "bio", - "fieldtype": "Small Text", - "label": "Bio", - "no_copy": 1, - "permlevel": 0, - "set_only_once": 0 - }, - { - "description": "Check / Uncheck roles assigned to the User. Click on the Role to find out what permissions that Role has.", - "fieldname": "sb1", - "fieldtype": "Section Break", - "label": "Roles", - "permlevel": 1, - "read_only": 1 - }, - { - "fieldname": "roles_html", - "fieldtype": "HTML", - "label": "Roles HTML", - "permlevel": 0, - "read_only": 1 - }, - { - "fieldname": "user_roles", - "fieldtype": "Table", - "hidden": 1, - "label": "Roles Assigned", - "options": "UserRole", - "permlevel": 1, - "print_hide": 1, - "read_only": 1 - }, - { - "default": "", - "description": "Uncheck modules to hide from user's desktop", - "fieldname": "modules_access", - "fieldtype": "Section Break", - "label": "Modules Access", - "permlevel": 1, - "precision": "" - }, - { - "fieldname": "modules_html", - "fieldtype": "HTML", - "label": "Modules HTML", - "permlevel": 1, - "precision": "" - }, - { - "fieldname": "block_modules", - "fieldtype": "Table", - "hidden": 1, - "label": "Block Modules", - "options": "Block Module", - "permlevel": 1, - "precision": "" - }, - { - "description": "These values will be automatically updated in transactions and also will be useful to restrict permissions for this user on transactions containing these values.", - "fieldname": "sb2", - "fieldtype": "Section Break", - "hidden": 1, - "label": "Defaults", - "oldfieldtype": "Column Break", - "permlevel": 1, - "print_width": "50%", - "read_only": 1, + }, + { + "allow_on_submit": 0, + "description": "", + "fieldname": "language", + "fieldtype": "Select", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Language", + "no_copy": 0, + "options": "Loading...", + "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "description": "", + "fieldname": "time_zone", + "fieldtype": "Select", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Timezone", + "no_copy": 0, + "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "depends_on": "eval:!doc.__islocal || !cint(doc.send_welcome_email)", + "fieldname": "change_password", + "fieldtype": "Section Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "", + "no_copy": 0, + "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "fieldname": "new_password", + "fieldtype": "Password", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Set New Password", + "no_copy": 1, + "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "depends_on": "eval:!doc.__islocal", + "fieldname": "send_password_update_notification", + "fieldtype": "Check", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Send Password Update Notification", + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "fieldname": "reset_password_key", + "fieldtype": "Data", + "hidden": 1, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Reset Password Key", + "no_copy": 1, + "permlevel": 0, + "print_hide": 1, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "depends_on": "eval:!doc.__islocal", + "fieldname": "display_settings", + "fieldtype": "Section Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "", + "no_copy": 0, + "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "description": "Get your globally recognized avatar from Gravatar.com", + "fieldname": "user_image", + "fieldtype": "Attach", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "User Image", + "no_copy": 1, + "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "fieldname": "cb21", + "fieldtype": "Column Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "no_copy": 0, + "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "fieldname": "user_image_show", + "fieldtype": "Image", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "user_image_show", + "no_copy": 0, + "options": "user_image", + "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "fieldname": "email_settings", + "fieldtype": "Section Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Email Settings", + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "default": "1", + "fieldname": "thread_notify", + "fieldtype": "Check", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Send Notifications for Transactions I Follow", + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "fieldname": "email_signature", + "fieldtype": "Small Text", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Email Signature", + "no_copy": 1, + "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "fieldname": "background", + "fieldtype": "Section Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "", + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "fieldname": "background_image", + "fieldtype": "Attach", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Background Image", + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "fieldname": "background_style", + "fieldtype": "Select", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Background Style", + "no_copy": 0, + "options": "Fill Screen\nTile", + "permlevel": 0, + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "fieldname": "short_bio", + "fieldtype": "Section Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "", + "no_copy": 0, + "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "fieldname": "gender", + "fieldtype": "Select", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Gender", + "no_copy": 0, + "oldfieldname": "gender", + "oldfieldtype": "Select", + "options": "\nMale\nFemale\nOther", + "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "fieldname": "birth_date", + "fieldtype": "Date", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Birth Date", + "no_copy": 1, + "oldfieldname": "birth_date", + "oldfieldtype": "Date", + "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "fieldname": "location", + "fieldtype": "Data", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Location", + "no_copy": 1, + "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "fieldname": "column_break_22", + "fieldtype": "Column Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "no_copy": 0, + "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "fieldname": "bio", + "fieldtype": "Small Text", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Bio", + "no_copy": 1, + "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "description": "Check / Uncheck roles assigned to the User. Click on the Role to find out what permissions that Role has.", + "fieldname": "sb1", + "fieldtype": "Section Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Roles", + "no_copy": 0, + "permlevel": 1, + "print_hide": 0, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "fieldname": "roles_html", + "fieldtype": "HTML", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Roles HTML", + "no_copy": 0, + "permlevel": 0, + "print_hide": 0, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "fieldname": "user_roles", + "fieldtype": "Table", + "hidden": 1, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Roles Assigned", + "no_copy": 0, + "options": "UserRole", + "permlevel": 1, + "print_hide": 1, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "default": "", + "description": "Uncheck modules to hide from user's desktop", + "fieldname": "modules_access", + "fieldtype": "Section Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Modules Access", + "no_copy": 0, + "permlevel": 1, + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "fieldname": "modules_html", + "fieldtype": "HTML", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Modules HTML", + "no_copy": 0, + "permlevel": 1, + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "fieldname": "block_modules", + "fieldtype": "Table", + "hidden": 1, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Block Modules", + "no_copy": 0, + "options": "Block Module", + "permlevel": 1, + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "description": "These values will be automatically updated in transactions and also will be useful to restrict permissions for this user on transactions containing these values.", + "fieldname": "sb2", + "fieldtype": "Section Break", + "hidden": 1, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Defaults", + "no_copy": 0, + "oldfieldtype": "Column Break", + "permlevel": 1, + "print_hide": 0, + "print_width": "50%", + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0, "width": "50%" - }, - { - "description": "Enter default value fields (keys) and values. If you add multiple values for a field, the first one will be picked. These defaults are also used to set \"match\" permission rules. To see list of fields, go to \"Customize Form\".", - "fieldname": "defaults", - "fieldtype": "Table", - "hidden": 1, - "label": "User Defaults", - "no_copy": 1, - "options": "DefaultValue", - "permlevel": 0 - }, - { - "fieldname": "sb3", - "fieldtype": "Section Break", - "label": "Security Settings", - "oldfieldtype": "Section Break", - "permlevel": 0, - "read_only": 1 - }, - { - "default": "System User", - "description": "User Type \"System User\" can access Desktop. \"Website User\" can only be logged into the website and portal pages. ", - "fieldname": "user_type", - "fieldtype": "Select", - "in_list_view": 1, - "label": "User Type", - "oldfieldname": "user_type", - "oldfieldtype": "Select", - "options": "System User\nWebsite User", - "permlevel": 0, - "read_only": 1, - "reqd": 1 - }, - { - "description": "Allow user to login only after this hour (0-24)", - "fieldname": "login_after", - "fieldtype": "Int", - "label": "Login After", - "permlevel": 0, - "read_only": 1 - }, - { - "description": "Allow user to login only before this hour (0-24)", - "fieldname": "login_before", - "fieldtype": "Int", - "label": "Login Before", - "permlevel": 0, - "read_only": 1 - }, - { - "description": "Restrict user from this IP address only. Multiple IP addresses can be added by separating with commas. Also accepts partial IP addresses like (111.111.111)", - "fieldname": "restrict_ip", - "fieldtype": "Data", - "label": "Restrict IP", - "permlevel": 0, - "read_only": 1 - }, - { - "fieldname": "column_break1", - "fieldtype": "Column Break", - "oldfieldtype": "Column Break", - "permlevel": 0, - "print_width": "50%", + }, + { + "allow_on_submit": 0, + "description": "Enter default value fields (keys) and values. If you add multiple values for a field, the first one will be picked. These defaults are also used to set \"match\" permission rules. To see list of fields, go to \"Customize Form\".", + "fieldname": "defaults", + "fieldtype": "Table", + "hidden": 1, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "User Defaults", + "no_copy": 1, + "options": "DefaultValue", + "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "fieldname": "sb3", + "fieldtype": "Section Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Security Settings", + "no_copy": 0, + "oldfieldtype": "Section Break", + "permlevel": 0, + "print_hide": 0, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "default": "System User", + "description": "User Type \"System User\" can access Desktop. \"Website User\" can only be logged into the website and portal pages. ", + "fieldname": "user_type", + "fieldtype": "Select", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 1, + "label": "User Type", + "no_copy": 0, + "oldfieldname": "user_type", + "oldfieldtype": "Select", + "options": "System User\nWebsite User", + "permlevel": 0, + "print_hide": 0, + "read_only": 1, + "report_hide": 0, + "reqd": 1, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "description": "Allow user to login only after this hour (0-24)", + "fieldname": "login_after", + "fieldtype": "Int", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Login After", + "no_copy": 0, + "permlevel": 0, + "print_hide": 0, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "description": "Allow user to login only before this hour (0-24)", + "fieldname": "login_before", + "fieldtype": "Int", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Login Before", + "no_copy": 0, + "permlevel": 0, + "print_hide": 0, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "description": "Restrict user from this IP address only. Multiple IP addresses can be added by separating with commas. Also accepts partial IP addresses like (111.111.111)", + "fieldname": "restrict_ip", + "fieldtype": "Data", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Restrict IP", + "no_copy": 0, + "permlevel": 0, + "print_hide": 0, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "fieldname": "column_break1", + "fieldtype": "Column Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "no_copy": 0, + "oldfieldtype": "Column Break", + "permlevel": 0, + "print_hide": 0, + "print_width": "50%", + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0, "width": "50%" - }, - { - "fieldname": "last_login", - "fieldtype": "Read Only", - "hidden": 0, - "label": "Last Login", - "no_copy": 1, - "oldfieldname": "last_login", - "oldfieldtype": "Read Only", - "permlevel": 0, - "read_only": 1, - "reqd": 0, - "search_index": 0 - }, - { - "fieldname": "last_ip", - "fieldtype": "Read Only", - "label": "Last IP", - "no_copy": 1, - "oldfieldname": "last_ip", - "oldfieldtype": "Read Only", - "permlevel": 0, - "read_only": 1 - }, - { - "description": "Stores the JSON of last known versions of various installed apps. It is used to show release notes.", - "fieldname": "last_known_versions", - "fieldtype": "Text", - "hidden": 1, - "label": "Last Known Versions", - "permlevel": 0, - "precision": "", - "read_only": 1 - }, - { - "fieldname": "third_party_authentication", - "fieldtype": "Section Break", - "label": "Third Party Authentication", - "permlevel": 1 - }, - { - "fieldname": "fb_username", - "fieldtype": "Data", - "label": "Facebook Username", - "no_copy": 1, - "permlevel": 0, - "read_only": 1 - }, - { - "fieldname": "fb_userid", - "fieldtype": "Data", - "label": "Facebook User ID", - "no_copy": 1, - "permlevel": 0, - "read_only": 1 - }, - { - "fieldname": "google_userid", - "fieldtype": "Data", - "label": "Google User ID", - "no_copy": 1, - "permlevel": 0, - "read_only": 1 - }, - { - "fieldname": "column_break_49", - "fieldtype": "Column Break", - "permlevel": 0, - "precision": "" - }, - { - "fieldname": "github_userid", - "fieldtype": "Data", - "label": "Github User ID", - "no_copy": 1, - "permlevel": 0, - "read_only": 1 - }, - { - "fieldname": "github_username", - "fieldtype": "Data", - "label": "Github Username", - "no_copy": 1, - "permlevel": 0, - "read_only": 1 + }, + { + "allow_on_submit": 0, + "fieldname": "last_login", + "fieldtype": "Read Only", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Last Login", + "no_copy": 1, + "oldfieldname": "last_login", + "oldfieldtype": "Read Only", + "permlevel": 0, + "print_hide": 0, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "fieldname": "last_ip", + "fieldtype": "Read Only", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Last IP", + "no_copy": 1, + "oldfieldname": "last_ip", + "oldfieldtype": "Read Only", + "permlevel": 0, + "print_hide": 0, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "description": "Stores the JSON of last known versions of various installed apps. It is used to show release notes.", + "fieldname": "last_known_versions", + "fieldtype": "Text", + "hidden": 1, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Last Known Versions", + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "fieldname": "third_party_authentication", + "fieldtype": "Section Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Third Party Authentication", + "no_copy": 0, + "permlevel": 1, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "fieldname": "fb_username", + "fieldtype": "Data", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Facebook Username", + "no_copy": 1, + "permlevel": 0, + "print_hide": 0, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "fieldname": "fb_userid", + "fieldtype": "Data", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Facebook User ID", + "no_copy": 1, + "permlevel": 0, + "print_hide": 0, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "fieldname": "google_userid", + "fieldtype": "Data", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Google User ID", + "no_copy": 1, + "permlevel": 0, + "print_hide": 0, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "fieldname": "column_break_49", + "fieldtype": "Column Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "fieldname": "github_userid", + "fieldtype": "Data", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Github User ID", + "no_copy": 1, + "permlevel": 0, + "print_hide": 0, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "fieldname": "github_username", + "fieldtype": "Data", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Github Username", + "no_copy": 1, + "permlevel": 0, + "print_hide": 0, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 } - ], - "hide_heading": 0, - "hide_toolbar": 0, - "icon": "icon-user", - "idx": 1, - "issingle": 0, - "istable": 0, - "max_attachments": 5, - "modified": "2015-07-27 01:00:32.901851", - "modified_by": "Administrator", - "module": "Core", - "name": "User", - "owner": "Administrator", + ], + "hide_heading": 0, + "hide_toolbar": 0, + "icon": "icon-user", + "idx": 1, + "in_create": 0, + "in_dialog": 0, + "is_submittable": 0, + "issingle": 0, + "istable": 0, + "max_attachments": 5, + "modified": "2015-08-18 11:58:00.000691", + "modified_by": "Administrator", + "module": "Core", + "name": "User", + "owner": "Administrator", "permissions": [ { - "create": 1, - "delete": 1, - "email": 1, - "permlevel": 0, - "print": 1, - "read": 1, - "report": 1, - "role": "System Manager", - "share": 1, - "submit": 0, + "amend": 0, + "apply_user_permissions": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "set_user_permissions": 0, + "share": 1, + "submit": 0, "write": 1 - }, - { - "amend": 0, - "cancel": 0, - "create": 0, - "delete": 0, - "permlevel": 1, - "read": 1, - "report": 1, - "role": "System Manager", - "submit": 0, + }, + { + "amend": 0, + "apply_user_permissions": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "permlevel": 1, + "print": 0, + "read": 1, + "report": 1, + "role": "System Manager", + "set_user_permissions": 0, + "share": 0, + "submit": 0, "write": 1 } - ], - "read_only": 0, + ], + "read_only": 0, + "read_only_onload": 0, "search_fields": "first_name, last_name" -} +} \ No newline at end of file diff --git a/frappe/desk/page/messages/messages.js b/frappe/desk/page/messages/messages.js index 5cbd977596..5142cde7ac 100644 --- a/frappe/desk/page/messages/messages.js +++ b/frappe/desk/page/messages/messages.js @@ -42,7 +42,9 @@ frappe.desk.pages.Messages = Class.extend({ setup_realtime: function() { frappe.realtime.on('new_message', function(comment) { - frappe.utils.notify(__("Message from {0}", [comment.comment_by_fullname]), comment.comment); + if(comment.modified_by !== user) { + frappe.utils.notify(__("Message from {0}", [comment.comment_by_fullname]), comment.comment); + } if (frappe.get_route()[0] === 'messages') { var current_contact = $(cur_page.page).find('[data-contact]').data('contact'); var on_broadcast_page = current_contact === user; diff --git a/frappe/desk/page/messages/messages_main.html b/frappe/desk/page/messages/messages_main.html index be2cf1b18f..726abf6600 100644 --- a/frappe/desk/page/messages/messages_main.html +++ b/frappe/desk/page/messages/messages_main.html @@ -8,11 +8,15 @@ class="form-control messages-textarea">