Add API tokens support #9
@ -51,12 +51,12 @@ export function TokenRightsEditor(p: {
|
||||
<TableHead>
|
||||
<TableRow>
|
||||
<TableCell>VM name</TableCell>
|
||||
<TableCell>Get definition</TableCell>
|
||||
<TableCell>Update</TableCell>
|
||||
<TableCell>Delete</TableCell>
|
||||
<TableCell>Get XML definition</TableCell>
|
||||
<TableCell>Get autostart</TableCell>
|
||||
<TableCell>Set autostart</TableCell>
|
||||
<TableCell align="center">Get definition</TableCell>
|
||||
<TableCell align="center">Update</TableCell>
|
||||
<TableCell align="center">Delete</TableCell>
|
||||
<TableCell align="center">Get XML definition</TableCell>
|
||||
<TableCell align="center">Get autostart</TableCell>
|
||||
<TableCell align="center">Set autostart</TableCell>
|
||||
</TableRow>
|
||||
</TableHead>
|
||||
<TableBody>
|
||||
@ -127,15 +127,15 @@ export function TokenRightsEditor(p: {
|
||||
<TableHead>
|
||||
<TableRow>
|
||||
<TableCell>VM name</TableCell>
|
||||
<TableCell>Get state</TableCell>
|
||||
<TableCell>Start</TableCell>
|
||||
<TableCell>Shutdown</TableCell>
|
||||
<TableCell>Kill</TableCell>
|
||||
<TableCell>Reset</TableCell>
|
||||
<TableCell>Suspend</TableCell>
|
||||
<TableCell>Resume</TableCell>
|
||||
<TableCell>Screenshot</TableCell>
|
||||
<TableCell>VNC token</TableCell>
|
||||
<TableCell align="center">Get state</TableCell>
|
||||
<TableCell align="center">Start</TableCell>
|
||||
<TableCell align="center">Shutdown</TableCell>
|
||||
<TableCell align="center">Kill</TableCell>
|
||||
<TableCell align="center">Reset</TableCell>
|
||||
<TableCell align="center">Suspend</TableCell>
|
||||
<TableCell align="center">Resume</TableCell>
|
||||
<TableCell align="center">Screenshot</TableCell>
|
||||
<TableCell align="center">VNC token</TableCell>
|
||||
</TableRow>
|
||||
</TableHead>
|
||||
<TableBody>
|
||||
@ -236,6 +236,152 @@ export function TokenRightsEditor(p: {
|
||||
</TableBody>
|
||||
</Table>
|
||||
</RightsSection>
|
||||
|
||||
{/* Networks */}
|
||||
<RightsSection label="Networks">
|
||||
<RouteRight
|
||||
{...p}
|
||||
right={{ verb: "POST", path: "/api/network/create" }}
|
||||
label="Create a new network"
|
||||
/>
|
||||
<RouteRight
|
||||
{...p}
|
||||
right={{ verb: "GET", path: "/api/network/list" }}
|
||||
label="Get list of networks"
|
||||
/>
|
||||
</RightsSection>
|
||||
|
||||
{/* Networks management */}
|
||||
<RightsSection label="Networks management">
|
||||
<Table size="small">
|
||||
<TableHead>
|
||||
<TableRow>
|
||||
<TableCell>Network name</TableCell>
|
||||
<TableCell align="center">Get definition</TableCell>
|
||||
<TableCell align="center">Update</TableCell>
|
||||
<TableCell align="center">Delete</TableCell>
|
||||
<TableCell align="center">Get XML definition</TableCell>
|
||||
<TableCell align="center">Get autostart</TableCell>
|
||||
<TableCell align="center">Set autostart</TableCell>
|
||||
<TableCell align="center">Get status</TableCell>
|
||||
<TableCell align="center">Start</TableCell>
|
||||
<TableCell align="center">Stop</TableCell>
|
||||
</TableRow>
|
||||
</TableHead>
|
||||
<TableBody>
|
||||
{/* All networks operations */}
|
||||
<TableRow hover>
|
||||
<TableCell>
|
||||
<i>All</i>
|
||||
</TableCell>
|
||||
<CellRight
|
||||
{...p}
|
||||
right={{ verb: "GET", path: "/api/network/*" }}
|
||||
/>
|
||||
<CellRight
|
||||
{...p}
|
||||
right={{ verb: "PUT", path: "/api/network/*" }}
|
||||
/>
|
||||
<CellRight
|
||||
{...p}
|
||||
right={{ verb: "DELETE", path: "/api/network/*" }}
|
||||
/>
|
||||
<CellRight
|
||||
{...p}
|
||||
right={{ verb: "GET", path: "/api/network/*/src" }}
|
||||
/>
|
||||
<CellRight
|
||||
{...p}
|
||||
right={{ verb: "GET", path: "/api/network/*/autostart" }}
|
||||
/>
|
||||
<CellRight
|
||||
{...p}
|
||||
right={{ verb: "PUT", path: "/api/network/*/autostart" }}
|
||||
/>
|
||||
<CellRight
|
||||
{...p}
|
||||
right={{ verb: "GET", path: "/api/network/*/status" }}
|
||||
/>
|
||||
<CellRight
|
||||
{...p}
|
||||
right={{ verb: "GET", path: "/api/network/*/start" }}
|
||||
/>
|
||||
<CellRight
|
||||
{...p}
|
||||
right={{ verb: "GET", path: "/api/network/*/stop" }}
|
||||
/>
|
||||
</TableRow>
|
||||
|
||||
{/* Per network operations */}
|
||||
{p.networks.map((v, n) => (
|
||||
<TableRow hover key={n}>
|
||||
<TableCell>{v.name}</TableCell>
|
||||
<CellRight
|
||||
{...p}
|
||||
right={{ verb: "GET", path: `/api/network/${v.uuid}` }}
|
||||
parent={{ verb: "GET", path: "/api/network/*" }}
|
||||
/>
|
||||
<CellRight
|
||||
{...p}
|
||||
right={{ verb: "PUT", path: `/api/network/${v.uuid}` }}
|
||||
parent={{ verb: "PUT", path: "/api/network/*" }}
|
||||
/>
|
||||
<CellRight
|
||||
{...p}
|
||||
right={{ verb: "DELETE", path: `/api/network/${v.uuid}` }}
|
||||
parent={{ verb: "DELETE", path: "/api/network/*" }}
|
||||
/>
|
||||
<CellRight
|
||||
{...p}
|
||||
right={{ verb: "GET", path: `/api/network/${v.uuid}/src` }}
|
||||
parent={{ verb: "GET", path: "/api/network/*/src" }}
|
||||
/>
|
||||
<CellRight
|
||||
{...p}
|
||||
right={{
|
||||
verb: "GET",
|
||||
path: `/api/network/${v.uuid}/autostart`,
|
||||
}}
|
||||
parent={{ verb: "GET", path: "/api/network/*/autostart" }}
|
||||
/>
|
||||
<CellRight
|
||||
{...p}
|
||||
right={{
|
||||
verb: "PUT",
|
||||
path: `/api/network/${v.uuid}/autostart`,
|
||||
}}
|
||||
parent={{ verb: "PUT", path: "/api/network/*/autostart" }}
|
||||
/>
|
||||
<CellRight
|
||||
{...p}
|
||||
right={{
|
||||
verb: "GET",
|
||||
path: `/api/network/${v.uuid}/status`,
|
||||
}}
|
||||
parent={{ verb: "GET", path: "/api/network/*/status" }}
|
||||
/>
|
||||
<CellRight
|
||||
{...p}
|
||||
right={{
|
||||
verb: "GET",
|
||||
path: `/api/network/${v.uuid}/start`,
|
||||
}}
|
||||
parent={{ verb: "GET", path: "/api/network/*/start" }}
|
||||
/>
|
||||
<CellRight
|
||||
{...p}
|
||||
right={{
|
||||
verb: "GET",
|
||||
path: `/api/network/${v.uuid}/stop`,
|
||||
}}
|
||||
parent={{ verb: "GET", path: "/api/network/*/stop" }}
|
||||
/>
|
||||
</TableRow>
|
||||
))}
|
||||
</TableBody>
|
||||
</Table>
|
||||
</RightsSection>
|
||||
|
||||
{/* ISO files */}
|
||||
<RightsSection label="ISO files">
|
||||
<RouteRight
|
||||
@ -365,6 +511,7 @@ function RouteRight(p: RightOpts): React.ReactElement {
|
||||
},
|
||||
}}
|
||||
>
|
||||
{p.label ? (
|
||||
<FormControlLabel
|
||||
control={
|
||||
<Checkbox
|
||||
@ -375,6 +522,15 @@ function RouteRight(p: RightOpts): React.ReactElement {
|
||||
}
|
||||
label={p.label}
|
||||
/>
|
||||
) : (
|
||||
<span>
|
||||
<Checkbox
|
||||
checked={activated || parentActivated}
|
||||
disabled={!p.editable || parentActivated}
|
||||
onChange={(_e, a) => toggle(a)}
|
||||
/>
|
||||
</span>
|
||||
)}
|
||||
</Tooltip>
|
||||
</div>
|
||||
);
|
||||
|
Loading…
Reference in New Issue
Block a user