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:
@@ -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);
|
||||
});
|
||||
};
|
||||
|
||||
|
@@ -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);
|
||||
});
|
||||
};
|
||||
|
||||
|
@@ -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()
|
||||
|
Reference in New Issue
Block a user