@robertraaijmakers/pptb-securityplugin 0.1.5 → 0.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/icon.svg ADDED
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" ?>
2
+ <svg width="100px" height="100px" viewBox="0 0 512 512" id="Layer_1" version="1.1" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="currentColor">
3
+ <g>
4
+ <path class="st1" d="M481,120.1c-3.6,0.5-7.2,0.7-10.8,0.7c-34.9,0-64.9-21.2-77.8-51.4c-4.4-10.2-6.8-21.4-6.8-33.2 c0-2.8,0.1-5.5,0.4-8.2H126c0.3,2.7,0.4,5.4,0.4,8.2c0,11.8-2.4,23-6.8,33.2c-12.9,30.2-42.9,51.4-77.8,51.4 c-3.7,0-7.3-0.2-10.8-0.7c1.4,40-26,284.3,225,363.9C507,404.4,479.6,160.1,481,120.1z M416.2,291c-13.3,33.6-32.5,62.8-57.1,86.7 c-27.2,26.4-61.8,47.3-103.1,62c-41.3-14.7-75.9-35.6-103.1-62c-24.6-23.9-43.8-53.1-57.1-86.7C76.5,242.1,73,192.6,72.7,158.9 c37.8-9.5,69.7-36.1,85.5-73c2.2-5.2,4.1-10.5,5.6-15.9h184.5c1.5,5.4,3.4,10.8,5.6,16c15.8,36.9,47.7,63.5,85.5,73 C439,192.6,435.5,242.1,416.2,291z"/>
5
+ <path class="st0" d="M348.7,181.2l16.4-16.4c3.3-3.3,3.3-8.6,0-11.9l-19.6-19.6c-3.3-3.3-8.6-3.3-11.9,0l-16.4,16.4 c-11.6-7.7-24.8-13.2-38.9-16.1v-23.2c0-4.6-3.8-8.4-8.4-8.4h-27.8c-4.6,0-8.4,3.8-8.4,8.4v23.2c-14.1,2.9-27.3,8.4-38.9,16.1 l-16.4-16.4c-3.3-3.3-8.6-3.3-11.9,0l-19.6,19.6c-3.3,3.3-3.3,8.6,0,11.9l16.4,16.4c-7.7,11.6-13.3,24.8-16.1,38.9H124 c-4.6,0-8.4,3.8-8.4,8.4v27.8c0,4.6,3.8,8.4,8.4,8.4h23.2c2.9,14.1,8.4,27.3,16.1,38.9l-16.4,16.4c-3.3,3.3-3.3,8.6,0,11.9 l19.6,19.6c3.3,3.3,8.6,3.3,11.9,0l16.4-16.4c11.6,7.7,24.8,13.2,38.9,16.1v23.2c0,4.6,3.8,8.4,8.4,8.4h27.8c4.6,0,8.4-3.8,8.4-8.4 v-23.2c14.1-2.9,27.3-8.4,38.9-16.1l16.4,16.4c3.3,3.3,8.6,3.3,11.9,0l19.6-19.6c3.3-3.3,3.3-8.6,0-11.9l-16.4-16.4 c7.7-11.6,13.3-24.8,16.1-38.9H388c4.6,0,8.4-3.8,8.4-8.4v-27.8c0-4.7-3.8-8.4-8.4-8.4h-23.2C361.9,206,356.4,192.8,348.7,181.2z M275.9,313.9v-33.9c13-7.1,21.9-20.9,21.9-36.8c0-17.1-10.3-31.9-25.1-38.3v37.4h-33.4V205c-14.8,6.4-25.1,21.2-25.1,38.3 c0,15.9,8.8,29.7,21.9,36.8v33.9c-31.4-8.7-54.4-37.5-54.4-71.6c0-41,33.3-74.3,74.3-74.3c41,0,74.3,33.3,74.3,74.3 C330.3,276.5,307.3,305.3,275.9,313.9z"/>
6
+ </g>
7
+ </svg>
package/dist/index.css CHANGED
@@ -527,11 +527,10 @@ body.theme-dark .btn:not(:disabled):hover {
527
527
  padding: 16px 20px 20px;
528
528
  }
529
529
 
