use warnings;
use base 'Catalyst::Controller';
use FrBr::Common;
+use FrBr::Books::Util::User;
=head1 NAME
# Attempt to log the user in
my $rs = $c->model('Schema::Users')->search({ 'login' => $username, 'deleted' => 'n', 'enabled' => 'y' });
if ($c->authenticate({ 'password' => $password, 'dbix_class' => { resultset => $rs } })) {
+ restore_user_prefs($c);
$c->response->redirect( $c->web_path('/') );
return 1;
} ## end if ( $c->login( $username, $password ) )
__PACKAGE__->load_components("Core");
__PACKAGE__->table("user_add");
__PACKAGE__->add_columns(
- "user_id" => { data_type => "INT", default_value => undef, is_nullable => 0, size => 10 },
- "comments" => { data_type => "TEXT", default_value => undef, is_nullable => 0, size => 65535, },
+ "user_id" => { data_type => "INT", default_value => undef, is_nullable => 0, size => 10 },
+ "comments" => { data_type => "TEXT", default_value => undef, is_nullable => 0, size => 65535, },
+ "prefs" => { data_type => "TEXT", default_value => undef, is_nullable => 0, size => 65535, },
);
__PACKAGE__->set_primary_key("user_id");
--- /dev/null
+package FrBr::Books::Util::User;
+
+# $Id$
+# $URL$
+
+use strict;
+use warnings;
+
+use FrBr::Common;
+use YAML;
+
+# Export-Deklarationen
+
+BEGIN {
+
+ use Exporter();
+ our ( $VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS );
+
+ # set the version for version checking
+ $VERSION = 0.1;
+ my ($rev) = '$Revision$' =~ /(\d+)/;
+ $VERSION = sprintf( $VERSION . ".%d", $rev );
+
+ @ISA = qw(Exporter);
+ @EXPORT = qw(
+ &save_user_prefs
+ &restore_user_prefs
+ );
+
+ #%EXPORT_TAGS = ( ); # eg: TAG => [ qw!name1 name2! ],
+
+ # your exported package globals go here,
+ # as well as any optionally exported functions
+ #@EXPORT_OK = qw($Var1 %Hashit &func3);
+} ## end BEGIN
+
+our @EXPORT_OK;
+
+=head1 NAME
+
+FrBr::Books::Util::User - Modul fuer Funktionen rund um benutzer
+
+=head1 METHODS
+
+=cut
+
+#-----------------------------------------------------------------------------------
+
+=head2 save_user_prefs( $c )
+
+Sichert die Einstellungen eines angemeldeten Benutzers
+
+=cut
+
+sub save_user_prefs {
+
+ my $c = shift;
+ my $K = ( caller(0) )[3] . "(): ";
+ $c->log->debug( $K . "aufgerufen." ) if $c->stash->{'debug_level'} > 2;
+
+ return undef unless $c->user_exists();
+ my $user_id = $c->user->get('user_id');
+ $c->log->debug( $K . "Suche User-ID: ", ( defined $user_id ? $user_id : '<undef>' ) ) if $c->stash->{'debug_level'} > 2;
+
+ my $prefs = {};
+
+ $prefs->{'list_length'} = $c->stash->{'list_length'};
+
+ my $dump = Dump($prefs);
+ $c->model('Schema::UserAdd')->search( { 'user_id' => $user_id } )->update( { 'prefs' => $dump } ) ;
+
+ return 1;
+
+}
+
+#-----------------------------------------------------------------------------------
+
+=head2 restore_user_prefs( $c )
+
+Holt die Einstellungen aus der Nutzertablle raus und beamt diese in die aktuelle Session
+
+=cut
+
+sub restore_user_prefs {
+
+ my $c = shift;
+ my $K = ( caller(0) )[3] . "(): ";
+ my $k = $c->stash->{'debug_level'} ? $K : '';
+ $c->log->debug( $K . "aufgerufen." ) if $c->stash->{'debug_level'} > 2;
+
+ return undef unless $c->user_exists();
+ my $user_id = $c->user->get('user_id');
+ $c->log->debug( $K . "Suche User-ID: ", ( defined $user_id ? $user_id : '<undef>' ) ) if $c->stash->{'debug_level'} > 2;
+
+ my $prefs = undef;
+ my $dump = undef;
+
+ $dump = $c->model('Schema::UserAdd')->search( { 'user_id' => $user_id } )->first()->prefs();
+
+ return unless $dump;
+ eval {
+ $prefs = Load($dump);
+ };
+ if ( $@ ) {
+ $c->log->warn( $k . "Fehler beim Restore der Nutzereinstellungen: " . $@ );
+ return;
+ }
+ return unless $prefs;
+
+ if ( $prefs->{'list_length'} ) {
+ $c->stash->{'list_length'} = $prefs->{'list_length'};
+ $c->session->{'list_length'} = $prefs->{'list_length'};
+ }
+
+ return 1;
+
+}
+
+#-----------------------------------------------------------------------------------
+
+=head1 AUTHOR
+
+Frank Brehm
+
+=head1 LICENSE
+
+This library is free software, you can redistribute it and/or modify
+it under the same terms as Perl itself.
+
+=cut
+
+1;
+
+__END__
+
+# vim: noai : ts=4 fenc=utf-8 filetype=perl expandtab :