Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package ARC::Schema::User;
- use strict;
- use warnings;
- use base 'DBIx::Class';
- # Function: Stores user information
- # Update frequency/method: Updated prior to going live
- # Data source: HRO and ARC
- # Effects pages: Login, Registration, PW reset, Username retrieval
- # CREATE TABLE `tbl_user` (
- # `user_id` int(11) default NULL,
- # `user_name` varchar(20) default NULL,
- # `password` varchar(20) default NULL,
- # `last_name` varchar(50) default NULL,
- # `first_name` varchar(50) default NULL,
- # `title` varchar(50) default NULL,
- # `phone_number` varchar(20) default NULL,
- # `email_address` varchar(50) default NULL,
- # `superuser` int(11) default NULL
- # ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
- __PACKAGE__->load_components('Core');
- __PACKAGE__->table('tbl_user');
- # System-assigned id for the user
- __PACKAGE__->add_columns(
- user_id => {
- data_type => 'integer',
- size => 11,
- auto_increment => 1,
- }
- );
- __PACKAGE__->set_primary_key('user_id');
- __PACKAGE__->add_columns(
- user_name => {
- data_type => 'varchar',
- size => 20,
- is_nullable => 1,
- }
- );
- __PACKAGE__->add_columns(
- password => {
- data_type => 'varchar',
- size => 20,
- is_nullable => 1,
- }
- );
- sub check_password { $_[0]->password eq $_[1] }
- # Last name provided by the user
- __PACKAGE__->add_columns(
- last_name => {
- data_type => 'varchar',
- size => 50,
- is_nullable => 1,
- }
- );
- # First name provided by the user
- __PACKAGE__->add_columns(
- first_name => {
- data_type => 'varchar',
- size => 50,
- is_nullable => 1,
- }
- );
- # Job title provided by the user
- __PACKAGE__->add_columns(
- title => {
- data_type => 'varchar',
- size => 50,
- is_nullable => 1,
- }
- );
- # Phone number provided by the user
- __PACKAGE__->add_columns(
- phone_number => {
- data_type => 'varchar',
- size => 20,
- is_nullable => 1,
- }
- );
- sub phone_number_formatted {
- return unless $_[0]->phone_number;
- my ( $phone1, $phone2, $phone3 ) =
- $_[0]->phone_number =~ /(\d{3})-?(\d{3})-?(\d{4})/;
- return "($phone1) $phone2-$phone3";
- }
- # Email address provided by the user
- __PACKAGE__->add_columns(
- email_address => {
- data_type => 'varchar',
- size => 50,
- is_nullable => 1,
- }
- );
- # Flag to indicate if an admin is a superuser with additional privileges
- __PACKAGE__->add_columns(
- superuser => {
- data_type => 'integer',
- size => 11,
- is_nullable => 1,
- }
- );
- __PACKAGE__->add_unique_constraint(
- unique_name => [ qw/first_name last_name/ ],
- );
- warn "has many";
- __PACKAGE__->has_many(
- 'unitusers' => 'ARC::Schema::UnitUsers',
- 'user_id', { order_by => \'unit_id ASC' }
- );
- __PACKAGE__->many_to_many( 'units' => 'unitusers', 'unit_id' );
- sub is_hewitt_or_nhq { $_[0]->superuser }
- sub full_name {
- my $self = shift;
- join(" ", $self->first_name, $self->last_name );
- }
- sub mail_address {
- my $self = shift;
- Mail::Address->new( $self->full_name, $self->email_address );
- }
- 1;
- __END__
Add Comment
Please, Sign In to add comment