]> ruin.nu Git - ndwebbie.git/blobdiff - lib/NDWeb/Controller/Settings.pm
Move sms and hostname to settings
[ndwebbie.git] / lib / NDWeb / Controller / Settings.pm
index 16358444618efe089b44f12be74ee43e7ce8edbf..c983c7643ac9257e0c2421c3f95810b218dc1821 100644 (file)
@@ -43,14 +43,15 @@ sub index :Path :Args(0) {
        }
        $c->stash(stylesheets => \@stylesheets);
 
-       my ($birthday,$timezone,$email,$discord_id) = $dbh->selectrow_array(q{
-SELECT birthday,timezone,email,discord_id FROM users WHERE uid = $1
+       my $u = $dbh->selectrow_hashref(q{
+SELECT birthday,timezone,email,discord_id,sms,call_if_needed,sms_note,hostmask
+FROM users WHERE uid = $1
                },undef,$c->user->id);
-       $c->stash(birthday => $birthday);
-       $c->stash(email =>  $c->flash->{email} // $email);
-       $c->stash(discord_id =>  $c->flash->{discord_id} // $discord_id);
+       $c->stash(u => $u);
+       $c->stash(email =>  $c->flash->{email} // $u->{email});
+       $c->stash(discord_id =>  $c->flash->{discord_id} // $u->{discord_id});
 
-       my @timezone = split m{/},$timezone,2;
+       my @timezone = split m{/},$u->{timezone},2;
        $c->stash(timezone => \@timezone);
 
        my @cat = DateTime::TimeZone->categories;
@@ -68,7 +69,8 @@ sub changeStylesheet : Local {
        my $query = $dbh->prepare(q{UPDATE users SET css = NULLIF($2,'Default')
                WHERE uid = $1
        });
-       $query->execute($c->user->id,html_escape $c->req->param('stylesheet'));
+       my $css = html_escape $c->req->param('stylesheet');
+       $query->execute($c->user->id,$css);
 
        $c->res->redirect($c->uri_for(''));
 }
@@ -81,7 +83,8 @@ sub changeBirthday : Local {
                WHERE uid = $1
                });
        eval{
-               $query->execute($c->user->id,html_escape $c->req->param('birthday'));
+               my $birthday = html_escape $c->req->param('birthday');
+               $query->execute($c->user->id,$birthday);
        };
        if ($@){
                if ($@ =~ /invalid input syntax for type date/){
@@ -113,13 +116,15 @@ sub changePassword : Local {
        my ( $self, $c ) = @_;
        my $dbh = $c->model;
 
-       if (length $c->req->param('pass') < 4) {
+       my $pass = $c->req->param('pass');
+       if (length $pass < 4) {
                $c->flash(error => "Your password need to be at least 4 characters");
        } else {
                my $query = $dbh->prepare(q{UPDATE users SET password = $1
                        WHERE password = crypt($2,password) AND uid = $3
                });
-               $query->execute($c->req->param('pass'),$c->req->param('oldpass'),$c->user->id);
+               my $oldpass = $c->req->param('oldpass');
+               $query->execute($pass,$oldpass,$c->user->id);
 
                $c->flash(error => "Old password was invalid") unless $query->rows;
        }
@@ -133,7 +138,7 @@ sub changeEmail : Local {
 
        my $email = $c->req->param('email');
 
-       if ($email =~ /^s?$/) {
+       if ($email =~ /^\s*$/) {
                my $update = $dbh->prepare(q{
 UPDATE users SET email = NULL WHERE uid = $1;
                        });
@@ -175,6 +180,7 @@ use the following url to confirm the change:
                if (sendmail %mail) {
                        $c->flash(error => 'Sent mail for confirmation.');
                }else {
+                       $c->flash(email => $email);
                        $c->flash(error => $Mail::Sendmail::error);
                }
        };
@@ -189,6 +195,20 @@ use the following url to confirm the change:
        $c->res->redirect($c->uri_for(''));
 }
 
+sub postsmsupdate : Local {
+       my ( $self, $c ) = @_;
+       my $dbh = $c->model;
+
+       my $callme = $c->req->param('callme') || 0;
+       my $sms = html_escape $c->req->param('sms');
+       my $smsnote = $c->req->param('smsnote');
+       $dbh->do(q{
+UPDATE users SET sms = $1, call_if_needed =  $2, sms_note = $3 WHERE uid = $4
+               },undef, $sms, $callme, $smsnote, $c->user->id);
+
+       $c->res->redirect($c->uri_for(''));
+}
+
 sub changeDiscordId : Local {
        my ( $self, $c ) = @_;
        my $dbh = $c->model;
@@ -246,6 +266,16 @@ RETURNING email
        $c->res->redirect($c->uri_for(''));
 }
 
+sub posthostupdate : Local {
+       my ( $self, $c ) = @_;
+       my $dbh = $c->model;
+
+       my $hostname = html_escape $c->req->param('hostname');
+       $dbh->do(q{UPDATE users SET hostmask = ? WHERE uid = ?
+               },undef, $hostname, $c->user->id);
+
+       $c->res->redirect($c->uri_for(''));
+}
 
 =head1 AUTHOR