[Gd-chatter] r11477 - trunk/libraries/network/web-framework
turbo24prg at gwydiondylan.org
turbo24prg at gwydiondylan.org
Mon Oct 29 20:09:45 CET 2007
Author: turbo24prg
Date: Mon Oct 29 20:09:44 2007
New Revision: 11477
Modified:
trunk/libraries/network/web-framework/dsp.dylan
trunk/libraries/network/web-framework/library.dylan
trunk/libraries/network/web-framework/permission.dylan
trunk/libraries/network/web-framework/users.dylan
Log:
Job: minor
koala API changes and minor improvements
Modified: trunk/libraries/network/web-framework/dsp.dylan
==============================================================================
--- trunk/libraries/network/web-framework/dsp.dylan (original)
+++ trunk/libraries/network/web-framework/dsp.dylan Mon Oct 29 20:09:44 2007
@@ -11,23 +11,26 @@
// sent values
define thread variable *form* = #f;
-
-define tag show-login-url in web-framework
- (page :: <dylan-server-page>, response :: <response>)
- ()
- format(output-stream(response),
- "/?login&redirect=%s", current-url(escaped?: #t));
-end;
-
-define tag show-logout-url in web-framework
- (page :: <dylan-server-page>, response :: <response>)
- ()
- format(output-stream(response),
- "/?logout&redirect=%s", current-url(escaped?: #t));
+define tag show-login-url in web-framework (page :: <dylan-server-page>)
+ (redirect :: type-union(<string>, <boolean>), current :: <boolean>)
+ format(current-response().output-stream, "/?login%s",
+ if (redirect)
+ format-to-string("&redirect=%s",
+ encode-url(if (current) current-url() else redirect end if, reserved?: #t));
+ else "" end);
+end;
+
+define tag show-logout-url in web-framework (page :: <dylan-server-page>)
+ (redirect :: type-union(<string>, <boolean>), current :: <boolean>)
+ format(current-response().output-stream, "/?logout%s",
+ if (redirect)
+ format-to-string("&redirect=%s",
+ encode-url(if (current) current-url() else redirect end if, reserved?: #t));
+ else "" end);
end;
-define named-method authenticated? in web-framework
- (page :: <dylan-server-page>, request :: <request>)
+
+define named-method authenticated? in web-framework (page :: <dylan-server-page>)
authenticated-user()
end;
@@ -51,12 +54,12 @@
{ define action-test ( ?:name ) in ?taglib:name end }
=> {
define named-method ?name ## "?" in ?taglib
- (page :: <dylan-server-page>, request :: <request>)
+ (page :: <dylan-server-page>)
*action* = ?#"name"
end;
define named-method ?name ## "-permitted?" in ?taglib
- (page :: <dylan-server-page>, request :: <request>)
+ (page :: <dylan-server-page>)
block ()
permitted?(?#"name");
#t;
@@ -89,7 +92,7 @@
define thread variable "*" ## ?name ## "*" = #f;
define named-method ?name ## "?" in ?taglib
- (page :: <dylan-server-page>, request :: <request>)
+ (page :: <dylan-server-page>)
"*" ## ?name ## "*"
end
}
@@ -115,7 +118,7 @@
{ define error-test (?:name) in ?taglib:name end }
=> {
define named-method ?name ## "-error?" in ?taglib
- (page :: <dylan-server-page>, request :: <request>)
+ (page :: <dylan-server-page>)
member?(?#"name", *errors*)
end
}
Modified: trunk/libraries/network/web-framework/library.dylan
==============================================================================
--- trunk/libraries/network/web-framework/library.dylan (original)
+++ trunk/libraries/network/web-framework/library.dylan Mon Oct 29 20:09:44 2007
@@ -235,9 +235,12 @@
define module permission
use common-dylan;
- export <permission-error>,
- <authentication-error>;
- export permitted?;
+ export with-permission,
+ <permission-error>,
+ <authentication-error>,
+ permitted?,
+ permission-error,
+ authentication-error;
end;
define module web-framework
Modified: trunk/libraries/network/web-framework/permission.dylan
==============================================================================
--- trunk/libraries/network/web-framework/permission.dylan (original)
+++ trunk/libraries/network/web-framework/permission.dylan Mon Oct 29 20:09:44 2007
@@ -1,9 +1,8 @@
module: permission
author: turbo24prg
-/*
define macro with-permission
- { with-permission(?action:*)
+ { with-permission (?action:*)
?:body
end }
=>
@@ -11,16 +10,19 @@
permitted?(?action);
?body
exception (condition :: <permission-error>)
- get(*unprivileged-page*);
+ permission-error(?action)
exception (condition :: <authentication-error>)
- get(*not-logged-in-page*);
+ authentication-error(?action);
end block }
end;
-*/
+
+define open generic authentication-error (action :: <object>, #key #all-keys);
+define open generic permission-error (action :: <object>, #key #all-keys);
+
define class <permission-error> (<error>) end;
define class <authentication-error> (<error>) end;
-define generic permitted? (action :: <symbol>, #key #all-keys)
+define open generic permitted? (action :: <object>, #key #all-keys)
=> (permitted? :: <boolean>);
define method permitted? (action :: <symbol>, #key)
Modified: trunk/libraries/network/web-framework/users.dylan
==============================================================================
--- trunk/libraries/network/web-framework/users.dylan (original)
+++ trunk/libraries/network/web-framework/users.dylan Mon Oct 29 20:09:44 2007
@@ -124,3 +124,9 @@
add-header(headers, "WWW-Authenticate", concatenate("Basic realm=\"", realm, "\""));
unauthorized-error(headers: headers);
end;
+
+define method \= (user1 :: <user>, user2 :: <user>)
+ => (equal? :: <boolean>);
+ user1.username = user2.username
+end;
+
More information about the chatter
mailing list