factor/basis/furnace/auth/providers/db/db.factor

40 lines
1.0 KiB
Factor
Raw Normal View History

2008-04-01 17:53:32 -04:00
! Copyright (C) 2008 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license.
USING: db db.tuples db.types accessors
furnace.auth.providers kernel continuations
2008-04-01 17:53:32 -04:00
classes.singleton ;
IN: furnace.auth.providers.db
2008-04-01 17:53:32 -04:00
user "USERS"
{
2008-04-29 01:43:58 -04:00
{ "username" "USERNAME" { VARCHAR 256 } +user-assigned-id+ }
2008-04-01 17:53:32 -04:00
{ "realname" "REALNAME" { VARCHAR 256 } }
2008-05-01 17:24:50 -04:00
{ "password" "PASSWORD" BLOB +not-null+ }
{ "salt" "SALT" INTEGER +not-null+ }
2008-04-01 17:53:32 -04:00
{ "email" "EMAIL" { VARCHAR 256 } }
{ "ticket" "TICKET" { VARCHAR 256 } }
2008-05-01 21:03:02 -04:00
{ "capabilities" "CAPABILITIES" FACTOR-BLOB }
2008-04-01 17:53:32 -04:00
{ "profile" "PROFILE" FACTOR-BLOB }
2008-04-30 05:53:01 -04:00
{ "deleted" "DELETED" INTEGER +not-null+ }
2008-04-01 17:53:32 -04:00
} define-persistent
SINGLETON: users-in-db
M: users-in-db get-user
2008-04-30 05:53:01 -04:00
drop <user> select-tuple ;
2008-04-01 17:53:32 -04:00
M: users-in-db new-user
drop
[
2008-04-30 05:53:01 -04:00
user new
over username>> >>username
select-tuple [
2008-04-01 17:53:32 -04:00
drop f
] [
dup insert-tuple
] if
] with-transaction ;
M: users-in-db update-user
drop update-tuple ;