X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;ds=sidebyside;f=SL%2FAuth.pm;h=a2236a7ce8041c603bd56135c254df008c681881;hb=223e6d0cf51b9847fd164b76c5a7fb77219f1855;hp=bb7ae00513627ca471c7c2ca178c57fbae658de3;hpb=7ed4b336b89b861479a1fc2670b9456334b0d1be;p=kivitendo-erp.git diff --git a/SL/Auth.pm b/SL/Auth.pm index bb7ae0051..a2236a7ce 100644 --- a/SL/Auth.pm +++ b/SL/Auth.pm @@ -44,7 +44,6 @@ sub new { sub reset { my ($self, %params) = @_; - delete $self->{dbh}; $self->{SESSION} = { }; $self->{FULL_RIGHTS} = { }; $self->{RIGHTS} = { }; @@ -1225,6 +1224,8 @@ sub load_rights_for_user { $rights = { map { $_ => 0 } all_rights() }; + return $rights if !$self->client || !$login; + $query = qq|SELECT gr."right", gr.granted FROM auth.group_rights gr @@ -1259,7 +1260,7 @@ __END__ SL::Auth - Authentication and session handling -=head1 FUNCTIONS +=head1 METHODS =over 4 @@ -1309,7 +1310,7 @@ Stores the session values in the database. This is the only function that actually stores stuff in the database. Neither the various setters nor the deleter access the database. -=item +=item C Stores the content of C<$params{form}> (default: C<$::form>) in the session using L. @@ -1323,7 +1324,7 @@ can be given as an array ref in C<$params{skip_keys}>. Returns the unique key under which the form is stored. -=item +=item C Restores the form from the session into C<$params{form}> (default: C<$::form>). @@ -1334,6 +1335,14 @@ is on by default. Returns C<$self>. +=item C + +C deletes every state information from previous requests, but does not +close the database connection. + +Creating a new database handle on each request can take up to 30% of the +pre-request startup time, so we want to avoid that for fast ajax calls. + =back =head1 BUGS