Added isVisitor, isAdmin, and isRegistered methods to User object instead

of hard coding checks everywhere with group ids. And updated the code base 
   to match.
This commit is contained in:
JT Smith 2008-09-16 22:32:36 +00:00
parent 586164d8d0
commit ef120fb06b
52 changed files with 201 additions and 118 deletions

View file

@ -58,7 +58,7 @@ sub _visitorCacheKey {
#-------------------------------------------------------------------
sub _visitorCacheOk {
my $self = shift;
return ($self->session->user->userId eq '1'
return ($self->session->user->isVisitor
&& !$self->session->form->process('sortBy'));
}
@ -308,7 +308,7 @@ sub canSubscribe {
? WebGUI::User->new( $session, $userId )
: $self->session->user
;
return ($user->userId ne "1" && $self->canView( $userId ) );
return ($user->isRegistered && $self->canView( $userId ) );
}
#-------------------------------------------------------------------
@ -1063,7 +1063,7 @@ sub getViewTemplateVars {
$var{"add.url"} = $self->getNewThreadUrl;
$var{"rss.url"} = $self->getRssUrl;
$var{'user.isModerator'} = $self->canModerate;
$var{'user.isVisitor'} = ($self->session->user->userId eq '1');
$var{'user.isVisitor'} = ($self->session->user->isVisitor);
$var{'user.isSubscribed'} = $self->isSubscribed;
$var{'sortby.title.url'} = $self->getSortByUrl("title");
$var{'sortby.username.url'} = $self->getSortByUrl("username");
@ -1500,7 +1500,7 @@ sub www_unsubscribe {
sub www_view {
my $self = shift;
my $disableCache = ($self->session->form->process("sortBy") ne "");
$self->session->http->setCacheControl($self->get("visitorCacheTimeout")) if ($self->session->user->userId eq "1" && !$disableCache);
$self->session->http->setCacheControl($self->get("visitorCacheTimeout")) if ($self->session->user->isVisitor && !$disableCache);
return $self->SUPER::www_view(@_);
}

View file

@ -193,7 +193,7 @@ sub www_edit {
#-------------------------------------------------------------------
sub www_mySubscriptions {
my $self = shift;
return $self->session->privilege->insufficient unless ($self->canView && $self->session->user->userId ne "1");
return $self->session->privilege->insufficient unless ($self->canView && $self->session->user->isRegistered);
my %var = ();
my $meta = $self->getMetaDataFields;
my @categories = ();
@ -233,7 +233,7 @@ sub www_mySubscriptions {
#-------------------------------------------------------------------
sub www_mySubscriptionsSave {
my $self = shift;
return $self->session->privilege->insufficient unless ($self->canView && $self->session->user->userId ne "1");
return $self->session->privilege->insufficient unless ($self->canView && $self->session->user->isRegistered);
my $subscriptions = $self->session->form->process("subscriptions", "checkList");
$self->setUserSubscriptions($subscriptions);
return $self->www_view;

View file

@ -24,14 +24,14 @@ our @ISA = qw(WebGUI::Asset::Wobject);
#-------------------------------------------------------------------
sub canManage {
my $self = shift;
return 0 if $self->session->user->userId eq '1';
return 0 if $self->session->user->isVisitor;
return $self->session->user->isInGroup($self->get("adminsGroupId"));
}
#-------------------------------------------------------------------
sub canPersonalize {
my $self = shift;
return 0 if $self->session->user->userId eq '1';
return 0 if $self->session->user->isVisitor;
return $self->session->user->isInGroup($self->get("usersGroupId"));
}
@ -273,7 +273,7 @@ sub view {
shortcutUrl=>$child->getUrl,
canPersonalize=>$self->canPersonalize,
showReloadIcon=>$child->{_properties}{showReloadIcon},
canEditUserPrefs=>(($self->session->user->userId ne '1') && (ref $child eq 'WebGUI::Asset::Shortcut') && (scalar($child->getPrefFieldsToShow) > 0))
canEditUserPrefs=>(($self->session->user->isRegistered) && (ref $child eq 'WebGUI::Asset::Shortcut') && (scalar($child->getPrefFieldsToShow) > 0))
});
$newStuff .= 'available_dashlets["'.$child->getId.'"]=\''.$child->getUrl.'\';';
@ -286,7 +286,7 @@ sub view {
shortcutUrl=>$child->getUrl,
canPersonalize=>$self->canPersonalize,
showReloadIcon=>$child->{_properties}{showReloadIcon},
canEditUserPrefs=>(($self->session->user->userId ne '1') && (ref $child eq 'WebGUI::Asset::Shortcut') && (scalar($child->getPrefFieldsToShow) > 0))
canEditUserPrefs=>(($self->session->user->isRegistered) && (ref $child eq 'WebGUI::Asset::Shortcut') && (scalar($child->getPrefFieldsToShow) > 0))
});
$newStuff .= 'available_dashlets["'.$child->getId.'"]=\''.$child->getUrl.'\';';
}
@ -309,7 +309,7 @@ sub view {
shortcutUrl=>$child->getUrl,
showReloadIcon=>$child->{_properties}{showReloadIcon},
canPersonalize=>$self->canPersonalize,
canEditUserPrefs=>(($self->session->user->userId ne '1') && (ref $child eq 'WebGUI::Asset::Shortcut') && (scalar($child->getPrefFieldsToShow) > 0))
canEditUserPrefs=>(($self->session->user->isRegistered) && (ref $child eq 'WebGUI::Asset::Shortcut') && (scalar($child->getPrefFieldsToShow) > 0))
});
$newStuff .= 'available_dashlets["'.$child->getId.'"]=\''.$child->getUrl.'\';';
}
@ -329,7 +329,7 @@ sub view {
#-------------------------------------------------------------------
sub www_setContentPositions {
my $self = shift;
return 'Visitors cannot save settings' if($self->session->user->userId eq '1');
return 'Visitors cannot save settings' if($self->session->user->isVisitor);
return $self->session->privilege->insufficient() unless ($self->canPersonalize);
return 'empty' unless $self->get("isInitialized");
my $dummy = $self->initialize unless $self->get("isInitialized");

View file

@ -1422,7 +1422,7 @@ Displays the badges purchased by the current user, or all users if the user is p
sub www_lookupRegistrant {
my ($self) = @_;
my $session = $self->session;
return $session->privilege->noAccess() unless ($self->canView && $self->session->user->userId ne "1");
return $session->privilege->noAccess() unless ($self->canView && $self->session->user->isRegistered);
# set up template variables
my %var = (

View file

@ -194,7 +194,7 @@ sub view {
my $self = shift;
# Use cached version for visitors
if ($self->session->user->userId eq '1') {
if ($self->session->user->isVisitor) {
my $out = WebGUI::Cache->new($self->session,"view_".$self->getId)->get;
return $out if $out;
}
@ -258,7 +258,7 @@ sub view {
my $out = $self->processTemplate( $vars, undef, $self->{_viewTemplate} );
# Update the cache
if ($self->session->user->userId eq '1') {
if ($self->session->user->isVisitor) {
WebGUI::Cache->new($self->session,"view_".$self->getId)
->set($out,$self->get("visitorCacheTimeout"));
}
@ -277,7 +277,7 @@ See WebGUI::Asset::Wobject::www_view() for details.
sub www_view {
my $self = shift;
$self->session->http->setCacheControl($self->get("visitorCacheTimeout")) if ($self->session->user->userId eq "1");
$self->session->http->setCacheControl($self->get("visitorCacheTimeout")) if ($self->session->user->isVisitor);
$self->SUPER::www_view(@_);
}

View file

@ -293,7 +293,7 @@ sub www_compare {
$var{isTooMany} = (scalar(@cmsList)>$max);
$var{isTooFew} = (scalar(@cmsList)<2);
$var{'compare.form'} = $self->getCompareForm(@cmsList);
$var{'isLoggedIn'} = ($self->session->user->userId ne "1");
$var{'isLoggedIn'} = ($self->session->user->isRegistered);
if ($var{isTooMany} || $var{isTooFew}) {
return $self->processStyle($self->processTemplate(\%var,$self->get("compareTemplateId")));
}
@ -985,7 +985,7 @@ sub www_search {
$var{isTooFew} = ($count<2);
}
}
$var{'isLoggedIn'} = ($self->session->user->userId ne "1");
$var{'isLoggedIn'} = ($self->session->user->isRegistered);
$var{'compare.form'} = $self->getCompareForm(@list);
$var{'form.header'} = WebGUI::Form::formHeader($self->session,{action=>$self->getUrl})
.WebGUI::Form::hidden($self->session,{
@ -1032,14 +1032,14 @@ sub www_search {
#-------------------------------------------------------------------
sub view {
my $self = shift;
if ($self->session->user->userId eq '1') {
if ($self->session->user->isVisitor) {
my $out = WebGUI::Cache->new($self->session,"view_".$self->getId)->get;
return $out if $out;
}
my (%var);
$var{'compare.form'} = $self->getCompareForm;
$var{'search.url'} = $self->getUrl("func=search");
$var{'isLoggedIn'} = ($self->session->user->userId ne "1");
$var{'isLoggedIn'} = ($self->session->user->isRegistered);
$var{'field.list.url'} = $self->getUrl('func=listFields');
$var{'listing.add.url'} = $self->formatURL("editListing","new");
@ -1132,7 +1132,7 @@ sub view {
}
$sth->finish;
my $out = $self->processTemplate(\%var,undef,$self->{_viewTemplate});
if ($self->session->user->userId eq '1') {
if ($self->session->user->isVisitor) {
WebGUI::Cache->new($self->session,"view_".$self->getId)->set($out,$self->get("visitorCacheTimeout"));
}
return $out;
@ -1148,7 +1148,7 @@ See WebGUI::Asset::Wobject::www_view() for details.
sub www_view {
my $self = shift;
$self->session->http->setCacheControl($self->get("visitorCacheTimeout")) if ($self->session->user->userId eq "1");
$self->session->http->setCacheControl($self->get("visitorCacheTimeout")) if ($self->session->user->isVisitor);
$self->SUPER::www_view(@_);
}
@ -1167,7 +1167,7 @@ sub www_viewDetail {
$var{thumbnail} = $storage->getThumbnailUrl($listing->{filename});
}
$var{"discussion"} = $forum && $forum->view;
$var{'isLoggedIn'} = ($self->session->user->userId ne "1");
$var{'isLoggedIn'} = ($self->session->user->isRegistered);
if ($self->session->form->process("do") eq "sendEmail" && $self->session->form->process("verify","captcha")) {
if ($self->session->form->process("body") ne "") {
my $u = WebGUI::User->new($self->session, $listing->{maintainerId});

View file

@ -98,7 +98,7 @@ See WebGUI::Asset::view() for details.
sub view {
my $self = shift;
if ($self->session->user->userId eq '1') {
if ($self->session->user->isVisitor) {
my $out = WebGUI::Cache->new($self->session,"view_".$self->getId)->get;
return $out if $out;
}
@ -163,7 +163,7 @@ sub view {
$var{forum_loop} = \@forum_loop;
my $out = $self->processTemplate(\%var,undef,$self->{_viewTemplate});
if ($self->session->user->userId eq '1') {
if ($self->session->user->isVisitor) {
WebGUI::Cache->new($self->session,"view_".$self->getId)->set($out,$self->get("visitorCacheTimeout"));
}
return $out;
@ -179,7 +179,7 @@ See WebGUI::Asset::Wobject::www_view() for details.
sub www_view {
my $self = shift;
$self->session->http->setCacheControl($self->get("visitorCacheTimeout")) if ($self->session->user->userId eq "1");
$self->session->http->setCacheControl($self->get("visitorCacheTimeout")) if ($self->session->user->isVisitor);
$self->SUPER::www_view(@_);
}

View file

@ -521,7 +521,7 @@ sub www_goBackToPage {
sub www_preview {
my $self = shift;
$self->session->var->get("adminOn") = 0;
return $self->session->privilege->insufficient() unless ($self->session->user->isInGroup(3));
return $self->session->privilege->insufficient() unless ($self->session->user->isAdmin);
my $nav = WebGUI::Navigation->new( depth=>$self->session->form->process("depth"),
method=>$self->session->form->process("method"),
startAt=>$self->session->form->process("startAt"),