sub register : Path('/user/register') { my ($self, $c) = @_; my (%params) = &_parseParametersIntoHash($c); # --- if no params, assume it's executed for the first time unless (scalar keys %params) { my %data = ( template => 'user/register.tmpl', title => 'Registrierung', message => '', username => '', emailaddress => '', ); while (my ($k, $v) = each %data) { $c->stash->{$k} = $v } return; } # unless # --- else if mandatory parameters are submitted my $message = ""; if( $params{username} =~ /^\s*$/ ) { $message .= "
Bitte das Feld Benutzername ausfüllen"; } # if if( $params{emailaddress} =~ /^\s*$/ ) { $message .= "
Bitte das Feld E-Mai-Adresse ausfüllen"; } # if if( $params{password} =~ /^\s*$/ or $params{passwordcheck} =~ /^\s*$/) { $message .= "
Bitte beide Passwort-Felder ausfüllen"; } # if unless( $params{agreeagb} ) { $message .= "
Bitte die Bestimmungen akzeptieren"; } # if if ($message) { # if a parameter is missing, prompt for it my %data = ( template => 'user/register.tmpl', title => 'Registrierung', message => $message, %params, ); while (my ($k, $v) = each %data) { $c->stash->{$k} = $v } return; } # if # shortcut my $registerConf = $c->config->{register}; # --- check if params are valid if( length $params{username} < $registerConf->{minUserNameLength} ) { $message .= "
Der Benutzername muß mindestens " . $registerConf->{minUserNameLength} . " Zeichen lang sein"; } # if elsif( length $params{username} > $registerConf->{maxUserNameLength} ) { $message .= "
Der Benutzername darf höchstens " . $registerConf->{maxUserNameLength} . " Zeichen lang sein"; } # if if( $params{password} ne $params{passwordcheck} ) { $message .= "
die Passwörter sind nicht identisch"; } # if elsif( length $params{password} < $registerConf->{minPasswordLength} ) { $message .= "
Das Passwort muß mindestens " . $registerConf->{minPasswordLength} . " Zeichen lang sein"; } # if elsif( length $params{password} > $registerConf->{maxPasswordLength} ) { $message .= "
Das Passwort darf höchstens " . $registerConf->{maxPasswordLength} . " Zeichen lang sein"; } # if unless( Mail::RFC822::Address::valid( $params{emailaddress} ) ) { $message .= "
E-Mail '$params{emailaddress}' ungültig"; } # unless # check db if username is free # send mail if ($message) { # if a parameter is invalid, prompt for it my %data = ( template => 'user/register.tmpl', title => 'Registrierung', message => $message, %params, ); while (my ($k, $v) = each %data) { $c->stash->{$k} = $v } return; } # if # else redirect to register_finished my %data = ( template => 'user/register_finished.tmpl', title => 'Registrierung', message => '', %params, ); while (my ($k, $v) = each %data) { $c->stash->{$k} = $v } } # register