Skip to content

Commit

Permalink
Merge branch '10.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
imwhatiam committed Jan 16, 2024
2 parents 527fe67 + c7a7767 commit 249f4f8
Show file tree
Hide file tree
Showing 3 changed files with 52 additions and 3 deletions.
20 changes: 19 additions & 1 deletion frontend/src/pages/org-admin/org-users-search-users.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ class OrgUsersSearchUsersResult extends React.Component {
};

render() {
let { orgUsers } = this.props;
let { orgUsers, changeStatus } = this.props;
return (
<div className="cur-view-content">
<table>
Expand All @@ -52,6 +52,7 @@ class OrgUsersSearchUsersResult extends React.Component {
toggleDelete={this.props.toggleDelete}
onFreezedItem={this.onFreezedItem}
onUnfreezedItem={this.onUnfreezedItem}
changeStatus={changeStatus}
/>
);})}
</tbody>
Expand Down Expand Up @@ -159,6 +160,22 @@ class OrgUsersSearchUsers extends Component {
}
};

changeStatus= (email, isActive) => {
seafileAPI.orgAdminChangeOrgUserStatus(orgID, email, isActive).then(res => {
let users = this.state.orgUsers.map(item => {
if (item.email == email) {
item['is_active']= res.data['is_active'];
}
return item;
});
this.setState({orgUsers: users});
toaster.success(gettext('Edit succeeded.'));
}).catch(error => {
let errMessage = Utils.getErrorMsg(error);
toaster.danger(errMessage);
});
}

render() {
const { query, isSubmitBtnActive } = this.state;

Expand Down Expand Up @@ -189,6 +206,7 @@ class OrgUsersSearchUsers extends Component {
<h4 className="border-bottom font-weight-normal mb-2 pb-1">{gettext('Result')}</h4>
<OrgUsersSearchUsersResult
toggleDelete={this.deleteUser}
changeStatus={this.changeStatus}
orgUsers={this.state.orgUsers}
/>
</div>
Expand Down
2 changes: 1 addition & 1 deletion seahub/auth/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,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:
Expand Down
33 changes: 32 additions & 1 deletion seahub/base/accounts.py
Original file line number Diff line number Diff line change
Expand Up @@ -682,7 +682,7 @@ def email_user(self, subject, message, from_email=None):
"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()

Expand All @@ -706,6 +706,37 @@ def freeze_user(self, notify_admins=False):
# 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.
Expand Down

0 comments on commit 249f4f8

Please sign in to comment.