mirror of
https://github.com/casdoor/casdoor.git
synced 2025-07-03 20:50:19 +08:00
feat: add default user mapping in custom oauth2 provider (#2819)
This commit is contained in:
@ -40,6 +40,14 @@ require("codemirror/mode/css/css");
|
||||
const {Option} = Select;
|
||||
const {TextArea} = Input;
|
||||
|
||||
const defaultUserMapping = {
|
||||
id: "id",
|
||||
username: "username",
|
||||
displayName: "displayName",
|
||||
email: "email",
|
||||
avatarUrl: "avatarUrl",
|
||||
};
|
||||
|
||||
class ProviderEditPage extends React.Component {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
@ -70,7 +78,7 @@ class ProviderEditPage extends React.Component {
|
||||
|
||||
if (res.status === "ok") {
|
||||
const provider = res.data;
|
||||
provider.userMapping = provider.userMapping || {};
|
||||
provider.userMapping = provider.userMapping || defaultUserMapping;
|
||||
this.setState({
|
||||
provider: provider,
|
||||
});
|
||||
@ -141,8 +149,16 @@ class ProviderEditPage extends React.Component {
|
||||
}
|
||||
|
||||
updateUserMappingField(key, value) {
|
||||
const requiredKeys = ["id", "username", "displayName"];
|
||||
const provider = this.state.provider;
|
||||
|
||||
if (value === "" && requiredKeys.includes(key)) {
|
||||
Setting.showMessage("error", i18next.t("provider:This field is required"));
|
||||
return;
|
||||
}
|
||||
|
||||
provider.userMapping[key] = value;
|
||||
|
||||
this.setState({
|
||||
provider: provider,
|
||||
});
|
||||
|
Reference in New Issue
Block a user