diff --git a/seahub/api2/endpoints/admin/device_errors.py b/seahub/api2/endpoints/admin/device_errors.py index 307a6687b5..b39bb97f44 100644 --- a/seahub/api2/endpoints/admin/device_errors.py +++ b/seahub/api2/endpoints/admin/device_errors.py @@ -14,6 +14,7 @@ from seahub.api2.authentication import TokenAuthentication from seahub.api2.throttling import UserRateThrottle from seahub.api2.utils import api_error from seahub.api2.models import TokenV2 +from seahub.base.templatetags.seahub_tags import email2nickname from seahub.utils.timeutils import timestamp_to_isoformat_timestr from seahub.utils import is_pro_version @@ -41,6 +42,7 @@ class AdminDeviceErrors(APIView): for error in device_errors: result = {} result['email'] = error.email if error.email else '' + result['name'] = email2nickname(error.email) result['device_ip'] = error.peer_ip if error.peer_ip else '' result['repo_name'] = error.repo_name if error.repo_name else '' result['repo_id'] = error.repo_id if error.repo_id else '' diff --git a/seahub/api2/endpoints/admin/devices.py b/seahub/api2/endpoints/admin/devices.py index a053460082..018ac5510b 100644 --- a/seahub/api2/endpoints/admin/devices.py +++ b/seahub/api2/endpoints/admin/devices.py @@ -16,6 +16,7 @@ from seahub.api2.authentication import TokenAuthentication from seahub.api2.throttling import UserRateThrottle from seahub.api2.utils import api_error from seahub.api2.models import TokenV2, DESKTOP_PLATFORMS +from seahub.base.templatetags.seahub_tags import email2nickname logger = logging.getLogger(__name__) @@ -54,6 +55,7 @@ class AdminDevices(APIView): result['last_accessed'] = datetime_to_isoformat_timestr(device.last_accessed) result['last_login_ip'] = device.last_login_ip result['user'] = device.user + result['user_name'] = email2nickname(device.user) result['platform'] = device.platform result['is_desktop_client'] = False diff --git a/seahub/api2/endpoints/admin/group_libraries.py b/seahub/api2/endpoints/admin/group_libraries.py index f779dec034..f0e2f3cefc 100644 --- a/seahub/api2/endpoints/admin/group_libraries.py +++ b/seahub/api2/endpoints/admin/group_libraries.py @@ -13,6 +13,7 @@ from seahub.utils import is_org_context from seahub.api2.authentication import TokenAuthentication from seahub.api2.throttling import UserRateThrottle from seahub.api2.utils import api_error +from seahub.base.templatetags.seahub_tags import email2nickname logger = logging.getLogger(__name__) @@ -22,6 +23,7 @@ def get_group_repo_info(repo): result['name'] = repo.repo_name result['size'] = repo.size result['shared_by'] = repo.user + result['shared_by_name'] = email2nickname(repo.user) result['permission'] = repo.permission result['group_id'] = repo.group_id result['encrypted'] = repo.encrypted diff --git a/seahub/api2/endpoints/admin/group_members.py b/seahub/api2/endpoints/admin/group_members.py index 1195a070b5..17c5b217b6 100644 --- a/seahub/api2/endpoints/admin/group_members.py +++ b/seahub/api2/endpoints/admin/group_members.py @@ -12,6 +12,7 @@ from seaserv import seafile_api, ccnet_api from seahub.group.utils import get_group_member_info, is_group_member from seahub.avatar.settings import AVATAR_DEFAULT_SIZE from seahub.base.accounts import User +from seahub.base.templatetags.seahub_tags import email2nickname from seahub.api2.authentication import TokenAuthentication from seahub.api2.throttling import UserRateThrottle @@ -103,7 +104,7 @@ class AdminGroupMembers(APIView): if is_group_member(group_id, email, in_structure=False): result['failed'].append({ 'email': email, - 'error_msg': 'User %s is already a group member.' % email + 'error_msg': 'User %s is already a group member.' % email2nickname(email) }) continue diff --git a/seahub/api2/endpoints/admin/groups.py b/seahub/api2/endpoints/admin/groups.py index ba42140a94..f11145f45b 100644 --- a/seahub/api2/endpoints/admin/groups.py +++ b/seahub/api2/endpoints/admin/groups.py @@ -12,6 +12,7 @@ from seaserv import seafile_api, ccnet_api from pysearpc import SearpcError from seahub.base.accounts import User +from seahub.base.templatetags.seahub_tags import email2nickname from seahub.utils import is_valid_username, is_pro_version from seahub.utils.timeutils import timestamp_to_isoformat_timestr from seahub.group.utils import is_group_member, is_group_admin, \ @@ -31,6 +32,7 @@ def get_group_info(group_id): "id": group.id, "name": group.group_name, "owner": group.creator_name, + "owner_name": email2nickname(group.creator_name), "created_at": isoformat_timestr, "quota": seafile_api.get_group_quota(group_id) if is_pro_version() else 0, "parent_group_id": group.parent_group_id if is_pro_version() else 0 diff --git a/seahub/api2/endpoints/admin/operation_logs.py b/seahub/api2/endpoints/admin/operation_logs.py index d65855864d..005c4409e8 100644 --- a/seahub/api2/endpoints/admin/operation_logs.py +++ b/seahub/api2/endpoints/admin/operation_logs.py @@ -16,6 +16,7 @@ from seahub.api2.utils import api_error from seahub.api2.throttling import UserRateThrottle from seahub.api2.authentication import TokenAuthentication from seahub.api2.endpoints.utils import generate_links_header_for_paginator +from seahub.base.templatetags.seahub_tags import email2nickname logger = logging.getLogger(__name__) @@ -23,6 +24,7 @@ def get_log_info(log_obj): isoformat_timestr = datetime_to_isoformat_timestr(log_obj.datetime) log_info = { "email": log_obj.email, + "name": email2nickname(log_obj.email), "operation": log_obj.operation, "detail": json.loads(log_obj.detail), "datetime": isoformat_timestr, diff --git a/seahub/api2/endpoints/admin/trash_libraries.py b/seahub/api2/endpoints/admin/trash_libraries.py index c439729934..b786a56c3f 100644 --- a/seahub/api2/endpoints/admin/trash_libraries.py +++ b/seahub/api2/endpoints/admin/trash_libraries.py @@ -16,6 +16,7 @@ from seahub.utils.timeutils import timestamp_to_isoformat_timestr from seahub.api2.authentication import TokenAuthentication from seahub.api2.throttling import UserRateThrottle from seahub.api2.utils import api_error +from seahub.base.templatetags.seahub_tags import email2nickname from seahub.group.utils import group_id_to_name from seahub.api2.endpoints.group_owned_libraries import get_group_id_by_repo_owner @@ -31,6 +32,7 @@ def get_trash_repo_info(repo): result['name'] = repo.repo_name result['id'] = repo.repo_id result['owner'] = owner + result['owner_name'] = email2nickname(owner) result['delete_time'] = timestamp_to_isoformat_timestr(repo.del_time) if '@seafile_group' in owner: diff --git a/seahub/api2/endpoints/group_members.py b/seahub/api2/endpoints/group_members.py index ae5558e6e9..513341bde3 100644 --- a/seahub/api2/endpoints/group_members.py +++ b/seahub/api2/endpoints/group_members.py @@ -17,6 +17,7 @@ from seahub.api2.utils import api_error from seahub.api2.throttling import UserRateThrottle from seahub.api2.authentication import TokenAuthentication from seahub.avatar.settings import AVATAR_DEFAULT_SIZE +from seahub.base.templatetags.seahub_tags import email2nickname from seahub.utils import string2list, is_org_context from seahub.base.accounts import User from seahub.group.signals import add_user_to_group @@ -90,13 +91,13 @@ class GroupMembers(APIView): try: if is_group_member(group_id, email): - error_msg = _(u'User %s is already a group member.') % email + error_msg = _(u'User %s is already a group member.') % email2nickname(email) return api_error(status.HTTP_400_BAD_REQUEST, error_msg) if is_org_context(request): org_id = request.user.org.org_id if not ccnet_api.org_user_exists(org_id, email): - error_msg = _(u'User %s not found in organization.') % email + error_msg = _(u'User %s not found in organization.') % email2nickname(email) return api_error(status.HTTP_404_NOT_FOUND, error_msg) ccnet_api.group_add_member(group_id, username, email) @@ -274,19 +275,22 @@ class GroupMembersBulk(APIView): org_id = request.user.org.org_id for email in emails_list: + email_name = email2nickname(email) try: User.objects.get(email=email) except User.DoesNotExist: result['failed'].append({ 'email': email, - 'error_msg': 'User %s not found.' % email + 'email_name': email_name, + 'error_msg': 'User %s not found.' % email_name }) continue if is_group_member(group_id, email, in_structure=False): result['failed'].append({ 'email': email, - 'error_msg': _(u'User %s is already a group member.') % email + 'email_name': email_name, + 'error_msg': _(u'User %s is already a group member.') % email_name }) continue @@ -295,7 +299,8 @@ class GroupMembersBulk(APIView): seaserv.ccnet_threaded_rpc.org_user_exists(org_id, email): result['failed'].append({ 'email': email, - 'error_msg': _(u'User %s not found in organization.') % email + 'email_name': email_name, + 'error_msg': _(u'User %s not found in organization.') % email_name }) continue @@ -315,4 +320,8 @@ class GroupMembersBulk(APIView): 'error_msg': 'Internal Server Error' }) + add_user_to_group.send(sender=None, + group_staff=username, + group_id=group_id, + added_user=email) return Response(result) diff --git a/seahub/api2/views.py b/seahub/api2/views.py index 7cb9814e46..3cb7a7d8c7 100644 --- a/seahub/api2/views.py +++ b/seahub/api2/views.py @@ -718,6 +718,7 @@ class Repos(APIView): "owner_contact_email": contact_email_dict.get(r.user, ''), "name": r.repo_name, "owner_nickname": nickname_dict.get(r.user, ''), + "owner_name": nickname_dict.get(r.user, ''), "mtime": r.last_modify, "mtime_relative": translate_seahub_time(r.last_modify), "modifier_email": r.last_modifier, @@ -990,6 +991,7 @@ class PubRepos(APIView): "desc": r.repo_desc, "owner": r.user, "owner_nickname": email2nickname(r.user), + "owner_name": email2nickname(r.user), "mtime": r.last_modified, "mtime_relative": translate_seahub_time(r.last_modified), "size": r.size, @@ -1091,6 +1093,7 @@ class PubRepos(APIView): "permission": 'rw', # Always have read-write permission to owned repo "owner": username, "owner_nickname": email2nickname(username), + "owner_name": email2nickname(username), } return Response(pub_repo, status=201) @@ -4471,6 +4474,7 @@ class GroupRepos(APIView): "permission": permission, "owner": username, "owner_nickname": email2nickname(username), + "owner_name": email2nickname(username), "share_from_me": True, "modifier_email": repo.last_modifier, "modifier_contact_email": email2contact_email(repo.last_modifier), @@ -4530,6 +4534,7 @@ class GroupRepos(APIView): "permission": r.permission, "owner": r.user, "owner_nickname": nickname_dict.get(r.user, ''), + "owner_name": nickname_dict.get(r.user, ''), "share_from_me": True if username == r.user else False, "modifier_email": r.last_modifier, "modifier_contact_email": contact_email_dict.get(r.last_modifier, ''), diff --git a/seahub/api2/views_auth.py b/seahub/api2/views_auth.py index 42d037c899..2663717cb3 100644 --- a/seahub/api2/views_auth.py +++ b/seahub/api2/views_auth.py @@ -46,6 +46,6 @@ class ClientLoginTokenView(APIView): if has_two_factor_auth() and two_factor_auth_enabled(request.user): return {} randstr = gen_token(max_length=32) - token = ClientLoginToken(randstr, request.user.username) + token = ClientLoginToken(token=randstr, username=request.user.username) token.save() return {'token': randstr} diff --git a/seahub/templates/file_access.html b/seahub/templates/file_access.html index 65538812eb..855372b805 100644 --- a/seahub/templates/file_access.html +++ b/seahub/templates/file_access.html @@ -32,7 +32,7 @@ {% avatar e.user 16 %} {% if e.user %} - {{ e.user }} + {{ e.user|email2nickname }} {% else %} {% trans "Anonymous User" %} {% endif %} diff --git a/seahub/templates/js/sysadmin-templates.html b/seahub/templates/js/sysadmin-templates.html index 4ec7175d08..0afc49856f 100644 --- a/seahub/templates/js/sysadmin-templates.html +++ b/seahub/templates/js/sysadmin-templates.html @@ -249,7 +249,7 @@