import CRUDBase from '../CRUDBase.js'
import { session } from '../../service/Session.service.js'
class ProviderResource extends CRUDBase {
constructor ( ) {
super ( )
this . endpoint = '/api/v1/saml/providers'
this . required _fields = [ 'name' , 'acs_url' , 'entity_id' ]
this . permission _base = 'v1:saml:providers'
this . item = 'SAML Service Provider'
this . plural = 'SAML Service Providers'
this . listing _definition = {
display : ` SAML Service Providers are applications that support external authentication to a SAML Identity Provider. In this case, ${ session . get ( 'app.name' ) } is the identity provider, so these external applications can authenticate against it.
< br > < br >
To do this , you need to know the SAML service provider ' s entity ID , assertion consumer service URL , and single - logout URL ( if supported ) . ` ,
columns : [
{
name : 'Provider Name' ,
field : 'name' ,
} ,
{
name : 'Entity ID' ,
field : 'entity_id' ,
} ,
{
name : 'Has SLO?' ,
field : 'slo_url' ,
renderer : 'boolean' ,
} ,
{
name : 'ACS URL' ,
field : 'acs_url' ,
} ,
] ,
actions : [
{
type : 'resource' ,
position : 'main' ,
action : 'insert' ,
text : 'Create New' ,
color : 'success' ,
} ,
{
type : 'resource' ,
position : 'row' ,
action : 'update' ,
icon : 'fa fa-edit' ,
color : 'primary' ,
} ,
{
type : 'resource' ,
position : 'row' ,
action : 'delete' ,
icon : 'fa fa-times' ,
color : 'danger' ,
confirm : true ,
} ,
] ,
}
this . form _definition = {
fields : [
{
name : 'Provider Name' ,
field : 'name' ,
placeholder : 'Awesome External App' ,
required : true ,
type : 'text' ,
} ,
{
name : 'Entity ID' ,
field : 'entity_id' ,
placeholder : 'https://my.awesome.app/saml/metadata.xml' ,
required : true ,
type : 'text' ,
} ,
{
name : 'Assertion Consumer Service URL' ,
field : 'acs_url' ,
placeholder : 'https://my.awesome.app/saml/acs' ,
required : true ,
type : 'text' ,
} ,
{
name : 'Single-Logout URL' ,
field : 'slo_url' ,
placeholder : 'https://my.awesome.app/saml/logout' ,
type : 'text' ,
} ,
] ,
}
}
}
const saml _provider = new ProviderResource ( )
export { saml _provider }