1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-19 18:29:23 +00:00

Merge branch '11.0'

This commit is contained in:
llj
2024-07-24 15:55:01 +08:00
3 changed files with 51 additions and 37 deletions

View File

@@ -7,6 +7,7 @@ import { Utils } from '../../utils/utils';
import SharePermissionEditor from '../select-editor/share-permission-editor'; import SharePermissionEditor from '../select-editor/share-permission-editor';
import FileChooser from '../file-chooser/file-chooser'; import FileChooser from '../file-chooser/file-chooser';
import { SeahubSelect, NoGroupMessage } from '../common/select'; import { SeahubSelect, NoGroupMessage } from '../common/select';
import toaster from '../../components/toast';
class GroupItem extends React.Component { class GroupItem extends React.Component {
@@ -78,7 +79,7 @@ GroupItem.propTypes = {
item: PropTypes.object.isRequired, item: PropTypes.object.isRequired,
permissions: PropTypes.array.isRequired, permissions: PropTypes.array.isRequired,
showPath: PropTypes.bool.isRequired, showPath: PropTypes.bool.isRequired,
repoName: PropTypes.string.isRequired, repoName: PropTypes.string,
deleteGroupPermissionItem: PropTypes.func.isRequired, deleteGroupPermissionItem: PropTypes.func.isRequired,
onChangeGroupPermission: PropTypes.func.isRequired, onChangeGroupPermission: PropTypes.func.isRequired,
}; };
@@ -128,6 +129,9 @@ class LibSubFolderSetGroupPermissionDialog extends React.Component {
value: item.name value: item.name
}; };
}); });
}).catch(error => {
let errMessage = Utils.getErrorMsg(error);
toaster.danger(errMessage);
}); });
}; };
@@ -142,6 +146,9 @@ class LibSubFolderSetGroupPermissionDialog extends React.Component {
groupPermissionItems: res.data groupPermissionItems: res.data
}); });
} }
}).catch(error => {
let errMessage = Utils.getErrorMsg(error);
toaster.danger(errMessage);
}); });
}; };
@@ -166,7 +173,6 @@ class LibSubFolderSetGroupPermissionDialog extends React.Component {
errorMsg[i] = res.data.failed[i]; errorMsg[i] = res.data.failed[i];
} }
} }
this.setState({ this.setState({
errorMsg: errorMsg, errorMsg: errorMsg,
groupPermissionItems: this.state.groupPermissionItems.concat(res.data.success), groupPermissionItems: this.state.groupPermissionItems.concat(res.data.success),
@@ -174,20 +180,9 @@ class LibSubFolderSetGroupPermissionDialog extends React.Component {
permission: 'rw', permission: 'rw',
folderPath: '' folderPath: ''
}); });
}).catch((error) => { }).catch(error => {
let errorMsg = ''; let errMessage = Utils.getErrorMsg(error);
if (error.response) { toaster.danger(errMessage);
if (error.response.data && error.response.data['error_msg']) {
errorMsg = error.response.data['error_msg'];
} else {
errorMsg = gettext('Error');
}
} else {
errorMsg = gettext('Please check the network.');
}
this.setState({
errorMsg: [errorMsg]
});
}); });
}; };
@@ -199,6 +194,9 @@ class LibSubFolderSetGroupPermissionDialog extends React.Component {
this.setState({ this.setState({
groupPermissionItems: this.state.groupPermissionItems.filter(deletedItem => { return deletedItem != item; }) groupPermissionItems: this.state.groupPermissionItems.filter(deletedItem => { return deletedItem != item; })
}); });
}).catch(error => {
let errMessage = Utils.getErrorMsg(error);
toaster.danger(errMessage);
}); });
}; };
@@ -208,6 +206,9 @@ class LibSubFolderSetGroupPermissionDialog extends React.Component {
seafileAPI.updateGroupFolderPerm(item.repo_id, permission, item.folder_path, item.group_id); seafileAPI.updateGroupFolderPerm(item.repo_id, permission, item.folder_path, item.group_id);
request.then(() => { request.then(() => {
this.updateGroupPermission(item, permission); this.updateGroupPermission(item, permission);
}).catch(error => {
let errMessage = Utils.getErrorMsg(error);
toaster.danger(errMessage);
}); });
}; };

View File

