/[SQLSession]/trunk/lib/SQLSession/CurrentUser.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/lib/SQLSession/CurrentUser.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 47 by dpavlin, Sun Jan 21 12:41:35 2007 UTC revision 58 by dpavlin, Thu Jan 25 13:08:06 2007 UTC
# Line 4  use warnings; Line 4  use warnings;
4  package SQLSession::CurrentUser;  package SQLSession::CurrentUser;
5  use base qw/Jifty::CurrentUser/;  use base qw/Jifty::CurrentUser/;
6    
7    =head2 _init
8    
9    This function will load user data from database and turn on admin mode in
10    Jifty if user has C<admin> role.
11    
12    =cut
13    
14  sub _init {  sub _init {
15          my $self = shift;          my $self = shift;
16          my %args = (@_);          my %args = (@_);
# Line 15  sub _init { Line 22  sub _init {
22          } elsif( keys %args ) {          } elsif( keys %args ) {
23                  $self->user_object( SQLSession::Model::User->new( current_user => $self ) );                  $self->user_object( SQLSession::Model::User->new( current_user => $self ) );
24                  $self->user_object->load_by_cols( %args );                  $self->user_object->load_by_cols( %args );
25    
26          }          }
27    
28          $self->SUPER::_init(%args);          $self->SUPER::_init(%args);
29    
30            if ( $self->current_user->id ) {
31                    my $r = SQLSession::Model::Role->new();
32                    $r->load_by_cols(
33                            user_id => $self->current_user->id,
34                            role => 'admin',
35                    );
36                    if ($r->id) {
37                            warn "turn on AdminMode for ", $self->current_user->user_object->email, $/;
38                            $self->is_superuser(1);
39                    }
40            }
41  }  }
42    
43  =head2 role  =head2 role
# Line 34  sub role { Line 54  sub role {
54    
55          return 0 unless ($self->current_user->id);          return 0 unless ($self->current_user->id);
56    
57            return 1 if ($role eq 'admin' && $self->current_user->is_superuser);
58    
59          my $r = SQLSession::Model::Role->new();          my $r = SQLSession::Model::Role->new();
60          $r->load_by_cols(          $r->load_by_cols(
61                  user_id => $self->current_user->id,                  user_id => $self->current_user->id,
# Line 44  sub role { Line 66  sub role {
66                  $r->id ? 'OK' : 'DENY', $/;                  $r->id ? 'OK' : 'DENY', $/;
67    
68          return $r->id;          return $r->id;
   
         return 0;  
69  }  }
70    
71    

Legend:
Removed from v.47  
changed lines
  Added in v.58

  ViewVC Help
Powered by ViewVC 1.1.26