App-Cinema
view release on metacpan or search on metacpan
lib/App/Cinema/Controller/User.pm view on Meta::CPAN
sub login : Local Form {
my ( $self, $c ) = @_;
if ( !$c->session->{human} ) {
$c->res->redirect( $c->uri_for('/user/captcha') );
return;
}
my $form = $self->formbuilder;
# Get the username and password from form
my $uid = $form->field('username') || "";
my $pwd = $form->field('password') || "";
# If the username and password values were found in form
if ( $form->submitted && $form->validate ) {
my $status = $c->authenticate(
{
username => $uid,
password => $pwd,
active => 1
}
);
if ($status) { # If successful, then let them use the application
$c->flash->{message} = "Welcome back, " . $uid;
$c->res->redirect( $c->uri_for('/menu/home') );
return;
}
else {
$c->flash->{error} = "Bad username or password.";
}
}
}
sub logout : Local {
my ( $self, $c ) = @_;
# Clear the user's state
$c->logout();
$c->flash->{message} = 'Log out successfully.';
lib/App/Cinema/Controller/User.pm view on Meta::CPAN
my ( $self, $c ) = @_;
my $form = $self->formbuilder;
if ( $form->submitted && $form->validate ) {
eval {
my $row = $c->model('MD::Users')->create(
{
first_name => $form->field('fname'),
last_name => $form->field('lname'),
email_address => $form->field('email'),
username => $form->field('uid'),
password => $form->field('pwd'),
active => 1,
user_roles => [ { role_id => $form->field('role') } ]
}
);
my $e = App::Cinema::Event->new();
$e->uid( $row->username );
$e->desc(' created account : ');
$e->target( $row->username );
$e->insert($c);
lib/App/Cinema/Controller/User.pm view on Meta::CPAN
return;
}
my %attrs = { user_id => $user->username };
$c->model('MD::UserRoles')->search( { user_id => $user->username } )
->delete();
$user->first_name( $form->field('fname') );
$user->last_name( $form->field('lname') );
$user->email_address( $form->field('email') );
$user->password( $form->field('pwd') );
foreach ( $form->field('role') ) {
$user->create_related( 'user_roles', { role_id => $_ } );
}
$user->update_or_insert();
my $e = App::Cinema::Event->new();
$e->desc(' edited account : ');
$e->target($id);
lib/App/Cinema/Controller/User.pm view on Meta::CPAN
$form->field(
name => 'lname',
value => $user->last_name,
);
$form->field(
name => 'email',
value => $user->email_address,
);
$form->field(
name => 'pwd',
value => $user->password,
);
my @ids = ();
foreach ( $user->user_roles ) {
push @ids, $_->role_id;
}
$form->field(
name => 'role',
type => 'checkbox',
lib/App/Cinema/Model/MD.pm.new view on Meta::CPAN
use strict;
use base 'Catalyst::Model::DBIC::Schema';
__PACKAGE__->config(
schema_class => 'App::Cinema::Schema',
connect_info => {
dsn => 'dbi:mysql:dbname=cinemadb',
user => 'root',
password => 'bubu0319',
}
);
=head1 NAME
App::Cinema::Model::MD - Catalyst DBIC Schema Model
=head1 SYNOPSIS
See L<App::Cinema>
lib/App/Cinema/Schema/Result/Users.pm view on Meta::CPAN
__PACKAGE__->load_components( "InflateColumn::DateTime", "Core" );
__PACKAGE__->table("users");
__PACKAGE__->add_columns(
"username",
{
data_type => "VARCHAR",
default_value => undef,
is_nullable => 0,
size => 20,
},
"password",
{
data_type => "VARCHAR",
default_value => undef,
is_nullable => 1,
size => 20,
},
"first_name",
{
data_type => "VARCHAR",
default_value => undef,
root/forms/user/login.fb view on Meta::CPAN
name: user_login
method: POST
title: Address
fields:
username:
label: User Id
size: 30
required: 1
password:
label: Password
size: 30
type: Password
required: 1
submit: Submit
stylesheet: 1
root/static/db.txt view on Meta::CPAN
| user_id | varchar(20) | NO | PRI | | |
| role_id | int(11) | NO | PRI | 0 | |
+---------+-------------+------+-----+---------+-------+
2 rows in set (0.01 sec)
mysql> desc users;
+---------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------------+-------------+------+-----+---------+-------+
| username | varchar(20) | NO | PRI | NULL | |
| password | varchar(20) | YES | | NULL | |
| first_name | varchar(20) | YES | | NULL | |
| last_name | varchar(20) | YES | | NULL | |
| email_address | varchar(30) | YES | | NULL | |
| active | int(11) | YES | | NULL | |
+---------------+-------------+------+-----+---------+-------+
6 rows in set (0.00 sec)
( run in 1.209 second using v1.01-cache-2.11-cpan-49f99fa48dc )