1 package TestApp::Schema::User;
5 use base 'DBIx::Class';
7 __PACKAGE__->load_components(qw/ Core /);
9 __PACKAGE__->table( 'user' );
11 __PACKAGE__->add_columns( qw/id username email status role_text session_data/ );
13 __PACKAGE__->add_column(password => { accessor => 'password_accessor' });
15 __PACKAGE__->set_primary_key( 'id' );
17 __PACKAGE__->has_many( 'map_user_role' => 'TestApp::Schema::UserRole' => 'user' );
19 __PACKAGE__->many_to_many( roles => 'map_user_role', 'role');
24 my ( $self, $roles, $wanted_roles ) = @_;
26 if ( grep { $_ eq 'superadmin' } @$roles ) {
30 my $have = Set::Object->new(@$roles);
31 my $need = Set::Object->new(@$wanted_roles);
33 if ( $have->superset($need) ) {
38 sub t_check_roles_any {
39 my ( $self, $roles, $wanted_roles ) = @_;
41 if ( grep { $_ eq 'superadmin' } @$roles ) {
45 my $have = Set::Object->new(@$roles);
46 my $need = Set::Object->new(@$wanted_roles);
48 if ( $have->intersection($need)->size > 0 ) {