530
- .assignment-toolbar {
530
+ .assignment-filter-actions {
531
531
  display: flex;
532
- justify-content: flex-end;
533
532
  gap: 12px;
534
- margin-bottom: 12px;
533
+ align-items: center;
535
534
  }
536
535
 
537
536
  .assignment-table {
@@ -894,6 +893,80 @@ body.theme-dark .chart-empty {
894
893
  padding: 6px 12px 12px;
895
894
  }
896
895
 
896
+ .bulk-row th {
897
+ padding: 8px 12px 12px;
898
+ border-top: 1px solid var(--border);
899
+ background: #fbf8f3;
900
+ }
901
+
902
+ body.theme-dark .bulk-row th {
903
+ background: #221e1a;
904
+ }
905
+
906
+ .bulk-label {
907
+ display: inline-block;
908
+ font-size: 11px;
909
+ text-transform: uppercase;
910
+ letter-spacing: 0.5px;
911
+ color: var(--muted);
912
+ }
913
+
914
+ .bulk-control {
915
+ display: flex;
916
+ gap: 6px;
917
+ align-items: center;
918
+ }
919
+
920
+ .bulk-select {
921
+ width: 100%;
922
+ min-width: 120px;
923
+ padding: 6px 8px;
924
+ border-radius: 8px;
925
+ border: 1px solid var(--border);
926
+ background: #fff;
927
+ color: var(--ink);
928
+ font-size: 12px;
929
+ text-transform: none;
930
+ letter-spacing: 0;
931
+ }
932
+
933
+ .bulk-apply {
934
+ padding: 6px 10px;
935
+ border-radius: 8px;
936
+ border: 1px solid var(--border);
937
+ background: #fff;
938
+ color: var(--ink);
939
+ font-size: 11px;
940
+ font-weight: 600;
941
+ text-transform: uppercase;
942
+ letter-spacing: 0.3px;
943
+ cursor: pointer;
944
+ transition: background 150ms ease, border-color 150ms ease, color 150ms ease;
945
+ }
946
+
947
+ .bulk-apply:not(:disabled):hover {
948
+ background: #f6efe6;
949
+ border-color: #d4c5b6;
950
+ }
951
+
952
+ .bulk-apply:disabled,
953
+ .bulk-select:disabled {
954
+ cursor: not-allowed;
955
+ opacity: 0.6;
956
+ }
957
+
958
+ body.theme-dark .bulk-select,
959
+ body.theme-dark .bulk-apply {
960
+ background: #1f1b17;
961
+ color: var(--ink);
962
+ border-color: var(--border);
963
+ }
964
+
965
+ body.theme-dark .bulk-apply:not(:disabled):hover {
966
+ background: #2a241f;
967
+ border-color: #3f362f;
968
+ }
969
+
897
970
  .filter-select {
898
971
  width: 100%;
899
972
  padding: 6px 8px;
@@ -921,6 +994,7 @@ body.theme-dark .chart-empty {
921
994
 
922
995
  .table.hide-ownership thead tr:first-child th:nth-child(2),
923
996
  .table.hide-ownership thead tr.filter-row th:nth-child(2),
997
+ .table.hide-ownership thead tr.bulk-row th:nth-child(2),
924
998
  .table.hide-ownership tbody td:nth-child(2) {
925
999
  display: none;
926
1000
  }
package/dist/index.html CHANGED
@@ -213,9 +213,20 @@
213
213
  <th>
214
214
  <button class="sort-button" data-sort="assign">Assign</button>
215
215
  </th>
216
+ <th>
217
+ <button class="sort-button" data-sort="share">Share</button>
218
+ </th>
216
219
  </tr>
217
220
  <tr class="filter-row">
218
- <th></th>
221
+ <th>
222
+ <input
223
+ type="text"
224
+ id="privilege-search"
225
+ class="filter-input"
226
+ placeholder="Search entities or roles..."
227
+ aria-label="Search entities or roles"
228
+ />
229
+ </th>
219
230
  <th></th>
220
231
  <th>
221
232
  <select class="filter-select" data-filter="create"></select>
@@ -238,6 +249,63 @@
238
249
  <th>
239
250
  <select class="filter-select" data-filter="assign"></select>
240
251
  </th>
252
+ <th>
253
+ <select class="filter-select" data-filter="share"></select>
254
+ </th>
255
+ </tr>
256
+ <tr class="bulk-row">
257
+ <th>
258
+ <span class="bulk-label">Bulk update visible rows</span>
259
+ </th>
260
+ <th></th>
261
+ <th>
262
+ <div class="bulk-control">
263
+ <select class="bulk-select" data-bulk-select="create"></select>
264
+ <button type="button" class="bulk-apply" data-bulk-apply="create">Set</button>
265
+ </div>
266
+ </th>
267
+ <th>
268
+ <div class="bulk-control">
269
+ <select class="bulk-select" data-bulk-select="read"></select>
270
+ <button type="button" class="bulk-apply" data-bulk-apply="read">Set</button>
271
+ </div>
272
+ </th>
273
+ <th>
274
+ <div class="bulk-control">
275
+ <select class="bulk-select" data-bulk-select="write"></select>
276
+ <button type="button" class="bulk-apply" data-bulk-apply="write">Set</button>
277
+ </div>
278
+ </th>
279
+ <th>
280
+ <div class="bulk-control">
281
+ <select class="bulk-select" data-bulk-select="delete"></select>
282
+ <button type="button" class="bulk-apply" data-bulk-apply="delete">Set</button>
283
+ </div>
284
+ </th>
285
+ <th>
286
+ <div class="bulk-control">
287
+ <select class="bulk-select" data-bulk-select="append"></select>
288
+ <button type="button" class="bulk-apply" data-bulk-apply="append">Set</button>
289
+ </div>
290
+ </th>
291
+ <th>
292
+ <div class="bulk-control">
293
+ <select class="bulk-select" data-bulk-select="appendto"></select>
294
+ <button type="button" class="bulk-apply" data-bulk-apply="appendto">Set</button>
295
+ </div>
296
+ </th>
297
+ <th>
298
+ <div class="bulk-control">
299
+ <select class="bulk-select" data-bulk-select="assign"></select>
300
+ <button type="button" class="bulk-apply" data-bulk-apply="assign">Set</button>
301
+ </div>
302
+ </th>
303
+ <th>
304
+ <div class="bulk-control">
305
+ <select class="bulk-select" data-bulk-select="share"></select>
306
+ <button type="button" class="bulk-apply" data-bulk-apply="share">Set</button>
307
+ </div>
308
+ </th>
241
309
  </tr>
242
310
  </thead>
243
311
  <tbody></tbody>
@@ -257,10 +325,6 @@
257
325
  </div>
258
326
  </div>
259
327
  <div class="assignment-list">
260
- <div class="assignment-toolbar">
261
- <button type="button" class="link-button" id="assignment-select-all">Select all</button>
262
- <button type="button" class="link-button" id="assignment-clear">Clear</button>
263
- </div>
264
328
  <div class="assignment-table">
265
329
  <table class="table" id="assignment-table">
266
330
  <thead>
@@ -290,7 +354,12 @@
290
354
  <option value="not-assigned">Not assigned</option>
291
355
  </select>
292
356
  </th>
293
- <th></th>
357
+ <th>
358
+ <div class="assignment-filter-actions">
359
+ <button type="button" class="link-button" id="assignment-select-all">Select all</button>
360
+ <button type="button" class="link-button" id="assignment-clear">Clear</button>
361
+ </div>
362
+ </th>
294
363
  </tr>
295
364
  </thead>
296
365
  <tbody id="assignment-table-body"></tbody>
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@robertraaijmakers/pptb-securityplugin",
3
- "version": "0.1.5",
3
+ "version": "0.1.6",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@robertraaijmakers/pptb-securityplugin",
9
- "version": "0.1.5",
9
+ "version": "0.1.6",
10
10
  "license": "MIT",
11
11
  "dependencies": {
12
12
  "chart.js": "^4.4.1"
package/package.json CHANGED
@@ -1,8 +1,9 @@
1
1
  {
2
2
  "name": "@robertraaijmakers/pptb-securityplugin",
3
- "version": "0.1.5",
3
+ "version": "0.1.6",
4
4
  "displayName": "Security Roles Explorer",
5
5
  "description": "Be fully in control of your security by quickly viewing and managing which security roles give access to which tables. And who is assigned which security role.",
6
+ "icon": "icon.svg",
6
7
  "author": "Robert Raaijmakers",
7
8
  "contributors": [
8
9
  {
@@ -26,8 +27,7 @@
26
27
  "configurations": {
27
28
  "repository": "https://github.com/robertraaijmakers/pptb.securityplugin/",
28
29
  "website": "https://robertraaijmakers.github.io/pptb.securityplugin/",
29
- "readmeUrl": "https://raw.githubusercontent.com/robertraaijmakers/pptb.securityplugin/main/README.md",
30
- "iconUrl": "https://raw.githubusercontent.com/robertraaijmakers/pptb.securityplugin/main/assets/icon.png"
30
+ "readmeUrl": "https://raw.githubusercontent.com/robertraaijmakers/pptb.securityplugin/main/README.md"
31
31
  },
32
32
  "files": [
33
33
  "dist/**",