public package
Foswiki::AccessControlException
On this page:
public package
Foswiki::AccessControlException is a
Error
Exception used raise an access control violation. This exception has the
following fields: -
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.
Throwing an exception
If your code needs to abort processing and inform the user (or the higher level caller) that some operation was denied, throw anAccessControlException
.
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 ); }
Catching an exception
If you are calling a function that can detect and throw an access violation, and you would prefer to intercept the exception to perform some further processing, use thetry { } catch { }
structure.
my $exception; try { Foswiki::Func::moveWeb( "Oldweb", "Newweb" ); } catch Foswiki::AccessControlException with { $exception = shift; } otherwise { ... };
Notes
Since date indicates where functions or parameters have been added since the baseline of the API (TWiki release 4.2.3). The date indicates the earliest date of a Foswiki release that will support that function or parameter. Deprecated date indicates where a function or parameters has been deprecated. Deprecated functions will still work, though they should not be called in new plugins and should be replaced in older plugins as soon as possible. Deprecated parameters are simply ignored in Foswiki releases after date. Until date indicates where a function or parameter has been removed. The date indicates the latest date at which Foswiki releases still supported the function or parameter. 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}