You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
113 lines
3.2 KiB
113 lines
3.2 KiB
import CRUDBase from './CRUDBase.js'
|
|
import { session } from '../service/Session.service.js'
|
|
|
|
class AppResource extends CRUDBase {
|
|
endpoint = '/api/v1/applications'
|
|
required_fields = ['name', 'identifier']
|
|
permission_base = 'v1:applications'
|
|
|
|
item = 'Application'
|
|
plural = 'Applications'
|
|
|
|
listing_definition = {
|
|
display: `
|
|
An application is anything that can authenticate users against ${session.get('app.name')}. Applications can have any number of associated LDAP clients, SAML service providers, and OAuth2 clients.
|
|
`,
|
|
columns: [
|
|
{
|
|
name: 'Name',
|
|
field: 'name',
|
|
},
|
|
{
|
|
name: 'Identifier',
|
|
field: 'identifier',
|
|
},
|
|
{
|
|
name: 'Description',
|
|
field: 'description',
|
|
},
|
|
],
|
|
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,
|
|
},
|
|
],
|
|
}
|
|
|
|
form_definition = {
|
|
fields: [
|
|
{
|
|
name: 'Name',
|
|
field: 'name',
|
|
placeholder: 'Awesome App',
|
|
required: true,
|
|
type: 'text',
|
|
},
|
|
{
|
|
name: 'Identifier',
|
|
field: 'identifier',
|
|
placeholder: 'awesome_app',
|
|
required: true,
|
|
type: 'text',
|
|
},
|
|
{
|
|
name: 'Description',
|
|
field: 'description',
|
|
type: 'textarea',
|
|
},
|
|
{
|
|
name: 'Associated LDAP Clients',
|
|
field: 'ldap_client_ids',
|
|
type: 'select.dynamic.multiple',
|
|
options: {
|
|
resource: 'ldap/Client',
|
|
display: 'name',
|
|
value: 'id',
|
|
},
|
|
},
|
|
{
|
|
name: 'Associated OAuth2 Clients',
|
|
field: 'oauth_client_ids',
|
|
type: 'select.dynamic.multiple',
|
|
options: {
|
|
resource: 'oauth/Client',
|
|
display: 'name',
|
|
value: 'id',
|
|
},
|
|
},
|
|
{
|
|
name: 'Associated SAML Service Providers',
|
|
field: 'saml_service_provider_ids',
|
|
type: 'select.dynamic.multiple',
|
|
options: {
|
|
resource: 'saml/Provider',
|
|
display: 'name',
|
|
value: 'id',
|
|
},
|
|
},
|
|
],
|
|
}
|
|
}
|
|
|
|
const app = new AppResource()
|
|
export { app }
|