X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=data%2FPVE%2FException.pm;h=63b3843d5f94ea9859cb29f169b2d7ac7bcb9867;hb=d6f2623bb902ce7cacd30104b0b634a05b3a9cdc;hp=8004d0555221080675001b076e6c2cfc93b2b560;hpb=710d2994af8a8cf8c7ad2af93c93f3b76a77c395;p=pve-common.git diff --git a/data/PVE/Exception.pm b/data/PVE/Exception.pm old mode 100755 new mode 100644 index 8004d05..63b3843 --- a/data/PVE/Exception.pm +++ b/data/PVE/Exception.pm @@ -21,7 +21,7 @@ use overload 'cmp' => sub { return "$a" cmp "$b"; # compare as string }; -@EXPORT_OK = qw(raise raise_param_exc); +@EXPORT_OK = qw(raise raise_param_exc raise_perm_exc); sub new { my ($class, $msg, %param) = @_; @@ -53,6 +53,25 @@ sub raise { die $exc; } +sub raise_perm_exc { + my ($what) = @_; + + my $param = { code => HTTP_FORBIDDEN }; + + my $msg = "Permission check failed"; + + $msg .= " ($what)" if $what; + + my $exc = PVE::Exception->new("$msg\n", %$param); + + my ($pkg, $filename, $line) = caller; + + $exc->{filename} = $filename; + $exc->{line} = $line; + + die $exc; +} + sub is_param_exc { my ($self) = @_;