mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-19 10:26:17 +00:00
delete-org-tip (#4492)
This commit is contained in:
@@ -6,9 +6,11 @@ import { siteRoot, gettext } from '../../../utils/constants';
|
|||||||
import EmptyTip from '../../../components/empty-tip';
|
import EmptyTip from '../../../components/empty-tip';
|
||||||
import Loading from '../../../components/loading';
|
import Loading from '../../../components/loading';
|
||||||
import Paginator from '../../../components/paginator';
|
import Paginator from '../../../components/paginator';
|
||||||
|
import { seafileAPI } from '../../../utils/seafile-api.js';
|
||||||
import SysAdminUserRoleEditor from '../../../components/select-editor/sysadmin-user-role-editor';
|
import SysAdminUserRoleEditor from '../../../components/select-editor/sysadmin-user-role-editor';
|
||||||
import CommonOperationConfirmationDialog from '../../../components/dialog/common-operation-confirmation-dialog';
|
import CommonOperationConfirmationDialog from '../../../components/dialog/common-operation-confirmation-dialog';
|
||||||
import UserLink from '../user-link';
|
import UserLink from '../user-link';
|
||||||
|
import toaster from '../../../components/toast';
|
||||||
|
|
||||||
const { availableRoles } = window.sysadmin.pageOptions;
|
const { availableRoles } = window.sysadmin.pageOptions;
|
||||||
|
|
||||||
@@ -85,7 +87,8 @@ class Item extends Component {
|
|||||||
super(props);
|
super(props);
|
||||||
this.state = {
|
this.state = {
|
||||||
isOpIconShown: false,
|
isOpIconShown: false,
|
||||||
isDeleteDialogOpen: false
|
isDeleteDialogOpen: false,
|
||||||
|
deleteDialogMsg: '',
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -101,7 +104,23 @@ class Item extends Component {
|
|||||||
if (e) {
|
if (e) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
}
|
}
|
||||||
this.setState({isDeleteDialogOpen: !this.state.isDeleteDialogOpen});
|
this.setState({isDeleteDialogOpen: !this.state.isDeleteDialogOpen}, () => {
|
||||||
|
if (this.state.isDeleteDialogOpen) {
|
||||||
|
seafileAPI.sysAdminGetOrg(this.props.item.org_id).then((res) => {
|
||||||
|
let orgName = '<span class="op-target">' + Utils.HTMLescape(res.data.org_name) + '</span>';
|
||||||
|
let userCount = '<span class="op-target">' + Utils.HTMLescape(res.data.users_count) + '</span>';
|
||||||
|
let repoCount = '<span class="op-target">' + Utils.HTMLescape(res.data.repos_count) + '</span>';
|
||||||
|
let deleteDialogMsg = gettext('Are you sure you want to delete {placeholder} ?<br/>{userCount} user(s) and {repoCount} libraries of this orgnization will also be deleted.')
|
||||||
|
.replace('{placeholder}', orgName)
|
||||||
|
.replace('{userCount}', userCount)
|
||||||
|
.replace('{repoCount}', repoCount);
|
||||||
|
this.setState({deleteDialogMsg: deleteDialogMsg});
|
||||||
|
}).catch(error => {
|
||||||
|
let errorMsg = Utils.getErrorMsg(error);
|
||||||
|
toaster.danger(errorMsg);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
updateRole = (role) => {
|
updateRole = (role) => {
|
||||||
@@ -114,10 +133,7 @@ class Item extends Component {
|
|||||||
|
|
||||||
render() {
|
render() {
|
||||||
const { item } = this.props;
|
const { item } = this.props;
|
||||||
const { isOpIconShown, isDeleteDialogOpen } = this.state;
|
const { isOpIconShown, isDeleteDialogOpen, deleteDialogMsg } = this.state;
|
||||||
|
|
||||||
const orgName = '<span class="op-target">' + Utils.HTMLescape(item.org_name) + '</span>';
|
|
||||||
const deleteDialogMsg = gettext('Are you sure you want to delete {placeholder} ?').replace('{placeholder}', orgName);
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Fragment>
|
<Fragment>
|
||||||
|
@@ -70,6 +70,9 @@ def get_org_detailed_info(org):
|
|||||||
users = ccnet_api.get_org_emailusers(org.url_prefix, -1, -1)
|
users = ccnet_api.get_org_emailusers(org.url_prefix, -1, -1)
|
||||||
org_info['users_count'] = len(users)
|
org_info['users_count'] = len(users)
|
||||||
|
|
||||||
|
repos = seafile_api.get_org_repo_list(org_id, -1, -1)
|
||||||
|
org_info['repos_count'] = len(repos)
|
||||||
|
|
||||||
# groups
|
# groups
|
||||||
groups = ccnet_api.get_org_groups(org_id, -1, -1)
|
groups = ccnet_api.get_org_groups(org_id, -1, -1)
|
||||||
org_info['groups_count'] = len(groups)
|
org_info['groups_count'] = len(groups)
|
||||||
@@ -379,6 +382,7 @@ class AdminOrganization(APIView):
|
|||||||
users = ccnet_api.get_org_emailusers(org.url_prefix, -1, -1)
|
users = ccnet_api.get_org_emailusers(org.url_prefix, -1, -1)
|
||||||
for u in users:
|
for u in users:
|
||||||
ccnet_api.remove_org_user(org_id, u.email)
|
ccnet_api.remove_org_user(org_id, u.email)
|
||||||
|
User.objects.get(email=u.email).delete()
|
||||||
|
|
||||||
# remove org groups
|
# remove org groups
|
||||||
groups = ccnet_api.get_org_groups(org_id, -1, -1)
|
groups = ccnet_api.get_org_groups(org_id, -1, -1)
|
||||||
|
Reference in New Issue
Block a user