@@ -7,6 +7,7 @@ import { Utils } from '../../utils/utils';
import UserSelect from '../user-select'; import UserSelect from '../user-select';
import SharePermissionEditor from '../select-editor/share-permission-editor'; import SharePermissionEditor from '../select-editor/share-permission-editor';
import FileChooser from '../file-chooser/file-chooser'; import FileChooser from '../file-chooser/file-chooser';
import toaster from '../../components/toast';
class UserItem extends React.Component { class UserItem extends React.Component {
@@ -81,7 +82,7 @@ UserItem.propTypes = {
deleteUserFolderPermission: PropTypes.func.isRequired, deleteUserFolderPermission: PropTypes.func.isRequired,
onChangeUserFolderPerm: PropTypes.func.isRequired, onChangeUserFolderPerm: PropTypes.func.isRequired,
showPath: PropTypes.bool.isRequired, showPath: PropTypes.bool.isRequired,
repoName: PropTypes.string.isRequired, repoName: PropTypes.string,
}; };
@@ -125,6 +126,9 @@ class LibSubFolderSetUserPermissionDialog extends React.Component {
if (res.data.length !== 0) { if (res.data.length !== 0) {
this.setState({ userFolderPermItems: res.data }); this.setState({ userFolderPermItems: res.data });
} }
}).catch(error => {
let errMessage = Utils.getErrorMsg(error);
toaster.danger(errMessage);
}); });
} }
@@ -159,20 +163,9 @@ class LibSubFolderSetUserPermissionDialog extends React.Component {
folderPath: '', folderPath: '',
}); });
this.refs.userSelect.clearSelect(); this.refs.userSelect.clearSelect();
}).catch((error) => { }).catch(error => {
let errorMsg = ''; let errMessage = Utils.getErrorMsg(error);
if (error.response) { toaster.danger(errMessage);
if (error.response.data && error.response.data['error_msg']) {
errorMsg = error.response.data['error_msg'];
} else {
errorMsg = gettext('Error');
}
} else {
errorMsg = gettext('Please check the network.');
}
this.setState({
errorMsg: [errorMsg]
});
}); });
}; };
@@ -186,6 +179,9 @@ class LibSubFolderSetUserPermissionDialog extends React.Component {
return deletedItem != item; return deletedItem != item;
}) })
}); });
}).catch(error => {
let errMessage = Utils.getErrorMsg(error);
toaster.danger(errMessage);
}); });
}; };
@@ -201,6 +197,9 @@ class LibSubFolderSetUserPermissionDialog extends React.Component {
return item; return item;
}); });
this.setState({ userFolderPermItems: userFolderPermItems }); this.setState({ userFolderPermItems: userFolderPermItems });
}).catch(error => {
let errMessage = Utils.getErrorMsg(error);
toaster.danger(errMessage);
}); });
}; };

View File

@@ -91,18 +91,28 @@ UNUSABLE_PASSWORD = '!' # This will never be a valid hash
def default_ldap_role_mapping(role): def default_ldap_role_mapping(role):
return role return role
def default_ldap_role_list_mapping(role_list):
return role_list[0] if role_list else ''
ldap_role_mapping = default_ldap_role_mapping ldap_role_mapping = default_ldap_role_mapping
ldap_role_list_mapping = default_ldap_role_list_mapping
USE_LDAP_ROLE_LIST_MAPPING = False
if ENABLE_LDAP: if ENABLE_LDAP:
current_path = os.path.dirname(os.path.abspath(__file__))
conf_dir = os.path.join(current_path, '../../../../conf')
sys.path.append(conf_dir)
try: try:
current_path = os.path.dirname(os.path.abspath(__file__))
conf_dir = os.path.join(current_path, '../../../../conf')
sys.path.append(conf_dir)
from seahub_custom_functions import ldap_role_mapping from seahub_custom_functions import ldap_role_mapping
ldap_role_mapping = ldap_role_mapping ldap_role_mapping = ldap_role_mapping
except: except:
pass pass
try:
from seahub_custom_functions import ldap_role_list_mapping
ldap_role_list_mapping = ldap_role_list_mapping
USE_LDAP_ROLE_LIST_MAPPING = True
except:
pass
class UserManager(object): class UserManager(object):
@@ -860,8 +870,12 @@ def parse_ldap_res(ldap_search_result, enable_sasl, sasl_mechanism, sasl_authc_i
contact_email = contact_email_list[0].decode() contact_email = contact_email_list[0].decode()
if user_role_list: if user_role_list:
user_role = user_role_list[0].decode() if not USE_LDAP_ROLE_LIST_MAPPING:
user_role = ldap_role_mapping(user_role) role = user_role_list[0].decode()
user_role = ldap_role_mapping(role)
else:
role_list = [role.decode() for role in user_role_list]
user_role = ldap_role_list_mapping(role_list)
if authc_id_list: if authc_id_list:
authc_id = authc_id_list[0].decode() authc_id = authc_id_list[0].decode()