mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-25 14:50:29 +00:00
notify org admin when user froze (#5811)
This commit is contained in:
@@ -142,7 +142,7 @@ def login(request, template_name='registration/login.html',
|
||||
try:
|
||||
user = User.objects.get(email)
|
||||
if user.is_active:
|
||||
user.freeze_user(notify_admins=True)
|
||||
user.freeze_user(notify_admins=True, notify_org_admins=True)
|
||||
logger.warn('Login attempt limit reached, freeze the user email/username: %s, ip: %s, attemps: %d' %
|
||||
(login, ip, failed_attempt))
|
||||
except User.DoesNotExist:
|
||||
|
@@ -468,7 +468,7 @@ class User(object):
|
||||
"Sends an e-mail to this User."
|
||||
send_mail(subject, message, from_email, [self.email])
|
||||
|
||||
def freeze_user(self, notify_admins=False):
|
||||
def freeze_user(self, notify_admins=False, notify_org_admins=False):
|
||||
self.is_active = False
|
||||
self.save()
|
||||
|
||||
@@ -492,6 +492,37 @@ class User(object):
|
||||
# restore current language
|
||||
translation.activate(cur_language)
|
||||
|
||||
if notify_org_admins:
|
||||
org = None
|
||||
if is_pro_version():
|
||||
orgs = ccnet_api.get_orgs_by_user(self.username)
|
||||
if orgs:
|
||||
org = orgs[0]
|
||||
|
||||
org_members = list()
|
||||
if org:
|
||||
org_members = ccnet_api.get_org_emailusers(org.url_prefix, -1, -1)
|
||||
for u in org_members:
|
||||
if not (ccnet_api.is_org_staff(org.org_id, u.email) == 1):
|
||||
continue
|
||||
|
||||
# save current language
|
||||
cur_language = translation.get_language()
|
||||
|
||||
# get and active user language
|
||||
user_language = Profile.objects.get_user_language(u.email)
|
||||
translation.activate(user_language)
|
||||
|
||||
send_html_email_with_dj_template(u.email,
|
||||
subject=_('Account %(account)s froze on %(site)s.') % {
|
||||
"account": self.email,
|
||||
"site": get_site_name()},
|
||||
dj_template='sysadmin/user_freeze_email.html',
|
||||
context={'user': self.email})
|
||||
|
||||
# restore current language
|
||||
translation.activate(cur_language)
|
||||
|
||||
def remove_repo_passwds(self):
|
||||
"""
|
||||
Remove all repo decryption passwords stored on server.
|
||||
|
Reference in New Issue
Block a user