Skip to content

Commit

Permalink
Create admin:permissions:schemes:list command
Browse files Browse the repository at this point in the history
  • Loading branch information
JJLongoria committed Sep 12, 2022
1 parent ef57184 commit 134e766
Show file tree
Hide file tree
Showing 3 changed files with 113 additions and 1 deletion.
57 changes: 57 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,11 @@ Now Stil in BETA Version because is not fully tested and continue in development
- [**ListWrapper**](#listwrapper)
- [**Participant**](#participant)
- [**Permission**](#permission)
- [**PermissionGrant**](#permissiongrant)
- [**PermissionHolder**](#permissionholder)
- [**PermissionsOutput**](#permissionsoutput)
- [**PermissionScheme**](#permissionscheme)
- [**PermissionSchemes**](#permissionschemes)
- [**Priority**](#priority)
- [**Project**](#project)
- [**ProjectCategory**](#projectcategory)
Expand Down Expand Up @@ -1491,6 +1495,36 @@ This type support **Generic Types** (**`T`**). That means can be of many types (
"description": "string",
}
```
---
## [**PermissionGrant**]()
```json
{
"id": "number",
"holder": "PermissionHolder",
"permission": "string",
"self?": "string",
}
```
- See [**PermissionHolder**](#permissionholder) Definition.

---
## [**PermissionHolder**]()
```json
{
"type": "string",
"parameter": "string",
"user": "User",
"group": "Group",
"field": "Field",
"projecRtole": "ProjectRole",
"expand": "string",
}
```
- See [**ProjectRole**](#projectrole) Definition.
- See [**Field**](#field) Definition.
- See [**Group**](#group) Definition.
- See [**User**](#user) Definition.

---
## [**PermissionsOutput**]()
```json
Expand All @@ -1500,6 +1534,29 @@ This type support **Generic Types** (**`T`**). That means can be of many types (
```
- See [**Permission**](#permission) Definition.

---
## [**PermissionScheme**]()
```json
{
"id": "number",
"name": "string",
"description": "string",
"permissions": "PermissionGrant[]",
"expand": "string",
"self?": "string",
}
```
- See [**PermissionGrant**](#permissiongrant) Definition.

---
## [**PermissionSchemes**]()
```json
{
"permissionSchemes": "{ [key: string]: PermissionScheme }",
}
```
- See [**PermissionScheme**](#permissionscheme) Definition.

---
## [**Priority**]()
```json
Expand Down
40 changes: 40 additions & 0 deletions src/commands/admin/permissions/schemes/list.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
import { JiraServerConnector, PermissionScheme, PermissionSchemes } from 'jira-server-connector';
import { BaseCommand, BuildFlags } from '../../../../libs/core/baseCommand';
import { JiraCLIResponse } from '../../../../libs/core/jiraResponse';
import { PermissionSchemeColumns } from '../../../../libs/core/tables';
import { UX } from '../../../../libs/core/ux';

export default class List extends BaseCommand {
static description = 'Returns a list of all permission schemes. By default only shortened beans are returned. If you want to include permissions of all the schemes, then specify the permissions expand parameter. Permissions will be included also if you specify any other expand parameter. ' + UX.processDocumentation('<doc:PermissionSchemes>');
static examples = [
'$ jiraserver admin:permissions:schemes:list -a "MyAlias" --json',
'$ jiraserver admin:permissions:schemes:list -a "MyAlias" --csv',
'$ jiraserver admin:permissions:schemes:list -a "MyAlias"',
];

static flags = {
...BaseCommand.flags,
alias: BuildFlags.alias,
csv: BuildFlags.csv,
expand: BuildFlags.expand(),
};

async run(): Promise<JiraCLIResponse<PermissionSchemes>> {
const response = new JiraCLIResponse<PermissionSchemes>();
const connector = new JiraServerConnector(this.localConfig.getConnectorOptions(this.flags.alias));
try {
const result = await connector.permissionSchemes.list(this.flags.expand);
response.result = result;
response.status = 0;
response.message = this.getRecordsFoundText(result.permissionSchemes.length, 'Permission Scheme');
this.ux.log(response.message);
this.ux.table<PermissionScheme>(result.permissionSchemes, PermissionSchemeColumns, {
csv: this.flags.csv,
});
} catch (error) {
this.processError(response, error);
}

return response;
}
}
17 changes: 16 additions & 1 deletion src/libs/core/tables.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { CliUx } from '@oclif/core';
import { ApplicationProperty, ApplicationRole, Attachment, AttachmentMeta, Avatar, ColumnItem, Comment, Component, ComponentIssuesCount, Configuration, CreateMeta, CustomField, CustomFieldOption, Dashboard, DeletedFieldsOutput, EntityProperty, EntityPropertyKey, Field, FieldMeta, Filter, FilterPermission, Group, GroupSuggestion, Issue, IssueLink, IssueLinkType, IssuePickerSection, IssueRemoteLink, IssueTransition, IssueType, IssueTypeScheme, IssueVotes, IssueWatchers, IssueWorklog, LinkIssue, Permission, Project, SecurityScheme, ShareScope, User, UserPermission } from 'jira-server-connector';
import { ApplicationProperty, ApplicationRole, Attachment, AttachmentMeta, Avatar, ColumnItem, Comment, Component, ComponentIssuesCount, Configuration, CreateMeta, CustomField, CustomFieldOption, Dashboard, DeletedFieldsOutput, EntityProperty, EntityPropertyKey, Field, FieldMeta, Filter, FilterPermission, Group, GroupSuggestion, Issue, IssueLink, IssueLinkType, IssuePickerSection, IssueRemoteLink, IssueTransition, IssueType, IssueTypeScheme, IssueVotes, IssueWatchers, IssueWorklog, LinkIssue, Permission, PermissionScheme, Project, SecurityScheme, ShareScope, User, UserPermission } from 'jira-server-connector';
import { Instance } from '../types';

export const InstanceColumns: CliUx.Table.table.Columns<Record<string, Instance>> = {
Expand Down Expand Up @@ -1005,3 +1005,18 @@ export const UserPermissionColumns: CliUx.Table.table.Columns<Record<string, Use
header: 'Have Permission',
},
};

export const PermissionSchemeColumns: CliUx.Table.table.Columns<Record<string, PermissionScheme>> = {
key: {
header: 'Key',
},
name: {
header: 'Name',
},
description: {
header: 'Description',
},
expand: {
header: 'Expand',
},
};

0 comments on commit 134e766

Please sign in to comment.