90 lines
2.5 KiB
JavaScript
90 lines
2.5 KiB
JavaScript
|
import CRUDBase from '../CRUDBase.js'
|
||
|
|
||
|
class TokenResource extends CRUDBase {
|
||
|
endpoint = '/api/v1/reflect/tokens'
|
||
|
required_fields = ['client_id']
|
||
|
permission_base = 'v1:reflect:tokens'
|
||
|
|
||
|
item = 'API Token'
|
||
|
plural = 'API Tokens'
|
||
|
|
||
|
listing_definition = {
|
||
|
display: `
|
||
|
This allows you to create bearer tokens manually to allow for easier testing of the API. Notably, this is meant as a measure for testing and development, not for long term use.
|
||
|
<br><br>
|
||
|
If you have an application that needs to regularly interact with the API, set it up as an <a href="/dash/c/listing/oauth/Client">OAuth2 Client</a>. Manually-created tokens expire 7 days after their creation.
|
||
|
`,
|
||
|
columns: [
|
||
|
{
|
||
|
name: 'Token',
|
||
|
field: 'token',
|
||
|
},
|
||
|
{
|
||
|
name: 'Client',
|
||
|
field: 'client_display',
|
||
|
},
|
||
|
{
|
||
|
name: 'Expires',
|
||
|
field: 'expires',
|
||
|
},
|
||
|
],
|
||
|
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: 'Client',
|
||
|
field: 'client_id',
|
||
|
required: true,
|
||
|
type: 'select.dynamic',
|
||
|
options: {
|
||
|
resource: 'oauth/Client',
|
||
|
display: 'name',
|
||
|
value: 'uuid',
|
||
|
},
|
||
|
},
|
||
|
{
|
||
|
name: 'Bearer Token',
|
||
|
field: 'token',
|
||
|
type: 'text',
|
||
|
readonly: true,
|
||
|
hidden: ['insert'],
|
||
|
},
|
||
|
{
|
||
|
name: 'Expires',
|
||
|
field: 'expires',
|
||
|
type: 'text',
|
||
|
readonly: true,
|
||
|
hidden: ['insert'],
|
||
|
},
|
||
|
],
|
||
|
}
|
||
|
}
|
||
|
|
||
|
const reflect_token = new TokenResource()
|
||
|
export { reflect_token }
|