1 package NDWeb::Controller::Settings;
5 use parent 'Catalyst::Controller';
11 NDWeb::Controller::Settings - Catalyst Controller
26 sub index :Path :Args(0) {
27 my ( $self, $c ) = @_;
30 $c->stash(error => $c->flash->{error});
32 my @stylesheets = ('Default');
33 my $dir = $c->path_to('root/static/css/black.css')->dir;
34 while (my $file = $dir->next){
35 if(!$file->is_dir && $file->basename =~ m{^(\w+)\.css$}){
39 $c->stash(stylesheets => \@stylesheets);
40 $c->stash(birthday => $dbh->selectrow_array(q{
41 SELECT birthday FROM users WHERE uid = $1
46 sub changeStylesheet : Local {
47 my ( $self, $c ) = @_;
50 my $query = $dbh->prepare(q{UPDATE users SET css = NULLIF($2,'Default')
53 $query->execute($c->user->id,html_escape $c->req->param('stylesheet'));
55 $c->res->redirect($c->uri_for(''));
58 sub changeBirthday : Local {
59 my ( $self, $c ) = @_;
62 my $query = $dbh->prepare(q{UPDATE users SET birthday = NULLIF($2,'')::date
66 $query->execute($c->user->id,html_escape $c->req->param('birthday'));
69 if ($@ =~ /invalid input syntax for type date/){
70 $c->flash(error => 'Bad syntax for day, use YYYY-MM-DD.');
72 $c->flash(error => $@);
75 $c->res->redirect($c->uri_for(''));
79 sub changePassword : Local {
80 my ( $self, $c ) = @_;
83 my $query = $dbh->prepare(q{UPDATE users SET password = MD5($1)
84 WHERE password = MD5($2) AND uid = $3
86 $query->execute($c->req->param('pass'),$c->req->param('oldpass'),$c->user->id);
88 $c->res->redirect($c->uri_for(''));
94 Michael Andreen (harv@ruin.nu)