Skip to content

Commit ad09f11

Browse files
committed
Lock down extractor list so that only admins can modify it
1 parent 8e27b41 commit ad09f11

File tree

1 file changed

+66
-62
lines changed

1 file changed

+66
-62
lines changed

app/views/updateExtractors.scala.html

Lines changed: 66 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
@(runningExtractors: List[ExtractorInfo], selectedExtractors: List[String])(implicit user: Option[models.User])
22
@import _root_.util.Formatters._
33
@import helper._
4+
@import api.Permission
45

56
@main("Extractors") {
67
@if(runningExtractors.size == 0) {
@@ -13,74 +14,77 @@ <h1>Extractors</h1>
1314
</div>
1415
<div class="row">
1516
<div class="col-xs-12">
16-
<p>List of all extractors currently registered with the system. By enabling/disabling them the extractor will automatically
17+
<p>List of all extractors currently registered with the system. If enabled, the extractor will automatically
1718
execute on a resource when the process trigger is matched.</p>
1819
</div>
1920
</div>
2021
<div class="row top-padding">
2122
<div class="col-xs-12">
22-
@form(action = routes.Extractors.updateExtractors(), 'id -> "formOne", 'enctype -> "multipart/form-data", 'class -> "form-horizontal") {
23-
<table class="table">
24-
<thead>
25-
<tr>
26-
<th>Enabled</th>
27-
<th>Name</th>
28-
<th>Description</th>
29-
<th>Process Triggers</th>
30-
</tr>
31-
</thead>
32-
<tbody>
33-
<!-- Display all running extractors. If extractor already in this space, check the box. -->
34-
@runningExtractors.map { extractor =>
35-
<tr>
36-
<td><input type="checkbox" name="extractors" value="@extractor.name"
37-
@if(selectedExtractors.contains(extractor.name)) {checked} else {unchecked}></td>
38-
<td><a href="@routes.Extractors.showExtractorInfo(extractor.name)">@extractor.name</a></td>
39-
<td>@extractor.description</td>
40-
<td>
41-
<!-- TODO: Hide full text behind a modal? Possible to show truncated preview here? -->
42-
<p @if(extractor.process.dataset.isEmpty) {hidden}>
43-
Datasets:
44-
<span @if(extractor.process.dataset.length > 1) {hidden}>@extractor.process.dataset</span>
45-
<ul @if(extractor.process.dataset.length == 1) {hidden}>
46-
@extractor.process.dataset.map { eventName =>
47-
<li>@eventName</li>
48-
}
49-
</ul>
50-
</p>
51-
<p @if(extractor.process.file.isEmpty) {hidden}>
52-
Files:
53-
<span @if(extractor.process.file.length > 1) {hidden}>@extractor.process.file</span>
54-
<ul @if(extractor.process.file.length == 1) {hidden}>
55-
@extractor.process.file.map { fileType =>
56-
<li>@fileType</li>
57-
}
58-
</ul>
59-
</p>
60-
<p @if(extractor.process.metadata.isEmpty) {hidden}>
61-
Metadata:
62-
<span @if(extractor.process.metadata.length > 1) {hidden}>@extractor.process.metadata</span>
63-
<ul @if(extractor.process.metadata.length == 1) {hidden}>
64-
@extractor.process.metadata.map { eventName =>
65-
<li>@eventName</li>
66-
}
67-
</ul>
68-
</p>
69-
<p @if(!extractor.process.metadata.isEmpty
70-
|| !extractor.process.file.isEmpty
71-
|| !extractor.process.dataset.isEmpty) {hidden}>
72-
None
73-
</p>
74-
</td>
75-
</tr>
23+
@form(action = routes.Extractors.updateExtractors(), 'id -> "formOne", 'enctype -> "multipart/form-data", 'class -> "form-horizontal") {
24+
<table class="table">
25+
<thead>
26+
<tr>
27+
<th>Enabled</th>
28+
<th>Name</th>
29+
<th>Description</th>
30+
<th>Process Triggers</th>
31+
</tr>
32+
</thead>
33+
<tbody>
34+
<!-- Display all running extractors. If extractor already in this space, check the box. -->
35+
@runningExtractors.map { extractor =>
36+
<tr>
37+
<td><input type="checkbox" name="extractors" value="@extractor.name"
38+
@if(!Permission.checkServerAdmin(user)) {disabled="true"}
39+
@if(selectedExtractors.contains(extractor.name)) {checked} else {unchecked}></td>
40+
<td><a href="@routes.Extractors.showExtractorInfo(extractor.name)">@extractor.name</a></td>
41+
<td>@extractor.description</td>
42+
<td>
43+
<!-- TODO: Hide full text behind a modal? Possible to show truncated preview here? -->
44+
<p @if(extractor.process.dataset.isEmpty) {hidden}>
45+
Datasets:
46+
<span @if(extractor.process.dataset.length > 1) {hidden}>@extractor.process.dataset</span>
47+
<ul @if(extractor.process.dataset.length == 1) {hidden}>
48+
@extractor.process.dataset.map { eventName =>
49+
<li>@eventName</li>
50+
}
51+
</ul>
52+
</p>
53+
<p @if(extractor.process.file.isEmpty) {hidden}>
54+
Files:
55+
<span @if(extractor.process.file.length > 1) {hidden}>@extractor.process.file</span>
56+
<ul @if(extractor.process.file.length == 1) {hidden}>
57+
@extractor.process.file.map { fileType =>
58+
<li>@fileType</li>
59+
}
60+
</ul>
61+
</p>
62+
<p @if(extractor.process.metadata.isEmpty) {hidden}>
63+
Metadata:
64+
<span @if(extractor.process.metadata.length > 1) {hidden}>@extractor.process.metadata</span>
65+
<ul @if(extractor.process.metadata.length == 1) {hidden}>
66+
@extractor.process.metadata.map { eventName =>
67+
<li>@eventName</li>
68+
}
69+
</ul>
70+
</p>
71+
<p @if(!extractor.process.metadata.isEmpty
72+
|| !extractor.process.file.isEmpty
73+
|| !extractor.process.dataset.isEmpty) {hidden}>
74+
None
75+
</p>
76+
</td>
77+
</tr>
78+
}
79+
</tbody>
80+
</table>
81+
@if(Permission.checkServerAdmin(user)){
82+
<div class="form-actions">
83+
<button type="submit" class="btn btn-primary" name = "submitValue" value="Update"><span class='glyphicon glyphicon-send'></span> Update</button>
84+
<a class="btn btn-default" id="cancel_space"><span class="glyphicon glyphicon-remove" ></span> Cancel</a>
85+
</div>
7686
}
77-
</tbody>
78-
</table>
79-
<div class="form-actions">
80-
<button type="submit" class="btn btn-primary" name = "submitValue" value="Update"><span class='glyphicon glyphicon-send'></span> Update</button>
81-
<a class="btn btn-default" id="cancel_space"><span class="glyphicon glyphicon-remove" ></span> Cancel</a>
82-
</div>
83-
} <!-- end of form -->
87+
} <!-- end of form -->
8488
</div>
8589
</div>
8690
}

0 commit comments

Comments
 (0)