wiki-archive/twiki/lib/TWiki/AccessControlException.pm

76 lines
2.1 KiB
Perl
Raw Normal View History

# Module of TWiki Enterprise Collaboration Platform, http://TWiki.org/
#
# Copyright (C) 1999-2007 TWiki Contributors. All Rights Reserved.
# TWiki Contributors are listed in the AUTHORS file in the root of
# this distribution.
# NOTE: Please extend that file, not this notice.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version. For
# more details read LICENSE in the root of this distribution.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
#
# As per the GPL, removal of this notice is prohibited.
=pod twiki
---+ package TWiki::AccessControlException
Exception used raise an access control violation.
=cut
package TWiki::AccessControlException;
use strict;
use Error;
@TWiki::AccessControlException::ISA = qw(Error);
=pod
---+ ClassMethod new($mode, $user, $web, $topic, $reason)
* =$mode= - mode of access (view, change etc)
* =$user= - user object doing the accessing
* =$web= - web being accessed
* =$topic= - topic being accessed
* =$reason= - string reason for failure
All the above fields are accessible from the object in a catch clause
in the usual way e.g. =$e->{web}= and =$e->{reason}=
=cut
sub new {
my ( $class, $mode, $user, $web, $topic, $reason ) = @_;
return $class->SUPER::new(
web => $web,
topic => $topic,
user => $user->wikiName(),
mode => $mode,
reason => $reason,
);
}
=pod
---++ ObjectMethod stringify() -> $string
Generate a summary string
=cut
sub stringify {
my $this = shift;
return "AccessControlException: Access to $this->{mode} $this->{web}.$this->{topic} for $this->{user} is denied. $this->{reason}";
}
1;