1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-08-01 23:38:37 +00:00

Merge branch 11.0

This commit is contained in:
lian 2024-08-13 10:59:48 +08:00
parent 0babffd734
commit 3a55d0d208
72 changed files with 53775 additions and 44381 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -13,6 +13,7 @@ from seahub.api2.authentication import TokenAuthentication
from seahub.api2.permissions import CanInviteGuest
from seahub.api2.throttling import UserRateThrottle
from seahub.api2.utils import api_error
from seahub.auth.utils import get_virtual_id_by_email
from seahub.invitations.models import Invitation
from seahub.base.accounts import User
from seahub.base.templatetags.seahub_tags import email2nickname
@ -56,6 +57,9 @@ class InvitationView(APIView):
@invitation_owner_check
def delete(self, request, invitation, format=None):
# Delete an invitation.
if invitation.accept_time:
err_msg = 'The invitation has already been accepted, please revoke it first.'
return api_error(status.HTTP_400_BAD_REQUEST, err_msg)
invitation.delete()
return Response({
@ -88,9 +92,9 @@ class InvitationRevokeView(APIView):
email = invitation.accepter
inviter = invitation.inviter
vid = get_virtual_id_by_email(email)
try:
user = User.objects.get(email)
user = User.objects.get(vid)
except User.DoesNotExist:
error_msg = 'User %s not found.' % email
return api_error(status.HTTP_404_NOT_FOUND, error_msg)

View File

@ -1,6 +1,6 @@
{% extends 'email_base.html' %}
{% load i18n %}
{% load i18n seahub_tags %}
{% block email_con %}
@ -9,7 +9,7 @@
<p style="color:#121214;font-size:14px;">{% trans "Hi," %}</p>
<p style="font-size:14px;color:#434144;">
{% blocktrans with account=email %}To reset the password of your account {{ account }} on {{ site_name }}, please click the following link: {% endblocktrans %}
{% blocktrans with account=user.username|email2nickname|escape %}To reset the password of your account {{ account }} on {{ site_name }}, please click the following link: {% endblocktrans %}
</p>
<p>

View File

@ -187,7 +187,7 @@ class TwoFactorVerifyView(SessionWizardView):
)
final_form_list.append(form_obj)
kwargs['remember_me'] = form.cleaned_data['remember_me']
kwargs['remember_me'] = form.cleaned_data.get('remember_me', False)
done_response = self.done(final_form_list, **kwargs)
self.storage.reset()
return done_response