public package
Foswiki::AccessControlException is a
Error web
- the web which was being accessed
topic
- the topic being accessed (if any)
user
- canonical username of the person doing the accessing. Use the methods of the Foswiki::Users class to get more information about the user.
mode
- the access mode e.g. CHANGE, VIEW etc
reason
a text string giving the reason for the refusal.
The exception may be thrown by plugins. If a plugin throws the exception, it will normally be caught and the browser redirected to a login screen (if the user is not logged in) or reported (if they are and just don't have access).
AccessControlException
.
use Error qw(:try); use Foswiki::AccessControlException; ... unless ( Foswiki::Func::checkAccessPermission( "VIEW", $session->{user}, undef, $topic, $web ) ) { throw Foswiki::AccessControlException( "VIEW", $session->{user}, $web, $topic, $Foswiki::Meta::reason ); }
try { } catch { }
structure.
my $exception; try { Foswiki::Func::moveWeb( "Oldweb", "Newweb" ); } catch Foswiki::AccessControlException with { $exception = shift; } otherwise { ... };
ClassMethod
new($mode, $user, $web, $topic, $reason) $mode
- mode of access (view, change etc)
$user
- canonical user name of user doing the accessing
$web
- web being accessed
$topic
- topic being accessed
$reason
- string reason for failure
$e→{web}
and $e→{reason}
ObjectMethod
stringify() → $string Generate a summary string. This is mainly for debugging.