1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-13 22:01:06 +00:00

Disable org member create encrypt and clean trash (#6679)

* update

* update

* optimize code

* update

* optimize code

* update

* update

* Update __init__.py

* Update __init__.py

---------

Co-authored-by: 孙永强 <11704063+s-yongqiang@user.noreply.gitee.com>
Co-authored-by: r350178982 <32759763+r350178982@users.noreply.github.com>
This commit is contained in:
awu0403
2024-09-03 18:16:38 +08:00
committed by GitHub
parent 5ce112881f
commit 697aaf3c41
13 changed files with 152 additions and 39 deletions

View File

@@ -12,6 +12,9 @@ import FileItem from './file-item';
import '../../../css/system-admin-web-settings.css';
import CheckboxItem from '../../sys-admin/web-settings/checkbox-item';
const { sysEnableUserCleanTrash, sysEnableEncryptedLibrary } = window.org.pageOptions;
class OrgWebSettings extends Component {
constructor(props) {
@@ -23,6 +26,8 @@ class OrgWebSettings extends Component {
logoPath: logoPath,
file_ext_white_list: '',
force_adfs_login: false,
disable_org_encrypted_library: false,
disable_org_user_clean_trash: false
};
}
@@ -32,7 +37,9 @@ class OrgWebSettings extends Component {
loading: false,
config_dict: res.data,
file_ext_white_list: res.data.file_ext_white_list,
force_adfs_login: res.data.force_adfs_login
force_adfs_login: res.data.force_adfs_login,
disable_org_encrypted_library: res.data.disable_org_encrypted_library,
disable_org_user_clean_trash: res.data.disable_org_user_clean_trash
});
}).catch((error) => {
this.setState({
@@ -66,23 +73,8 @@ class OrgWebSettings extends Component {
});
};
updateSSOLgoin = (key, value) => {
orgSaveSetting = (key, value) => {
seafileAPI.orgAdminSetSysSettingInfo(orgID, key, value).then((res) => {
this.setState({
force_adfs_login: res.data.force_adfs_login
});
toaster.success(gettext('Success'));
}).catch((error) => {
let errMessage = Utils.getErrorMsg(error);
toaster.danger(errMessage);
});
};
updateFileExtWhiteList = (key, value) => {
seafileAPI.orgAdminSetSysSettingInfo(orgID, key, value).then((res) => {
this.setState({
file_ext_white_list: res.data.file_ext_white_list
});
toaster.success(gettext('Success'));
}).catch((error) => {
let errMessage = Utils.getErrorMsg(error);
@@ -91,7 +83,7 @@ class OrgWebSettings extends Component {
};
render() {
const { loading, errorMsg, config_dict, file_ext_white_list, force_adfs_login } = this.state;
const { loading, errorMsg, config_dict, file_ext_white_list, force_adfs_login, disable_org_encrypted_library, disable_org_user_clean_trash } = this.state;
let logoPath = this.state.logoPath;
logoPath = logoPath.indexOf('image-view') != -1 ? logoPath : mediaUrl + logoPath;
return (
@@ -134,7 +126,7 @@ class OrgWebSettings extends Component {
<Section headingText={gettext('File Upload')}>
<Fragment>
<InputItem
saveSetting={this.updateFileExtWhiteList}
saveSetting={this.orgSaveSetting}
displayName={gettext('File extension white list')}
keyText='file_ext_white_list'
value={file_ext_white_list}
@@ -145,7 +137,7 @@ class OrgWebSettings extends Component {
{enableMultiADFS &&
<Section headingText={gettext('User')}>
<CheckboxItem
saveSetting={this.updateSSOLgoin}
saveSetting={this.orgSaveSetting}
displayName={gettext('Disable SAML user email / password login')}
keyText='force_adfs_login'
value={force_adfs_login}
@@ -153,6 +145,30 @@ class OrgWebSettings extends Component {
/>
</Section>
}
{(sysEnableUserCleanTrash || sysEnableEncryptedLibrary) &&
<Section headingText={gettext('Library')}>
<Fragment>
{sysEnableEncryptedLibrary &&
<CheckboxItem
saveSetting={this.orgSaveSetting}
displayName='Encrypted library'
keyText='disable_org_encrypted_library'
value={disable_org_encrypted_library}
helpTip={gettext('Not allow user to create encrypted libraries')}
/>
}
{sysEnableUserCleanTrash &&
<CheckboxItem
saveSetting={this.orgSaveSetting}
displayName='Disable user clean trash'
keyText='disable_org_user_clean_trash'
value={disable_org_user_clean_trash}
helpTip={gettext('Not allow user to clean library trash')}
/>
}
</Fragment>
</Section>
}
</Fragment>
}
</div>

View File

@@ -204,7 +204,7 @@ class RepoFolderTrash extends React.Component {
</a>
<div className="d-flex justify-content-between align-items-center op-bar">
<p className="m-0 text-truncate d-flex"><span className="mr-1">{gettext('Current path: ')}</span>{showFolder ? this.renderFolderPath() : <span className="text-truncate" title={repoFolderName}>{repoFolderName}</span>}</p>
{(path == '/' && enableUserCleanTrash && !showFolder && isRepoAdmin) &&
{(path === '/' && enableUserCleanTrash && !showFolder && isRepoAdmin) &&
<button className="btn btn-secondary clean flex-shrink-0 ml-4" onClick={this.cleanTrash}>{gettext('Clean')}</button>
}
</div>