From ff42c89cc4b33d82beec1e5ca703b13f551d5463 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Thu, 24 Sep 2020 10:32:15 -0400 Subject: [PATCH] Closes #5177: Note permissions required for running reports and custom scripts --- docs/additional-features/custom-scripts.md | 24 +++++++++++++++++++++ docs/additional-features/reports.md | 9 +++++--- docs/media/admin_ui_run_permission.png | Bin 0 -> 8174 bytes 3 files changed, 30 insertions(+), 3 deletions(-) create mode 100644 docs/media/admin_ui_run_permission.png diff --git a/docs/additional-features/custom-scripts.md b/docs/additional-features/custom-scripts.md index 128739780..28d1bf856 100644 --- a/docs/additional-features/custom-scripts.md +++ b/docs/additional-features/custom-scripts.md @@ -231,6 +231,30 @@ An IPv4 or IPv6 network with a mask. Returns a `netaddr.IPNetwork` object. Two a * `min_prefix_length` - Minimum length of the mask * `max_prefix_length` - Maximum length of the mask +## Running Custom Scripts + +!!! note + To run a custom script, a user must be assigned the `extras.run_script` permission. This is achieved by assigning the user (or group) a permission on the Script object and specifying the `run` action in the admin UI as shown below. + + ![Adding the run action to a permission](../../media/admin_ui_run_permission.png) + +### Via the Web UI + +Custom scripts can be run via the web UI by navigating to the script, completing any required form data, and clicking the "run script" button. + +### Via the API + +To run a script via the REST API, issue a POST request to the script's endpoint specifying the form data and commitment. For example, to run a script named `example.MyReport`, we would make a request such as the following: + +```no-highlight +curl -X POST \ +-H "Authorization: Token $TOKEN" \ +-H "Content-Type: application/json" \ +-H "Accept: application/json; indent=4" \ +http://netbox/api/extras/scripts/example.MyReport/ \ +--data '{"data": {"foo": "somevalue", "bar": 123}, "commit": true}' +``` + ## Example Below is an example script that creates new objects for a planned site. The user is prompted for three variables: diff --git a/docs/additional-features/reports.md b/docs/additional-features/reports.md index e845117c0..9d60f797e 100644 --- a/docs/additional-features/reports.md +++ b/docs/additional-features/reports.md @@ -101,11 +101,14 @@ Once you have created a report, it will appear in the reports list. Initially, r ## Running Reports +!!! note + To run a report, a user must be assigned the `extras.run_report` permission. This is achieved by assigning the user (or group) a permission on the Report object and specifying the `run` action in the admin UI as shown below. + + ![Adding the run action to a permission](../../media/admin_ui_run_permission.png) + ### Via the Web UI -Reports can be run via the web UI by navigating to the report and clicking the "run report" button at top right. Note that a user must have permission to create ReportResults in order to run reports. (Permissions can be assigned through the admin UI.) - -Once a report has been run, its associated results will be included in the report view. +Reports can be run via the web UI by navigating to the report and clicking the "run report" button at top right. Once a report has been run, its associated results will be included in the report view. ### Via the API diff --git a/docs/media/admin_ui_run_permission.png b/docs/media/admin_ui_run_permission.png new file mode 100644 index 0000000000000000000000000000000000000000..a7aaa79b8f985e42f0d7c276aa760b64ba2a13b9 GIT binary patch literal 8174 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

pVPr^i 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 literal 0 HcmV?d00001