aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/library/lux/world/service/authentication.lux
blob: 7cce79b8ef64463dd228631ed8f7a79f4fd646b1 (plain)
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
(.module:
  [library
   [lux #*
    [control
     [try (#+ Try)]
     [security
      [capability (#+ Capability)]]]]])

(type: #export (Can_Register ! account secret value)
  (Capability [account secret value] (! (Try Any))))

(type: #export (Can_Authenticate ! account secret value)
  (Capability [account secret] (! (Try value))))

(type: #export (Can_Reset ! account secret)
  (Capability [account secret] (! (Try Any))))

(type: #export (Can_Forget ! account)
  (Capability [account] (! (Try Any))))

(type: #export (Service ! account secret value)
  {#can_register (Can_Register ! account secret value)
   #can_authenticate (Can_Authenticate ! account secret value)
   #can_reset (Can_Reset ! account secret)
   #can_forget (Can_Forget ! account)})