]> gitweb.factorcode.org Git - factor.git/blob - basis/furnace/auth/providers/db/db.factor
Fix permission bits
[factor.git] / basis / furnace / auth / providers / db / db.factor
1 ! Copyright (C) 2008 Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: db db.tuples db.types accessors
4 furnace.auth.providers kernel continuations
5 classes.singleton ;
6 IN: furnace.auth.providers.db
7
8 user "USERS"
9 {
10     { "username" "USERNAME" { VARCHAR 256 } +user-assigned-id+ }
11     { "realname" "REALNAME" { VARCHAR 256 } }
12     { "password" "PASSWORD" BLOB +not-null+ }
13     { "salt" "SALT" INTEGER +not-null+ }
14     { "email" "EMAIL" { VARCHAR 256 } }
15     { "ticket" "TICKET" { VARCHAR 256 } }
16     { "capabilities" "CAPABILITIES" FACTOR-BLOB }
17     { "profile" "PROFILE" FACTOR-BLOB }
18     { "deleted" "DELETED" INTEGER +not-null+ }
19 } define-persistent
20
21 SINGLETON: users-in-db
22
23 M: users-in-db get-user
24     drop <user> select-tuple ;
25
26 M: users-in-db new-user
27     drop
28     [
29         user new
30             over username>> >>username
31         select-tuple [
32             drop f
33         ] [
34             dup insert-tuple
35         ] if
36     ] with-transaction ;
37
38 M: users-in-db update-user
39     drop update-tuple ;