43 lines
1.2 KiB
JavaScript
43 lines
1.2 KiB
JavaScript
import SamlAuthProvider from '../../models/saml-auth-provider.ee.js';
|
|
import SamlAuthProvidersRoleMapping from '../../models/saml-auth-providers-role-mapping.ee.js';
|
|
import isEmpty from 'lodash/isEmpty.js';
|
|
|
|
const upsertSamlAuthProvidersRoleMappings = async (
|
|
_parent,
|
|
params,
|
|
context
|
|
) => {
|
|
context.currentUser.can('update', 'SamlAuthProvider');
|
|
|
|
const samlAuthProviderId = params.input.samlAuthProviderId;
|
|
|
|
const samlAuthProvider = await SamlAuthProvider.query()
|
|
.findById(samlAuthProviderId)
|
|
.throwIfNotFound();
|
|
|
|
await samlAuthProvider
|
|
.$relatedQuery('samlAuthProvidersRoleMappings')
|
|
.delete();
|
|
|
|
if (isEmpty(params.input.samlAuthProvidersRoleMappings)) {
|
|
return [];
|
|
}
|
|
|
|
const samlAuthProvidersRoleMappingsData =
|
|
params.input.samlAuthProvidersRoleMappings.map(
|
|
(samlAuthProvidersRoleMapping) => ({
|
|
...samlAuthProvidersRoleMapping,
|
|
samlAuthProviderId: samlAuthProvider.id,
|
|
})
|
|
);
|
|
|
|
const samlAuthProvidersRoleMappings =
|
|
await SamlAuthProvidersRoleMapping.query().insert(
|
|
samlAuthProvidersRoleMappingsData
|
|
);
|
|
|
|
return samlAuthProvidersRoleMappings;
|
|
};
|
|
|
|
export default upsertSamlAuthProvidersRoleMappings;
|