fix: Do not create energy points for disabled users
This commit is contained in:
parent
f4d67d617b
commit
bd854bb368
2 changed files with 20 additions and 1 deletions
|
|
@ -53,6 +53,7 @@ class User(Document):
|
|||
def after_insert(self):
|
||||
create_notification_settings(self.name)
|
||||
frappe.cache().delete_key('users_for_mentions')
|
||||
frappe.cache().delete_key('enabled_users')
|
||||
|
||||
def validate(self):
|
||||
self.check_demo()
|
||||
|
|
@ -129,6 +130,9 @@ class User(Document):
|
|||
if self.has_value_changed('allow_in_mentions') or self.has_value_changed('user_type'):
|
||||
frappe.cache().delete_key('users_for_mentions')
|
||||
|
||||
if self.has_value_changed('enabled'):
|
||||
frappe.cache().delete_key('enabled_users')
|
||||
|
||||
def has_website_permission(self, ptype, user, verbose=False):
|
||||
"""Returns true if current user is the session user"""
|
||||
return self.name == frappe.session.user
|
||||
|
|
@ -392,6 +396,8 @@ class User(Document):
|
|||
if self.get('allow_in_mentions'):
|
||||
frappe.cache().delete_key('users_for_mentions')
|
||||
|
||||
frappe.cache().delete_key('enabled_users')
|
||||
|
||||
|
||||
def before_rename(self, old_name, new_name, merge=False):
|
||||
self.check_demo()
|
||||
|
|
@ -1230,3 +1236,10 @@ def generate_keys(user):
|
|||
def switch_theme(theme):
|
||||
if theme in ["Dark", "Light"]:
|
||||
frappe.db.set_value("User", frappe.session.user, "desk_theme", theme)
|
||||
|
||||
def get_enabled_users():
|
||||
def _get_enabled_users():
|
||||
enabled_users = frappe.get_all("User", filters={"enabled": "1"}, pluck="name")
|
||||
return enabled_users
|
||||
|
||||
return frappe.cache().get_value("enabled_users", _get_enabled_users)
|
||||
|
|
@ -5,6 +5,7 @@
|
|||
import frappe
|
||||
from frappe import _
|
||||
import frappe.cache_manager
|
||||
from frappe.core.doctype.user.user import get_enabled_users
|
||||
from frappe.model import log_types
|
||||
from frappe.model.document import Document
|
||||
from frappe.social.doctype.energy_point_settings.energy_point_settings import is_energy_point_enabled
|
||||
|
|
@ -44,7 +45,7 @@ class EnergyPointRule(Document):
|
|||
|
||||
try:
|
||||
for user in users:
|
||||
if not user or user == 'Administrator': continue
|
||||
if not is_eligible_user(user): continue
|
||||
create_energy_points_log(reference_doctype, reference_name, {
|
||||
'points': points,
|
||||
'user': user,
|
||||
|
|
@ -119,3 +120,8 @@ def get_energy_point_doctypes():
|
|||
d.reference_doctype for d in frappe.get_all('Energy Point Rule',
|
||||
['reference_doctype'], {'enabled': 1})
|
||||
]
|
||||
|
||||
def is_eligible_user(user):
|
||||
'''Checks if user is eligible to get energy points'''
|
||||
enabled_users = get_enabled_users()
|
||||
return user and user in enabled_users and user != 'Administrator'
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue