parent
7e80608066
commit
7c324869a4
@ -1,9 +1,9 @@
|
|||||||
<script>
|
<script>
|
||||||
import { _ } from "svelte-i18n";
|
import { _ } from "svelte-i18n";
|
||||||
import {
|
import {
|
||||||
UserService,
|
|
||||||
PermissionService,
|
PermissionService,
|
||||||
CreatePermission,
|
CreatePermission,
|
||||||
|
UserGroupService,
|
||||||
} from "@odit/lfk-client-js";
|
} from "@odit/lfk-client-js";
|
||||||
import Toastify from "toastify-js";
|
import Toastify from "toastify-js";
|
||||||
import PromiseError from "../base/PromiseError.svelte";
|
import PromiseError from "../base/PromiseError.svelte";
|
||||||
@ -11,18 +11,17 @@
|
|||||||
let [
|
let [
|
||||||
grantedPermissions_initial,
|
grantedPermissions_initial,
|
||||||
grantedPermissions,
|
grantedPermissions,
|
||||||
inheritedPermissions,
|
|
||||||
to_add,
|
to_add,
|
||||||
to_delete,
|
to_delete,
|
||||||
allpermissions,
|
allpermissions,
|
||||||
promises,
|
promises,
|
||||||
] = [[], [], [], [], [], [], []];
|
] = [[], [], [], [], [], []];
|
||||||
$: original_data = {};
|
$: original_data = {};
|
||||||
$: save_enabled =
|
$: save_enabled =
|
||||||
JSON.stringify(grantedPermissions) ===
|
JSON.stringify(grantedPermissions) ===
|
||||||
JSON.stringify(grantedPermissions_initial);
|
JSON.stringify(grantedPermissions_initial);
|
||||||
const user_promise = UserService.userControllerGetOne(params.userid);
|
const group_promise = UserGroupService.userGroupControllerGetOne(params.groupid);
|
||||||
user_promise.then((data) => {
|
group_promise.then((data) => {
|
||||||
original_data = Object.assign(original_data, data);
|
original_data = Object.assign(original_data, data);
|
||||||
});
|
});
|
||||||
function submit() {
|
function submit() {
|
||||||
@ -62,18 +61,17 @@
|
|||||||
allpermissions = allpermissions.concat([{ target: t, action: a }]);
|
allpermissions = allpermissions.concat([{ target: t, action: a }]);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
UserService.userControllerGetPermissions(params.userid).then((val) => {
|
UserGroupService.userGroupControllerGetPermissions(params.groupid).then((val) => {
|
||||||
val.inherited.forEach((p) => {
|
|
||||||
inheritedPermissions = inheritedPermissions.concat([p]);
|
|
||||||
});
|
|
||||||
val.directlyGranted.forEach((p) => {
|
val.directlyGranted.forEach((p) => {
|
||||||
|
delete p.responseType;
|
||||||
grantedPermissions = grantedPermissions.concat([p]);
|
grantedPermissions = grantedPermissions.concat([p]);
|
||||||
});
|
});
|
||||||
|
console.log(grantedPermissions)
|
||||||
grantedPermissions_initial = grantedPermissions;
|
grantedPermissions_initial = grantedPermissions;
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
{#await user_promise}
|
{#await group_promise}
|
||||||
<!-- -->
|
<!-- -->
|
||||||
{:then user}
|
{:then user}
|
||||||
<section class="container p-5 select-none">
|
<section class="container p-5 select-none">
|
||||||
@ -111,9 +109,7 @@
|
|||||||
<polyline points="12 5 19 12 12 19" /></svg>
|
<polyline points="12 5 19 12 12 19" /></svg>
|
||||||
</li>
|
</li>
|
||||||
<li class="flex items-center">
|
<li class="flex items-center">
|
||||||
<span class="mr-2"><a href="../">{original_data.firstname}
|
<span class="mr-2"><a href="../">{original_data.name}</a></span>
|
||||||
{original_data.middlename || ''}
|
|
||||||
{original_data.lastname}</a></span>
|
|
||||||
</li>
|
</li>
|
||||||
<li class="flex items-center">
|
<li class="flex items-center">
|
||||||
<svg
|
<svg
|
||||||
@ -142,9 +138,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="mb-8 text-3xl font-extrabold">
|
<div class="mb-8 text-3xl font-extrabold">
|
||||||
{$_('permissions')}:
|
{$_('permissions')}:
|
||||||
{original_data.firstname}
|
{original_data.name}
|
||||||
{original_data.middlename || ''}
|
|
||||||
{original_data.lastname}
|
|
||||||
<span>
|
<span>
|
||||||
{#if promises.length === 0}
|
{#if promises.length === 0}
|
||||||
<button
|
<button
|
||||||
@ -162,24 +156,21 @@
|
|||||||
</div>
|
</div>
|
||||||
<!-- -->
|
<!-- -->
|
||||||
<div class="flex flex-wrap -mx-1 overflow-hidden">
|
<div class="flex flex-wrap -mx-1 overflow-hidden">
|
||||||
<div class="my-1 px-1 w-full overflow-hidden sm:w-1/3">
|
<div class="my-1 px-1 w-full overflow-hidden sm:w-1/2">
|
||||||
{$_('verfuegbare')}
|
{$_('verfuegbare')}
|
||||||
</div>
|
</div>
|
||||||
<div class="my-1 px-1 w-full overflow-hidden sm:w-1/3">
|
<div class="my-1 px-1 w-full overflow-hidden sm:w-1/2">
|
||||||
{$_('erteilte')}
|
granted
|
||||||
</div>
|
|
||||||
<div class="my-1 px-1 w-full overflow-hidden sm:w-1/3">
|
|
||||||
{$_('geerbte')}
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- -->
|
<!-- -->
|
||||||
<div class="flex flex-wrap -mx-1 overflow-hidden">
|
<div class="flex flex-wrap -mx-1 overflow-hidden">
|
||||||
{#if allpermissions.length > 0}
|
{#if allpermissions.length > 0}
|
||||||
<div class="my-1 px-1 w-full overflow-hidden sm:w-1/3">
|
<div class="my-1 px-1 w-full overflow-hidden sm:w-1/2">
|
||||||
<div
|
<div
|
||||||
class="border-4 border-dashed rounded mb-4 p-5 text-lg text-center">
|
class="border-4 border-dashed rounded mb-4 p-5 text-lg text-center">
|
||||||
{#each allpermissions as p}
|
{#each allpermissions as p}
|
||||||
{#if !grantedPermissions.includes(p)}
|
{#if !(grantedPermissions.filter((o)=>p.target == o.target && p.action == o.action).length > 0)}
|
||||||
<p
|
<p
|
||||||
class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 bg-gray-200 p-2 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input">
|
class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 bg-gray-200 p-2 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input">
|
||||||
{p.target + ':' + p.action}
|
{p.target + ':' + p.action}
|
||||||
@ -205,7 +196,7 @@
|
|||||||
{/each}
|
{/each}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="my-1 px-1 w-full overflow-hidden sm:w-1/3">
|
<div class="my-1 px-1 w-full overflow-hidden sm:w-1/2">
|
||||||
<div
|
<div
|
||||||
class="border-4 border-dashed rounded mb-4 p-5 text-lg text-center">
|
class="border-4 border-dashed rounded mb-4 p-5 text-lg text-center">
|
||||||
{#each grantedPermissions as p}
|
{#each grantedPermissions as p}
|
||||||
@ -227,17 +218,6 @@
|
|||||||
{/each}
|
{/each}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="my-1 px-1 w-full overflow-hidden sm:w-1/3">
|
|
||||||
<div
|
|
||||||
class="border-4 border-dashed rounded mb-4 p-5 text-lg text-center">
|
|
||||||
{#each inheritedPermissions as p}
|
|
||||||
<p
|
|
||||||
class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 bg-gray-200 p-2 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input">
|
|
||||||
{p.target + ':' + p.action}
|
|
||||||
</p>
|
|
||||||
{/each}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{/if}
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user