1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-20 10:58:33 +00:00

Merge branch '9.0'

This commit is contained in:
王健辉
2022-10-21 17:03:30 +08:00
6 changed files with 35 additions and 29 deletions

View File

@@ -4,7 +4,7 @@ on:
push: push:
branches: branches:
- master - master
- "8.0" - "9.0"
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -76,28 +76,12 @@ class UserItem extends React.Component {
this.props.toggleRevokeAdmin(email); this.props.toggleRevokeAdmin(email);
} }
changeStatus = (st) => { changeStatus = (value) => {
let isActive; const isActive = value == 'active';
if (st == 'active') { if (isActive) {
isActive = 'true'; toaster.notify(gettext('It may take some time, please wait.'));
} else {
isActive = 'false';
} }
this.props.changeStatus(this.props.user.email, isActive);
seafileAPI.orgAdminChangeOrgUserStatus(orgID, this.props.user.email, isActive).then(res => {
this.setState({
currentStatus: isActive == 'true' ? 'active' : 'inactive',
highlight: false,
showMenu: false,
});
toaster.success(gettext('Edit succeeded.'));
}).catch(error => {
let errMessage = Utils.getErrorMsg(error);
if (errMessage === gettext('Error')) {
errMessage = gettext('Edit failed.');
}
toaster.danger(errMessage);
});
} }
onDropdownToggleClick = (e) => { onDropdownToggleClick = (e) => {
@@ -147,7 +131,7 @@ class UserItem extends React.Component {
<UserStatusEditor <UserStatusEditor
isTextMode={true} isTextMode={true}
isEditIconShow={isEditIconShow} isEditIconShow={isEditIconShow}
currentStatus={this.state.currentStatus} currentStatus={user.is_active ? 'active' : 'inactive'}
statusArray={this.statusArray} statusArray={this.statusArray}
onStatusChanged={this.changeStatus} onStatusChanged={this.changeStatus}
/> />

View File

@@ -6,6 +6,7 @@ import UserItem from './org-user-item';
const propTypes = { const propTypes = {
initOrgUsersData: PropTypes.func.isRequired, initOrgUsersData: PropTypes.func.isRequired,
toggleDelete: PropTypes.func.isRequired, toggleDelete: PropTypes.func.isRequired,
changeStatus: PropTypes.func.isRequired,
orgUsers: PropTypes.array.isRequired, orgUsers: PropTypes.array.isRequired,
page: PropTypes.number.isRequired, page: PropTypes.number.isRequired,
pageNext: PropTypes.bool.isRequired, pageNext: PropTypes.bool.isRequired,
@@ -79,6 +80,7 @@ class OrgUsersList extends React.Component {
currentTab="users" currentTab="users"
isItemFreezed={this.state.isItemFreezed} isItemFreezed={this.state.isItemFreezed}
toggleDelete={this.props.toggleDelete} toggleDelete={this.props.toggleDelete}
changeStatus={this.props.changeStatus}
onFreezedItem={this.onFreezedItem} onFreezedItem={this.onFreezedItem}
onUnfreezedItem={this.onUnfreezedItem} onUnfreezedItem={this.onUnfreezedItem}
/> />

View File

@@ -166,6 +166,22 @@ class OrgUsers 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);
});
}
searchItems = (keyword) => { searchItems = (keyword) => {
navigate(`${siteRoot}org/useradmin/search-users/?query=${encodeURIComponent(keyword)}`); navigate(`${siteRoot}org/useradmin/search-users/?query=${encodeURIComponent(keyword)}`);
} }
@@ -210,6 +226,7 @@ class OrgUsers extends Component {
<OrgUsersList <OrgUsersList
initOrgUsersData={this.initOrgUsersData} initOrgUsersData={this.initOrgUsersData}
toggleDelete={this.toggleOrgUsersDelete} toggleDelete={this.toggleOrgUsersDelete}
changeStatus={this.changeStatus}
orgUsers={this.state.orgUsers} orgUsers={this.state.orgUsers}
page={this.state.page} page={this.state.page}
pageNext={this.state.pageNext} pageNext={this.state.pageNext}

View File

@@ -289,6 +289,9 @@ class OrgAdminUsers(APIView):
logger.error(e) logger.error(e)
user_info['quota'] = -1 user_info['quota'] = -1
user_info['quota_usage'] = user_info['self_usage']
user_info['quota_total'] = user_info['quota']
return Response(user_info) return Response(user_info)

View File

@@ -975,9 +975,9 @@ def view_history_file_common(request, repo_id, ret_dict):
if is_textual_file(file_type=filetype): if is_textual_file(file_type=filetype):
handle_textual_file(request, filetype, inner_path, ret_dict) handle_textual_file(request, filetype, inner_path, ret_dict)
elif filetype == DOCUMENT: elif filetype == DOCUMENT:
handle_document(inner_path, obj_id, fileext, ret_dict) handle_document(raw_path, obj_id, fileext, ret_dict)
elif filetype == SPREADSHEET: elif filetype == SPREADSHEET:
handle_spreadsheet(inner_path, obj_id, fileext, ret_dict) handle_spreadsheet(raw_path, obj_id, fileext, ret_dict)
else: else:
pass pass
else: else:
@@ -1271,9 +1271,9 @@ def view_shared_file(request, fileshare):
if is_textual_file(file_type=filetype): if is_textual_file(file_type=filetype):
handle_textual_file(request, filetype, inner_path, ret_dict) handle_textual_file(request, filetype, inner_path, ret_dict)
elif filetype == DOCUMENT: elif filetype == DOCUMENT:
handle_document(inner_path, obj_id, fileext, ret_dict) handle_document(raw_path, obj_id, fileext, ret_dict)
elif filetype == SPREADSHEET: elif filetype == SPREADSHEET:
handle_spreadsheet(inner_path, obj_id, fileext, ret_dict) handle_spreadsheet(raw_path, obj_id, fileext, ret_dict)
elif filetype == XMIND: elif filetype == XMIND:
xmind_image_path = get_thumbnail_image_path(obj_id, XMIND_IMAGE_SIZE) xmind_image_path = get_thumbnail_image_path(obj_id, XMIND_IMAGE_SIZE)
if not os.path.exists(xmind_image_path) and not extract_xmind_image(repo_id, path)[0]: if not os.path.exists(xmind_image_path) and not extract_xmind_image(repo_id, path)[0]:
@@ -1470,9 +1470,9 @@ def view_file_via_shared_dir(request, fileshare):
if is_textual_file(file_type=filetype): if is_textual_file(file_type=filetype):
handle_textual_file(request, filetype, inner_path, ret_dict) handle_textual_file(request, filetype, inner_path, ret_dict)
elif filetype == DOCUMENT: elif filetype == DOCUMENT:
handle_document(inner_path, obj_id, fileext, ret_dict) handle_document(raw_path, obj_id, fileext, ret_dict)
elif filetype == SPREADSHEET: elif filetype == SPREADSHEET:
handle_spreadsheet(inner_path, obj_id, fileext, ret_dict) handle_spreadsheet(raw_path, obj_id, fileext, ret_dict)
elif filetype == IMAGE: elif filetype == IMAGE:
current_commit = get_commits(repo_id, 0, 1)[0] current_commit = get_commits(repo_id, 0, 1)[0]
real_parent_dir = os.path.dirname(real_path) real_parent_dir = os.path.dirname(real_path)