1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-18 08:16:07 +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 FileChooser from '../file-chooser/file-chooser';
import { SeahubSelect, NoGroupMessage } from '../common/select';
import toaster from '../../components/toast';
class GroupItem extends React.Component {
@@ -78,7 +79,7 @@ GroupItem.propTypes = {
item: PropTypes.object.isRequired,
permissions: PropTypes.array.isRequired,
showPath: PropTypes.bool.isRequired,
repoName: PropTypes.string.isRequired,
repoName: PropTypes.string,
deleteGroupPermissionItem: PropTypes.func.isRequired,
onChangeGroupPermission: PropTypes.func.isRequired,
};
@@ -128,6 +129,9 @@ class LibSubFolderSetGroupPermissionDialog extends React.Component {
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
});
}
}).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];
}
}
this.setState({
errorMsg: errorMsg,
groupPermissionItems: this.state.groupPermissionItems.concat(res.data.success),
@@ -174,20 +180,9 @@ class LibSubFolderSetGroupPermissionDialog extends React.Component {
permission: 'rw',
folderPath: ''
});
}).catch((error) => {
let errorMsg = '';
if (error.response) {
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]
});
}).catch(error => {
let errMessage = Utils.getErrorMsg(error);
toaster.danger(errMessage);
});
};
@@ -199,6 +194,9 @@ class LibSubFolderSetGroupPermissionDialog extends React.Component {
this.setState({
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);
request.then(() => {
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 SharePermissionEditor from '../select-editor/share-permission-editor';
import FileChooser from '../file-chooser/file-chooser';
import toaster from '../../components/toast';
class UserItem extends React.Component {
@@ -81,7 +82,7 @@ UserItem.propTypes = {
deleteUserFolderPermission: PropTypes.func.isRequired,
onChangeUserFolderPerm: PropTypes.func.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) {
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: '',
});
this.refs.userSelect.clearSelect();
}).catch((error) => {
let errorMsg = '';
if (error.response) {
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]
});
}).catch(error => {
let errMessage = Utils.getErrorMsg(error);
toaster.danger(errMessage);
});
};
@@ -186,6 +179,9 @@ class LibSubFolderSetUserPermissionDialog extends React.Component {
return deletedItem != item;
})
});
}).catch(error => {
let errMessage = Utils.getErrorMsg(error);
toaster.danger(errMessage);
});
};
@@ -201,6 +197,9 @@ class LibSubFolderSetUserPermissionDialog extends React.Component {
return item;
});
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):
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_list_mapping = default_ldap_role_list_mapping
USE_LDAP_ROLE_LIST_MAPPING = False
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:
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
ldap_role_mapping = ldap_role_mapping
except:
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):
@@ -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()
if user_role_list:
user_role = user_role_list[0].decode()
user_role = ldap_role_mapping(user_role)
if not USE_LDAP_ROLE_LIST_MAPPING:
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:
authc_id = authc_id_list[0].decode()