[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