--- trunk/lib/SQLSession/CurrentUser.pm 2007/01/21 12:19:58 45 +++ trunk/lib/SQLSession/CurrentUser.pm 2007/01/21 12:41:35 47 @@ -20,15 +20,30 @@ $self->SUPER::_init(%args); } +=head2 role + +Test if user has role + + Jifty->web->current_user->role( 'edit' ); + +=cut + sub role { my $self = shift; my $role = shift; return 0 unless ($self->current_user->id); - warn "role is '$role' for ", $self->current_user->user_object->email, "?"; + my $r = SQLSession::Model::Role->new(); + $r->load_by_cols( + user_id => $self->current_user->id, + role => $role + ); + + warn "role is '$role' for ", $self->current_user->user_object->email, " ", + $r->id ? 'OK' : 'DENY', $/; - return 1 if ($self->current_user->user_object->email eq 'dpavlin@rot13.org'); + return $r->id; return 0; }