aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Fripost/Panel
diff options
context:
space:
mode:
authorGuilhem Moulin <guilhem.moulin@fripost.org>2012-09-23 20:57:43 +0200
committerGuilhem Moulin <guilhem.moulin@fripost.org>2012-09-23 20:57:43 +0200
commit06a4de26e05b74e3ed5493cef205af91462678a1 (patch)
treea6d6f009b3792f838fb4d9a2ff24d3d866cbf201 /lib/Fripost/Panel
parent0a4b5d24845fb86bade3ab3c38a6202862d6caad (diff)
Making the list creation method.
Diffstat (limited to 'lib/Fripost/Panel')
-rw-r--r--lib/Fripost/Panel/Interface.pm22
-rw-r--r--lib/Fripost/Panel/Login.pm16
2 files changed, 27 insertions, 11 deletions
diff --git a/lib/Fripost/Panel/Interface.pm b/lib/Fripost/Panel/Interface.pm
index 46d4058..e253ca0 100644
--- a/lib/Fripost/Panel/Interface.pm
+++ b/lib/Fripost/Panel/Interface.pm
@@ -37,7 +37,7 @@ sub ListDomains : StartRunmode {
my ($ul,$ud) = split /\@/, email_to_unicode($self->authen->username), 2;
- my $fp = Fripost::Schema->SASLauth( $self->authen->username, %CFG );
+ my $fp = Fripost::Schema::->SASLauth( $self->authen->username, %CFG );
my @domains = $fp->domain->search( -concat => "\n", -die => 403);
$fp->done;
@@ -139,6 +139,7 @@ sub ListLocals : Runmode {
, description => join ("\n", @{$_->{description}})
, isactive => $_->{isactive}
, transport => $_->{transport}
+ , listurl => $CFG{'listurl_'.$_->{transport}}.$_->{list}.'@'.$d
};
}
@lists
@@ -360,6 +361,7 @@ sub AddLocal : Runmode {
if (defined $q->param('submit')) {
# Changes have been submitted: process them
my %entry;
+ my %rest;
if ($t eq 'mailbox') {
$entry{user} = $q->param('user').'@'.$du;
$entry{forwards} = $q->param('forwards');
@@ -383,6 +385,22 @@ sub AddLocal : Runmode {
elsif ($t eq 'list') {
$entry{list} = $q->param('list').'@'.$du;
$entry{transport} = $q->param('transport');
+ if ($q->param('password') ne $q->param('password2')) {
+ $error = "Passwords do not match";
+ }
+ elsif (length $q->param('password') < $CFG{password_min_length}) {
+ $error = "Password should be at least "
+ .$CFG{password_min_length}
+ ." characters long.";
+ }
+ else {
+ $rest{gpg} = { use_agent => 0
+ , keydir => $CFG{gpghome}
+ , key => $CFG{gpg_private_key_id}
+ , passphrase => $CFG{gpg_private_key_passphrase}
+ };
+ $entry{password} = $q->param('password');
+ }
}
else {
# Unknown type
@@ -393,7 +411,7 @@ sub AddLocal : Runmode {
unless ($error) {
my $fp = Fripost::Schema::->SASLauth( $self->authen->username, %CFG );
- $error = $fp->$t->add( \%entry, -concat => "(\n|\x{0D}\x{0A})");
+ $error = $fp->$t->add( \%entry, -concat => "(\n|\x{0D}\x{0A})", %rest);
$fp->done;
return $self->redirect($q->url.'/'.$d.'/') unless $error;
}
diff --git a/lib/Fripost/Panel/Login.pm b/lib/Fripost/Panel/Login.pm
index a147371..1483e06 100644
--- a/lib/Fripost/Panel/Login.pm
+++ b/lib/Fripost/Panel/Login.pm
@@ -20,7 +20,6 @@ use CGI::Application::Plugin::Redirect;
use CGI::Application::Plugin::ConfigAuto 'cfg';
use Fripost::Schema;
-use File::Spec::Functions qw/catfile catdir/;
use HTML::Entities;
use Net::IDN::Encode qw/email_to_ascii/;
@@ -92,12 +91,11 @@ sub setup {
my $self = shift;
$self->header_props( -charset=>'utf-8' );
- $self->tmpl_path( catdir ( $self->cfg('pwd'), $self->cfg('tmpl_path') ) );
+ $self->tmpl_path( $self->cfg('tmpl_path') );
$self->mode_param( sub {
my $self = shift;
my $q = $self->query;
- print STDERR $ENV{PATH_INFO} . '?' . $q->query_string, "\n";
# The user just logged in
return 'okay' if defined $q->param('login');
@@ -135,9 +133,9 @@ sub setup {
# wanted to visit.
sub okay : Runmode {
my $self = shift;
- my $destination = $self->query->param('destination') //
- $self->query->url;
- return $self->redirect($destination);
+ my $redirect = $self->query->param('redirect') //
+ $self->query->url;
+ return $self->redirect($redirect);
}
@@ -154,8 +152,8 @@ sub login : Runmode {
$self->query->param('a') eq 'login';
# Where the users wants to go
- $self->query->param( destination => $self->query->self_url)
- unless defined $self->query->param('destination');
+ $self->query->param( redirect => $self->query->self_url)
+ unless defined $self->query->param('redirect');
return $self->login_box;
}
@@ -167,7 +165,7 @@ sub login_box {
my $template = $self->load_tmpl( 'login.html', cache => 1, utf8 => 1 );
$template->param( error => $self->authen->login_attempts );
- $template->param( destination => $self->query->param('destination') );
+ $template->param( redirect => $self->query->param('redirect') );
return $template->output;
}