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 )