Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 540c0b5e

Von Moritz Bunkus vor etwa 12 Jahren hinzugefügt

User-Login auf Controller umgestellt

Unterschiede anzeigen:

SL/Dispatcher/AuthHandler.pm
5 5
use parent qw(Rose::Object);
6 6

  
7 7
use SL::Dispatcher::AuthHandler::Admin;
8
use SL::Dispatcher::AuthHandler::None;
8 9
use SL::Dispatcher::AuthHandler::User;
9 10

  
11
my %valid_auth_levels = map { ($_ => 1) } qw(user admin none);
12

  
10 13
sub handle {
11 14
  my ($self, %param) = @_;
12 15

  
......
16 19
  $self->{handlers}->{$handler_name} ||= $handler_name->new;
17 20
  $self->{handlers}->{$handler_name}->handle;
18 21

  
19
  return $auth_level;
22
  return (
23
    auth_level     => $auth_level,
24
    keep_auth_vars => $self->get_keep_auth_vars(%param),
25
  );
20 26
}
21 27

  
22 28
sub get_auth_level {
......
26 32
                 : $param{routing_type} eq 'controller' ? "SL::Controller::$param{controller}"->get_auth_level($param{action})
27 33
                 :                                        'user';
28 34

  
29
  return $auth_level eq 'user' ? 'user' : 'admin';
35
  return $valid_auth_levels{$auth_level} ? $auth_level : 'user';
36
}
37

  
38
sub get_keep_auth_vars {
39
  my ($self, %param) = @_;
40

  
41
  return $param{routing_type} eq 'controller' ? "SL::Controller::$param{controller}"->keep_auth_vars_in_form : 0;
30 42
}
31 43

  
32 44
1;

Auch abrufbar als: Unified diff