[wellwell-devel] [SCM] Interchange wellwell catalog branch, master, updated. dd7c63a3d2d7477f8bf9752de4f24f92b6cdbc22
Stefan Hornburg
racke at rt.icdevgroup.org
Wed Apr 29 12:00:16 UTC 2009
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Interchange wellwell catalog".
The branch, master has been updated
via dd7c63a3d2d7477f8bf9752de4f24f92b6cdbc22 (commit)
from 304fe094ee50ef7998e0674694a8d04c259a8464 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit dd7c63a3d2d7477f8bf9752de4f24f92b6cdbc22
Author: Stefan Hornburg (Racke) <racke at linuxia.de>
Date: Wed Apr 29 13:59:51 2009 +0200
registration revamped, using [form] framework
-----------------------------------------------------------------------
Summary of changes and diff:
catalog.cfg | 5 ++-
code/form_register_load.sub | 7 ++++++
code/form_register_save.sub | 8 +++++++
code/register.action | 41 --------------------------------------
code/register.tag | 40 +++++++++++++++++++++++++++++++++++++
components/login | 6 +----
database/components/register.sql | 6 +++++
pages/register.itl | 3 +-
profiles/register | 10 ++++----
9 files changed, 72 insertions(+), 54 deletions(-)
create mode 100644 code/form_register_load.sub
create mode 100644 code/form_register_save.sub
delete mode 100644 code/register.action
create mode 100644 code/register.tag
create mode 100644 database/components/register.sql
diff --git a/catalog.cfg b/catalog.cfg
index c77931a..81b09ca 100644
--- a/catalog.cfg
+++ b/catalog.cfg
@@ -60,12 +60,13 @@ Pragma interpolate_itl_references
# User database configuration
UserDB default database users
-#UserDB default indirect_login email
+UserDB default indirect_login email
UserDB default assign_username 0
UserDB default counter var/run/userdb.counter
-UserDB default user_field username
+UserDB default user_field uid
UserDB default time_field none
UserDB default pass_field password
+UserDB default scratch "username email"
UserDB default crypt 0
# Routes and Orders
diff --git a/code/form_register_load.sub b/code/form_register_load.sub
new file mode 100644
index 0000000..eb4906a
--- /dev/null
+++ b/code/form_register_load.sub
@@ -0,0 +1,7 @@
+Sub form_register_load <<EOS
+sub {
+ $Values->{password} = $Values->{password_verify} = '';
+
+ return;
+}
+EOS
diff --git a/code/form_register_save.sub b/code/form_register_save.sub
new file mode 100644
index 0000000..782da59
--- /dev/null
+++ b/code/form_register_save.sub
@@ -0,0 +1,8 @@
+Sub form_register_save <<EOS
+sub {
+ if ($Tag->register()) {
+ return {page => 'index'};
+ }
+}
+EOS
+
diff --git a/code/register.action b/code/register.action
deleted file mode 100644
index 604d9e1..0000000
--- a/code/register.action
+++ /dev/null
@@ -1,41 +0,0 @@
-ActionMap register <<EOA
-sub {
- $Tag->perl({tables => 'users'});
-
- $CGI->{mv_nextpage} = 'register';
-
- if ($Session->{logged_in}) {
- $Tag->warnings({message => 'You are already logged in as user %s',
- param => $Session->{username}});
- return 1;
- }
-
- if ($Tag->env('REQUEST_METHOD') eq 'POST') {
- # process registration
- my $ret;
-
- $Tag->update('values');
-
- if ($Tag->run_profile({name => 'register', cgi => 1})) {
-# Log("Register profile check succeeded.");
- $ret = $Tag->userdb({function => 'new_account'});
- if ($ret) {
-# Log("New account created.");
- $CGI->{mv_nextpage} = 'myaccount';
- }
- else {
- $Tag->error({name => 'register',
- set => q{Account creation failed. Please contact our support team.}});
- Log("Account creation failed: %s", $Session->{failure});
- $CGI->{mv_nextpage} = 'register';
- }
- }
- else {
-# Log("Register profile check failed.");
-# Log("Errors: " . uneval($Session->{errors}));
- }
- }
-
- return 1;
-}
-EOA
diff --git a/code/register.tag b/code/register.tag
new file mode 100644
index 0000000..a827d98
--- /dev/null
+++ b/code/register.tag
@@ -0,0 +1,40 @@
+UserTag register Routine <<EOR
+sub {
+ my ($uid, $pass, $ret);
+
+ $Tag->perl({tables => 'users'});
+ $Tag->update('values');
+
+ # generate uid in advance if necessary
+ $uid = $Db{users}->autosequence();
+
+ # username,email
+ unless ($Values->{username}) {
+ $Values->{username} = $Values->{email};
+ }
+
+ # remember password
+ $pass = $CGI->{password};
+
+ # create account without using [userdb] - too cumbersome
+ $uid = $Db{users}->set_slice([{dml => 'insert'}, $uid],
+ username => $Values->{username},
+ email => $Values->{email},
+ password => $pass);
+
+ if ($uid) {
+ # login with new account for verification
+ $ret = $Tag->userdb({function => 'login',
+ username => $Values->{email},
+ password => $pass,
+ verify => $pass});
+ }
+
+ unless ($ret) {
+ $Tag->error({name => 'register',
+ set => q{Account creation failed. Please contact our support team.}});
+ }
+
+ return 1;
+}
+EOR
diff --git a/components/login b/components/login
index 14dd67f..06a35c5 100644
--- a/components/login
+++ b/components/login
@@ -37,11 +37,7 @@
</p>
<p>
-[action
- targets="create_account"
- text="Create new account!"
- type=link
-]
+<a href="[area register]">[L]Create new account![/L]</a>
</p>
<p>
[action
diff --git a/database/components/register.sql b/database/components/register.sql
new file mode 100644
index 0000000..b412170
--- /dev/null
+++ b/database/components/register.sql
@@ -0,0 +1,6 @@
+insert into form_series (name, part, label, profile) values ('register', 'register', 'Create New Account', 'register');
+insert into form_elements (name, label, component, widget)
+ values ('username', 'Username', 'register', ''),
+ ('email', 'Email', 'register', ''),
+ ('password', 'Password', 'register', 'password'),
+ ('password_verify', 'Confirm Password', 'register', 'password');
\ No newline at end of file
diff --git a/pages/register.itl b/pages/register.itl
index 79dfef2..825f776 100644
--- a/pages/register.itl
+++ b/pages/register.itl
@@ -1,3 +1,4 @@
[compose
- components.body="create_account"
+ components.body="register"
+ forms.register.name="register"
/]
diff --git a/profiles/register b/profiles/register
index 0d55566..2ebecd8 100644
--- a/profiles/register
+++ b/profiles/register
@@ -1,8 +1,8 @@
__NAME__ register
-[if cgi mv_username]
-mv_username=unique users:username [L]Username already reserved.[/L]
+[if cgi username]
+username=unique users:username [L]Username already reserved.[/L]
[else]
-mv_username=required [L]Please enter username.[/L]
+username=required [L]Please enter username.[/L]
[/else]
[/if]
[if cgi email]
@@ -13,6 +13,6 @@ email=unique users:email [L]Email address already reserved.[/L]
email=required [L]Please enter email address.[/L]
[/else]
[/if]
-mv_password=length [either][userdb function=option name=passminlen][or]4[/either]
-mv_verify=match mv_password The specified passwords do not match.
+password=length [either][userdb function=option name=passminlen][or]4[/either]
+password_verify=match password The specified passwords do not match.
__END__
hooks/post-receive
--
Interchange wellwell catalog
More information about the wellwell-devel
mailing list