-
Notifications
You must be signed in to change notification settings - Fork 1
/
authRequest.js
49 lines (40 loc) · 1.12 KB
/
authRequest.js
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
42
43
44
45
46
47
48
49
const { Macroable } = require('@ostro/support/macro')
class Auth extends Macroable {
constructor(request, manager) {
super()
Object.defineProperties(this, {
$request: {
value: request
},
$manager: {
value: manager,
},
$defaultGuard: {
value: manager.getDefaultDriver(),
writable: true
},
$guards: {
value: {},
writable: true
}
})
}
guard($name) {
if (!$name) {
$name = this.$defaultGuard
}
return this.$guards[$name] = this.$guards[$name] || this.$manager.guard($name)(this.$request)
}
shouldUse($name) {
$name = $name || this.$defaultGuard;
this.setDefaultDriverForCurrentRequest($name);
return this.guard($name).user();
}
setDefaultDriverForCurrentRequest($name) {
this.$defaultGuard = $name;
}
__get(target, method) {
return this.make(target.guard(this.$defaultGuard), method)
}
}
module.exports = Auth