1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-17 15:53:28 +00:00
* update

* Update account.py
This commit is contained in:
Ranjiwei
2024-09-21 10:01:09 +08:00
committed by GitHub
parent 58bceaba62
commit d1713ca7ab
3 changed files with 29 additions and 1 deletions

View File

@@ -105,6 +105,7 @@ class Item extends Component {
case 'group_delete': return gettext('Delete Group'); case 'group_delete': return gettext('Delete Group');
case 'user_add': return gettext('Add User'); case 'user_add': return gettext('Add User');
case 'user_delete': return gettext('Delete User'); case 'user_delete': return gettext('Delete User');
case 'user_migrate': return gettext('Migrate User');
default: return ''; default: return '';
} }
}; };
@@ -184,6 +185,12 @@ class Item extends Component {
.replace('{user}', '<span class="font-weight-bold">' + detail.email+ '</span>'); .replace('{user}', '<span class="font-weight-bold">' + detail.email+ '</span>');
return detailText; return detailText;
case 'user_migrate':
detailText = gettext('User migrate from {user_from} to {user_to}')
.replace('{user_from}', '<span class="font-weight-bold">' + detail.from + '</span>')
.replace('{user_to}', '<span class="font-weight-bold">' + detail.to+ '</span>');
return detailText;
default: return ''; default: return '';
} }
}; };

View File

@@ -28,9 +28,12 @@ USER_ADD = 'user_add'
# 'user_delete': {'email': deleted_user} # 'user_delete': {'email': deleted_user}
USER_DELETE = 'user_delete' USER_DELETE = 'user_delete'
# 'user_migrate': {'from': from_user, 'to': to_user}
USER_MIGRATE = 'user_migrate'
ADMIN_LOG_OPERATION_TYPE = (REPO_TRANSFER, REPO_DELETE, ADMIN_LOG_OPERATION_TYPE = (REPO_TRANSFER, REPO_DELETE,
GROUP_CREATE, GROUP_TRANSFER, GROUP_DELETE, GROUP_CREATE, GROUP_TRANSFER, GROUP_DELETE,
USER_ADD, USER_DELETE) USER_ADD, USER_DELETE, USER_MIGRATE)
class AdminLogManager(models.Manager): class AdminLogManager(models.Manager):

View File

@@ -13,6 +13,8 @@ from rest_framework.views import APIView
import seaserv import seaserv
from seaserv import seafile_api, ccnet_threaded_rpc, ccnet_api from seaserv import seafile_api, ccnet_threaded_rpc, ccnet_api
from seahub.admin_log.models import USER_MIGRATE
from seahub.admin_log.signals import admin_operation
from seahub.api2.authentication import TokenAuthentication from seahub.api2.authentication import TokenAuthentication
from seahub.api2.serializers import AccountSerializer from seahub.api2.serializers import AccountSerializer
from seahub.api2.throttling import UserRateThrottle from seahub.api2.throttling import UserRateThrottle
@@ -21,6 +23,7 @@ from seahub.base.accounts import User
from seahub.base.templatetags.seahub_tags import email2nickname from seahub.base.templatetags.seahub_tags import email2nickname
from seahub.profile.models import Profile, DetailedProfile from seahub.profile.models import Profile, DetailedProfile
from seahub.institutions.models import Institution from seahub.institutions.models import Institution
from seahub.share.models import UploadLinkShare, FileShare
from seahub.utils import is_valid_username, is_org_context from seahub.utils import is_valid_username, is_org_context
from seahub.utils.file_size import get_file_size_unit from seahub.utils.file_size import get_file_size_unit
from seahub.group.utils import is_group_member from seahub.group.utils import is_group_member
@@ -107,6 +110,21 @@ class Account(APIView):
if from_user == g.creator_name: if from_user == g.creator_name:
ccnet_threaded_rpc.set_group_creator(g.id, to_user) ccnet_threaded_rpc.set_group_creator(g.id, to_user)
# reshare repo to links
try:
UploadLinkShare.objects.filter(username=from_user).update(username=to_user)
FileShare.objects.filter(username=from_user).update(username=to_user)
except Exception as e:
logger.error(e)
error_msg = 'Internal Server Error'
return api_error(status.HTTP_500_INTERNAL_SERVER_ERROR, error_msg)
admin_op_detail = {
"from": from_user,
"to": to_user
}
admin_operation.send(sender=None, admin_name=request.user.username,
operation=USER_MIGRATE, detail=admin_op_detail)
return Response({'success': True}) return Response({'success': True})
else: else:
return api_error(status.HTTP_400_BAD_REQUEST, 'op can only be migrate.') return api_error(status.HTTP_400_BAD_REQUEST, 'op can only be migrate.')