projects
/
kivitendo-erp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Spool-Dateien: Handling vom wiederholten Spoolen desselben Beleges gefixt
[kivitendo-erp.git]
/
SL
/
Dispatcher
/
AuthHandler.pm
diff --git
a/SL/Dispatcher/AuthHandler.pm
b/SL/Dispatcher/AuthHandler.pm
index
60dc637
..
c244431
100644
(file)
--- a/
SL/Dispatcher/AuthHandler.pm
+++ b/
SL/Dispatcher/AuthHandler.pm
@@
-1,22
+1,29
@@
-package SL::Dispatcher::AuthHandler;
+
package SL::Dispatcher::AuthHandler;
use strict;
use parent qw(Rose::Object);
use SL::Dispatcher::AuthHandler::Admin;
use strict;
use parent qw(Rose::Object);
use SL::Dispatcher::AuthHandler::Admin;
+use SL::Dispatcher::AuthHandler::None;
use SL::Dispatcher::AuthHandler::User;
use SL::Dispatcher::AuthHandler::User;
+my %valid_auth_levels = map { ($_ => 1) } qw(user admin none);
+
sub handle {
my ($self, %param) = @_;
my $auth_level = $self->get_auth_level(%param);
sub handle {
my ($self, %param) = @_;
my $auth_level = $self->get_auth_level(%param);
+
my $handler_name = "SL::Dispatcher::AuthHandler::" . ucfirst($auth_level);
$self->{handlers} ||= {};
$self->{handlers}->{$handler_name} ||= $handler_name->new;
$self->{handlers}->{$handler_name}->handle;
my $handler_name = "SL::Dispatcher::AuthHandler::" . ucfirst($auth_level);
$self->{handlers} ||= {};
$self->{handlers}->{$handler_name} ||= $handler_name->new;
$self->{handlers}->{$handler_name}->handle;
- return $auth_level;
+ return (
+ auth_level => $auth_level,
+ keep_auth_vars => $self->get_keep_auth_vars(%param),
+ );
}
sub get_auth_level {
}
sub get_auth_level {
@@
-26,7
+33,13
@@
sub get_auth_level {
: $param{routing_type} eq 'controller' ? "SL::Controller::$param{controller}"->get_auth_level($param{action})
: 'user';
: $param{routing_type} eq 'controller' ? "SL::Controller::$param{controller}"->get_auth_level($param{action})
: 'user';
- return $auth_level eq 'user' ? 'user' : 'admin';
+ return $valid_auth_levels{$auth_level} ? $auth_level : 'user';
+}
+
+sub get_keep_auth_vars {
+ my ($self, %param) = @_;
+
+ return $param{routing_type} eq 'controller' ? "SL::Controller::$param{controller}"->keep_auth_vars_in_form : 0;
}
1;
}
1;