-
Notifications
You must be signed in to change notification settings - Fork 233
Expand file tree
/
Copy pathsession.js
More file actions
41 lines (39 loc) · 983 Bytes
/
session.js
File metadata and controls
41 lines (39 loc) · 983 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import { computed, reactive } from 'vue'
import { createResource } from 'frappe-ui'
import { users } from './users'
import router from '@/router'
export function sessionUser() {
let cookies = new URLSearchParams(document.cookie.split('; ').join('&'))
let _sessionUser = cookies.get('user_id')
if (_sessionUser === 'Guest') {
_sessionUser = null
}
return _sessionUser
}
export let session = reactive({
login: createResource({
url: 'login',
makeParams({ email, password }) {
return {
usr: email,
pwd: password,
}
},
onSuccess(data) {
users.reload()
session.user = sessionUser()
session.login.reset()
router.replace(data.default_route || '/')
},
}),
logout: createResource({
url: 'logout',
onSuccess() {
users.reset()
session.user = sessionUser()
router.replace({ name: 'Login' })
},
}),
user: sessionUser(),
isLoggedIn: computed(() => !!session.user),
})