hi, guys,
I have looked at my codes again. I read a lot more and debugged a lot more. I have arrived at the point whereby my catalyst user object doesn't have any value for roles (despite all the values have been set in the database backend). What am I missing? For example, running the code which dumps a list of roles as per http://search.cpan.org/~hkclark/Catalyst-Manual-5.7021/lib/Catalyst/Manual/Tutorial/Authorization.pod#___top (title of Add Role-Specific Logic to the "Book List" Template") doesn't show anything but by right, my current user has an 'admin' role. What am I missing out? Please help. My apologies for the many files here. Thank you and help!! :) File Extract: lib/myApp.pm ========================== use Catalyst qw( -Debug ConfigLoader Static::Simple StackTrace Authentication Authentication::Credential::Password Authorization::Roles Cache Cache::Store::FastMmap FormValidator Session Session::Store::FastMmap Session::State::Cookie ); __PACKAGE__->config( 'name' => 'myApp', 'session' => { 'flash_to_stash' => 1 }, 'static' => { 'include_path' => [ $static_dir{'base'}, $static_dir{'user_media'}, ], }, 'Plugin::Authentication' => { default_realm => 'members', members => { credential => { class => 'Password', password_field => 'password', password_type => 'hashed', 'password_hash_type' => 'SHA-384', }, store => { class => 'DBIx::Class', user_model => 'myAppDB::Users', role_relation => 'map_user_role', role_field => 'role', }, }, }, 'default_view' => 'myApp::View::TT', ); File Extract: ~/projects/myApp/lib/myApp/Schema/Roles.pm ============================================================ package myApp::Schema::Roles; use strict; use warnings; use base 'DBIx::Class'; __PACKAGE__->load_components qw( TimeStamp Core ); __PACKAGE__->table("roles"); __PACKAGE__->add_columns( "id", { data_type => "integer", default_value => "nextval('roles_id_seq'::regclass)", is_nullable => 0, size => 4, }, "role", { data_type => "text", default_value => undef, is_nullable => 1, size => undef, }, ); __PACKAGE__->set_primary_key("id"); __PACKAGE__->add_unique_constraint("roles_pkey", ["id"]); # Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-04-16 15:08:18 # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:7hanYe3kgzC1BJKgsYhH3g __PACKAGE__->has_many( 'map_user_role' => 'myApp::Schema::UserRoles', 'role_id'); 1; File Extract: ~/projects/myApp/lib/myApp/Schema/Users.pm ============================================================ use base 'DBIx::Class'; __PACKAGE__->load_components qw( TimeStamp Core ); __PACKAGE__->table("users"); __PACKAGE__->add_columns( "id", { data_type => "integer", default_value => "nextval('users_id_seq'::regclass)", is_nullable => 0, size => 4, }, "password", { data_type => "text", default_value => undef, is_nullable => 0, size => undef, }, "first_name", { data_type => "text", default_value => undef, is_nullable => 1, size => undef, }, "last_name", { data_type => "text", default_value => undef, is_nullable => 1, size => undef, }, "active", { data_type => "integer", default_value => undef, is_nullable => 1, size => 4 }, "main_contact_id", { data_type => "integer", default_value => undef, is_nullable => 1, size => 4 }, "company_name", { data_type => "text", default_value => undef, is_nullable => 1, size => undef, }, "billing_details_id", { data_type => "integer", default_value => undef, is_nullable => 1, size => 4 }, "billing_address_id", { data_type => "integer", default_value => undef, is_nullable => 1, size => 4 }, "created_by", { data_type => "character varying", default_value => undef, is_nullable => 1, size => 12, }, "updated_by", { data_type => "character varying", default_value => undef, is_nullable => 1, size => 12, }, "created_on", { data_type => "timestamp without time zone", default_value => undef, is_nullable => 1, size => 8, }, "updated_on", { data_type => "timestamp without time zone", default_value => undef, is_nullable => 1, size => 8, }, "login_id", { data_type => "character varying", default_value => undef, is_nullable => 0, size => 20, }, "abn", { data_type => "text", default_value => undef, is_nullable => 1, size => undef, }, ); __PACKAGE__->set_primary_key("id"); __PACKAGE__->add_unique_constraint("users_pkey", ["id"]); __PACKAGE__->add_unique_constraint("unique_login_id", ["login_id"]); # Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-04-16 15:08:18 # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:k/gPa2W9kHxvVMrKXFiPng __PACKAGE__->add_columns( 'created_on', { data_type => 'datetime', set_on_create => 1 }, 'updated_on', { data_type => 'datetime', set_on_create => 1, set_on_update => 1 }, ); __PACKAGE__->has_many( 'map_user_role' => 'myApp::Schema::UserRoles', 'user_id'); __PACKAGE__->many_to_many( 'roles' => 'map_user_role', 'role' ); __PACKAGE__->has_one(main_contact => 'myApp::Schema::MainContacts', {'foreign.id' => 'self.main_contact_id' }); __PACKAGE__->has_one(billing_address => 'myApp::Schema::Addresses', {'foreign.id' => 'self.billing_address_id' }); 1; File Extract: ~/projects/myApp/lib/myApp/Schema/UserRoles.pm ============================================================ package myApp::Schema::UserRoles; use strict; use warnings; use base 'DBIx::Class'; __PACKAGE__->load_components("Core"); __PACKAGE__->table("user_roles"); __PACKAGE__->add_columns( "user_id", { data_type => "integer", default_value => undef, is_nullable => 0, size => 4 }, "role_id", { data_type => "integer", default_value => undef, is_nullable => 0, size => 4 }, ); __PACKAGE__->set_primary_key("user_id", "role_id"); __PACKAGE__->add_unique_constraint("user_roles_pkey", ["user_id", "role_id"]); # Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-04-16 15:08:18 # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:laVNuEzY2I7z1XQKMXVx0A __PACKAGE__->belongs_to( 'user' => 'myApp::Schema::Users', 'user_id'); __PACKAGE__->belongs_to('role' => 'myApp::Schema::Roles', 'role_id'); 1; File Extract: ~/projects/myApp/lib/myApp/Model/myApp.pm ============================================================ package myApp::Model::myAppDB; use strict; use base 'Catalyst::Model::DBIC::Schema'; __PACKAGE__->config( schema_class => 'myApp::Schema', connect_info => [ 'dbi:Pg:dbname=myApp', 'my-general-user', 'my-password', ], ); 1; _______________________________________________ List: [email protected] Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst Searchable archive: http://www.mail-archive.com/[email protected]/ Dev site: http://dev.catalyst.perl.org/
