mirror of
https://github.com/grafana/grafana.git
synced 2025-02-15 01:53:33 -06:00
* Add initial authentication config page skeleton * Add initial SAML config page WIP * Add few more pages * Add connect to IdP page * Assertion mappings page stub and url params * Able to save settings * Some tweaks for authentication page * Tweak behaviour * Tweak provider name * Move SAML config pages to enterprise * minor refactor * Able to reset settings * Configure key and cert from UI * Refactor WIP * Tweak styles * Optional save button * Some tweaks for the page * Don't show info popup when save settings * Improve key/cert validation * Fetch provider status and display on auth page * Add settings list to the auth page * Show call to action card if no auth configured * clean up * Show authentication page only if SAML available * Add access control for SSO config page * Add feature toggle for auth config UI * Add code owners for auth config page * Auth config UI disabled by default * Fix feature toggle check * Apply suggestions from review * Refactor: use forms for steps * Clean up * Improve authentication page loading * Fix CTA link * Minor tweaks * Fix page route * Fix formatting * Fix generated code formatting
58 lines
1.6 KiB
TypeScript
58 lines
1.6 KiB
TypeScript
import { createSlice, PayloadAction } from '@reduxjs/toolkit';
|
|
|
|
import { AuthConfigState, AuthProviderStatus, Settings, SettingsError } from 'app/types';
|
|
|
|
export const initialState: AuthConfigState = {
|
|
settings: {},
|
|
providerStatuses: {},
|
|
isLoading: false,
|
|
};
|
|
|
|
const authConfigSlice = createSlice({
|
|
name: 'authConfig',
|
|
initialState,
|
|
reducers: {
|
|
settingsUpdated: (state, action: PayloadAction<Settings>): AuthConfigState => {
|
|
return { ...state, settings: action.payload };
|
|
},
|
|
providerStatusesLoaded: (state, action: PayloadAction<{ [key: string]: AuthProviderStatus }>): AuthConfigState => {
|
|
return { ...state, providerStatuses: action.payload };
|
|
},
|
|
loadingBegin: (state: AuthConfigState) => {
|
|
return { ...state, isLoading: true };
|
|
},
|
|
loadingEnd: (state: AuthConfigState) => {
|
|
return { ...state, isLoading: false };
|
|
},
|
|
setError: (state, action: PayloadAction<SettingsError>): AuthConfigState => {
|
|
return { ...state, updateError: action.payload };
|
|
},
|
|
resetError: (state): AuthConfigState => {
|
|
return { ...state, updateError: undefined };
|
|
},
|
|
setWarning: (state, action: PayloadAction<SettingsError>): AuthConfigState => {
|
|
return { ...state, warning: action.payload };
|
|
},
|
|
resetWarning: (state): AuthConfigState => {
|
|
return { ...state, warning: undefined };
|
|
},
|
|
},
|
|
});
|
|
|
|
export const {
|
|
settingsUpdated,
|
|
providerStatusesLoaded,
|
|
loadingBegin,
|
|
loadingEnd,
|
|
setError,
|
|
resetError,
|
|
setWarning,
|
|
resetWarning,
|
|
} = authConfigSlice.actions;
|
|
|
|
export const authConfigReducer = authConfigSlice.reducer;
|
|
|
|
export default {
|
|
authConfig: authConfigReducer,
|
|
};
|