Skip to content

Commit 69f1068

Browse files
committed
Fix roles
1 parent 73eb6ed commit 69f1068

File tree

7 files changed

+21
-17
lines changed

7 files changed

+21
-17
lines changed

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@freenit-framework/core",
3-
"version": "0.0.50",
3+
"version": "0.0.51",
44
"private": false,
55
"author": "Goran Mekić <meka@tilda.center>",
66
"license": "BSD-2-Clause",

src/lib/Role.svelte

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,13 @@
3939
let response
4040
if (event.target.checked) {
4141
response = await store.role.assign(
42-
store.role.detail.id || store.role.detail.dn,
43-
user.id || user.dn,
42+
store.role.detail.id ?? store.role.detail.dn,
43+
user.id ?? user.dn,
4444
)
4545
} else {
4646
response = await store.role.deassign(
47-
store.role.detail.id || store.role.detail.dn,
48-
user.id || user.dn,
47+
store.role.detail.id ?? store.role.detail.dn,
48+
user.id ?? user.dn,
4949
)
5050
}
5151
if (!response.ok) {
@@ -88,9 +88,9 @@
8888
<div class="heading">Member</div>
8989
{#each store.user.list.data as user}
9090
<div class="data">{user.id || user.dn}</div>
91-
<div class="data">{user.email}</div>
91+
<a class="data" href={`/users/${user.id ?? user.dn}`}>{user.email}</a>
9292
<div class="data">
93-
<input disabled type="checkbox" checked={user.active || user.userClass == 'enabled'} />
93+
<input disabled type="checkbox" checked={user.active ?? user.userClass == 'enabled'} />
9494
</div>
9595
<div class="data">
9696
<input disabled type="checkbox" checked={user.admin} />

src/lib/Roles.svelte

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,8 @@
3737
showCreate = !showCreate
3838
}
3939
40-
async function create() {
40+
async function create(event: Event) {
41+
event.preventDefault()
4142
const response = await store.role.create({ name })
4243
if (!response.ok) {
4344
error(response.statusText)

src/lib/User.svelte

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@
2222
})
2323
2424
const member = (role: any) => {
25-
const myroles = store.user.detail.roles.filter((r: any) => r.id === role.id)
25+
const roles = store.user.detail.roles ?? []
26+
const myroles = roles.filter((r: any) => r.id === role.id)
2627
return myroles.length > 0
2728
}
2829
@@ -69,9 +70,10 @@
6970
<div class="heading">ID</div>
7071
<div class="heading">Name</div>
7172
<div class="heading">Member</div>
73+
7274
{#each store.role.list.data as role}
73-
<div class="data">{role.id || role.dn}</div>
74-
<div class="data">{role.name || role.cn}</div>
75+
<div class="data">{role.id ?? role.dn}</div>
76+
<a class="data" href={`/roles/${role.id ?? role.dn}`}>{role.name ?? role.cn}</a>
7577
<div class="data">
7678
<input type="checkbox" checked={member(role)} onchange={toggleMembership(role)} />
7779
</div>

src/lib/base-store/role.svelte.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ export default class RoleStore {
2828
const response = await methods.post(`${this.prefix}/roles`, fields)
2929
if (response.ok) {
3030
const data = await response.json()
31+
this.list.data.push(data)
32+
this.list.total += 1
3133
return { ...data, ok: true }
3234
}
3335
return response
@@ -38,7 +40,6 @@ export default class RoleStore {
3840
const response = await methods.get(`${this.prefix}/roles/${id}`)
3941
if (response.ok) {
4042
const data = await response.json()
41-
console.log('fetch', data)
4243
this.detail = data
4344
return { ...data, ok: true }
4445
}
@@ -78,7 +79,7 @@ export default class RoleStore {
7879
}
7980

8081
deassign = async (role_id: number, user_id: number) => {
81-
await this.store.auth.refresh_refresh()
82+
await this.store.auth.refresh_token()
8283
const response = await methods.delete(`${this.prefix}/roles/${role_id}/${user_id}`)
8384
if (response.ok) {
8485
const data = await response.json()

src/lib/base-store/user.svelte.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ import { methods } from '..'
22

33
export default class UserStore {
44
list = $state({ page: 0, perpage: 0, data: [], total: 0 })
5-
detail = $state({ id: 0, email: '', active: false, admin: false })
6-
profile = $state({ id: 0, email: '', active: false, admin: false })
5+
detail = $state({ id: 0, email: '', active: false, admin: false, roles: [] })
6+
profile = $state({ id: 0, email: '', active: false, admin: false, roles: [] })
77

88
constructor(store, prefix: string) {
99
this.store = store

0 commit comments

Comments
 (0)