[Gd-chatter] r10756 - trunk/libraries/web-framework
hannes at gwydiondylan.org
hannes at gwydiondylan.org
Tue May 30 19:49:42 CEST 2006
Author: hannes
Date: Tue May 30 19:49:40 2006
New Revision: 10756
Modified:
trunk/libraries/web-framework/storage.dylan
trunk/libraries/web-framework/users.dylan
Log:
Bug: 7257
*some more storage and user fixing
Modified: trunk/libraries/web-framework/storage.dylan
==============================================================================
--- trunk/libraries/web-framework/storage.dylan (original)
+++ trunk/libraries/web-framework/storage.dylan Tue May 30 19:49:40 2006
@@ -49,9 +49,15 @@
constant slot table-version = *version*;
end;
+define constant $filename = last(split(application-name(), '/'));
+
define method dump-data () => ()
+ let loc = concatenate(*directory*,
+ $filename,
+ "-",
+ integer-to-string(*version*));
let dood = make(<dood>,
- locator: concatenate(application-name(), "-", integer-to-string(*version*)),
+ locator: loc,
direction: #"output",
if-exists: #"replace");
dood-root(dood) := make(<storage>);
@@ -61,6 +67,7 @@
end;
define method restore (filename :: <string>) => ()
+ format-out("restoring %s\n", filename);
let dood = make(<dood>,
locator: filename,
direction: #"input");
@@ -89,7 +96,7 @@
end;
end, directory);
if (file)
- restore(file);
+ restore(concatenate(directory, "/", file));
end;
end;
@@ -106,7 +113,7 @@
define function split-file (filename :: <string>) => (version :: <integer>)
let elements = split(filename, '-');
- if ((elements.size = 2) & (elements[0] = application-name()))
+ if ((elements.size = 2) & (elements[0] = $filename))
string-to-integer(elements[1]);
else
0
Modified: trunk/libraries/web-framework/users.dylan
==============================================================================
--- trunk/libraries/web-framework/users.dylan (original)
+++ trunk/libraries/web-framework/users.dylan Tue May 30 19:49:40 2006
@@ -11,9 +11,8 @@
define method initialize (user :: <user>, #rest rest, #key, #all-keys)
next-method();
check(user);
- $users[user.username] := user;
+ storage(<user>)[user.username] := user;
end;
-define variable $users = storage(<user>);
define inline-only method key (user :: <user>)
=> (res :: <string>)
@@ -37,7 +36,7 @@
define method check (user :: <user>, #key test-result = 0)
=> (res :: <boolean>)
- if (element($users, user.username, default: #f))
+ if (element(storage(<user>), user.username, default: #f))
signal(make(<web-error>,
error: "User with same name already exists!"))
else
@@ -46,7 +45,7 @@
end;
define method valid-user? (user-name :: <string>, pass :: <string>)
- let user = element($users, user-name, default: #f);
+ let user = element(storage(<user>), user-name, default: #f);
if (user & (user.password = pass))
#t;
else
@@ -60,7 +59,7 @@
if (username & password)
if (valid-user?(user-name, password))
let session = ensure-session(request);
- *user* := $users[user-name];
+ *user* := storage(<user>)[user-name];
set-attribute(session, #"username", user-name);
end;
end;
@@ -71,7 +70,7 @@
let session = get-session(request);
if (session)
let user-name = get-attribute(session, #"username");
- *user* := $users[user-name];
+ *user* := storage(<user>)[user-name];
user-name;
end;
end;
More information about the chatter
mailing list