Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

94 lines (76 sloc) 1.989 kb
package Galileo::Admin;
use Mojo::Base 'Mojolicious::Controller';
sub users { shift->render }
sub pages { shift->render }
sub user { shift->render }
sub store_user {
my $self = shift;
$self->on( json => sub {
my ($self, $data) = @_;
my $pass1 = delete $data->{pass1};
my $pass2 = delete $data->{pass2};
if ( $pass1 or $pass2 ) {
unless ( $pass1 eq $pass2 ) {
$self->send({ json => {
message => 'Not saved! Passwords do not match',
success => \0,
} });
return 0;
}
$data->{password} = $pass1;
}
my $rs = $self->schema->resultset('User');
unless ( $rs->single({ name => $data->{name} }) or $data->{password}) {
$self->send({ json => {
message => 'Cannot create user without a password',
success => \0,
} });
return 0;
}
$data->{$_} = $data->{$_} ? 1 : 0 for ( qw/is_author is_admin/ );
$rs->update_or_create(
$data, {key => 'users_name'},
);
$self->send({ json => {
message => 'Changes saved',
success => \1,
} });
});
}
sub remove_page {
my $self = shift;
$self->on( json => sub {
my ($self, $data) = @_;
my $id = $data->{id};
if ($id == 1) {
$self->send({ json => {
success => \0,
message => 'Cannot remove home page',
} });
return;
}
my $page = $self->schema->resultset('Page')->single({ page_id => $id });
unless ( $page ) {
$self->send({ json => {
success => \0,
message => "Could not access page (id $id)",
} });
return;
}
my $affected = $page->delete;
#TODO remove page from nav menu if present
unless ( $affected ) {
$self->send({ json => {
success => \0,
message => 'Database reports failure on deleting page',
} });
return;
}
$self->send({ json => {
success => \1,
message => 'Page removed',
} });
return;
});
}
1;
Jump to Line
Something went wrong with that request. Please try again.