]> wagnertech.de Git - mfinanz.git/blobdiff - SL/User.pm
Usermaske im Adminbereich vor logins aus sessions geschützt.
[mfinanz.git] / SL / User.pm
index 888d042c486750035fc54b2a1a42b3c190ab3819..acbe5cf766139dc4d58f29231df0c04875afed5d 100644 (file)
@@ -49,12 +49,12 @@ use strict;
 sub new {
   $main::lxdebug->enter_sub();
 
-  my ($type, $login) = @_;
+  my ($type, %params) = @_;
 
   my $self = {};
 
-  if ($login ne "") {
-    my %user_data = $main::auth->read_user($login);
+  if ($params{id} || $params{login}) {
+    my %user_data = $main::auth->read_user(%params);
     map { $self->{$_} = $user_data{$_} } keys %user_data;
   }
 
@@ -77,9 +77,9 @@ sub country_codes {
   my @dir = grep(!/(^\.\.?$|\..*)/, readdir(DIR));
 
   foreach my $dir (@dir) {
-    next unless open(FH, "locale/$dir/LANGUAGE");
-    @language = <FH>;
-    close FH;
+    next unless open(my $fh, '<:encoding(UTF-8)', "locale/$dir/LANGUAGE");
+    @language = <$fh>;
+    close $fh;
 
     $cc{$dir} = "@language";
   }
@@ -102,7 +102,7 @@ sub login {
   my $rc = -3;
 
   if ($self->{login}) {
-    my %myconfig = $main::auth->read_user($self->{login});
+    my %myconfig = $main::auth->read_user(login => $self->{login});
 
     # check if database is down
     my $dbh = SL::DBConnect->connect($myconfig{dbconnect}, $myconfig{dbuser}, $myconfig{dbpasswd})
@@ -177,7 +177,6 @@ sub login {
         $self->{"menustyle"} eq "v3" ? "menuv3.pl" :
         $self->{"menustyle"} eq "neu" ? "menunew.pl" :
         $self->{"menustyle"} eq "js" ? "menujs.pl" :
-        $self->{"menustyle"} eq "xml" ? "menuXML.pl" :
         "menu.pl";
 
       print $form->parse_html_template("dbupgrade/footer", { "menufile" => $menufile });
@@ -739,7 +738,7 @@ sub create_employee_entry {
     do_query($form, $dbh, $query, ($self->{login}, $myconfig->{name}, $myconfig->{tel}, "user"));
 
   } elsif ($update_existing) {
-    my $query = qq|UPDATE employee SET name = ?, workphone = ?, role = 'user' WHERE id = ?|;
+    my $query = qq|UPDATE employee SET name = ?, workphone = ?, role = 'user', deleted = 'f' WHERE id = ?|;
     do_query($form, $dbh, $query, $myconfig->{name}, $myconfig->{tel}, $id);
   }
 
@@ -752,7 +751,7 @@ sub config_vars {
   my @conf = qw(address admin businessnumber company countrycode
     currency dateformat dbconnect dbdriver dbhost dbport dboptions
     dbname dbuser dbpasswd email fax name numberformat password
-    printer role sid signature stylesheet tel templates vclimit angebote
+    printer sid signature stylesheet tel templates vclimit angebote
     bestellungen rechnungen anfragen lieferantenbestellungen einkaufsrechnungen
     taxnumber co_ustid duns menustyle template_format default_media
     default_printer_id copies show_form_details favorites
@@ -788,5 +787,9 @@ sub error {
   $main::lxdebug->leave_sub();
 }
 
+sub data {
+  +{ %{ $_[0] } }
+}
+
 1;