From e6c7010f28df7a5a10d1d697db6bea3e1fb66ffa Mon Sep 17 00:00:00 2001 From: ragu Date: Thu, 24 Nov 2022 12:50:23 +0100 Subject: [PATCH] enhance user access rights --- copri4/main/src/Mod/Indexsharee.pm | 11 ++++++----- copri4/main/src/Tpl/Liste3.pm | 4 ++-- copri4/main/src/Tpl/TransPositionen.pm | 7 +++++-- copri4/shareedms-operator/src/Lib/Mlogic.pm | 9 ++++++--- 4 files changed, 19 insertions(+), 12 deletions(-) diff --git a/copri4/main/src/Mod/Indexsharee.pm b/copri4/main/src/Mod/Indexsharee.pm index 8cfc6bb..0cf3fe1 100755 --- a/copri4/main/src/Mod/Indexsharee.pm +++ b/copri4/main/src/Mod/Indexsharee.pm @@ -317,9 +317,9 @@ sub handler { my $delete_key = "delete_content"; $delete_key = "delete_adr"; $return = "failure::Datensatz wirklich löschen. ::?base_edit=$delete_key\&exit_box2=1\&c_id=$R::c_id ::löschen"; - }elsif($users_dms_primary->{int02} == 2 && $R::c_id && $R::base_edit eq "save_adr"){ + }elsif($users_dms_primary->{u_id} && $users_dms_primary->{int02} == 2 && $users_dms->{u_id} && $users_dms->{int02} == 2 && $R::c_id && $R::base_edit eq "save_adr"){ ($returnwww,$return) = $tk->save_account($R::c_id,\%varenv,$users_dms->{u_id}); - }elsif($users_dms_primary->{int02} == 2 && $R::c_id && $R::base_edit eq "delete_adr"){ + }elsif($users_dms_primary->{u_id} && $users_dms_primary->{int02} == 2 && $users_dms->{u_id} && $users_dms->{int02} == 2 && $R::c_id && $R::base_edit eq "delete_adr"){ $return = $tk->delete_account($R::c_id,$users_dms->{u_id}); }else{ $return = "failure::Abbruch. Schreibender Zugriff \"Kunden Stammdaten\" verweigert."; @@ -367,11 +367,12 @@ sub handler { $bw->log("DMS action from $users_dms->{u_id} on $node_meta->{ct_table}|$R::c_id4trans,$R::tpl_id4trans with: $R::ct_trans","",""); my $dbh_primary = $dbt->dbconnect_extern($dbt->{primary}->{sharee_primary}->{database}->{dbname}); my $users_dms_primary = { u_id => 0 }; - $users_dms_primary = $dbt->select_users($dbh_primary,$users_dms->{u_id},"and int02 >= 1"); + $users_dms_primary = $dbt->select_users($dbh_primary,$users_dms->{u_id},"and int03 >= 1"); - if($users_dms_primary->{int03} == 1 && $R::ct_trans eq "open"){#DMS Faktura read + if($users_dms_primary->{u_id} && $users_dms_primary->{int03} >= 1 && $users_dms->{u_id} && $users_dms->{int03} >= 1 && $R::ct_trans eq "open"){#DMS Faktura read $db->update_users4trans($R::c_id4trans,$R::tpl_id4trans,"",$users_dms->{u_id}) if(looks_like_number($R::c_id4trans) && looks_like_number($R::tpl_id4trans)); - }elsif($users_dms_primary->{int03} == 2){#DMS Faktura rw + } + if($users_dms_primary->{u_id} && $users_dms_primary->{int03} == 2 && $users_dms->{u_id} && $users_dms->{int03} == 2){#DMS Faktura rw $db->update_users4trans($R::c_id4trans,$R::tpl_id4trans,"",$users_dms->{u_id}) if(looks_like_number($R::c_id4trans) && looks_like_number($R::tpl_id4trans)); if($R::ct_trans =~ /set_workflow2invoice|set_workflow2storno/){ $return = $pl->set_workflow($users_dms,$R::c_id4trans,$R::set_main_id4workflow) if(looks_like_number($R::c_id4trans) && looks_like_number($R::tpl_id4trans) && looks_like_number($R::set_main_id4workflow)); diff --git a/copri4/main/src/Tpl/Liste3.pm b/copri4/main/src/Tpl/Liste3.pm index 13be538..696321d 100755 --- a/copri4/main/src/Tpl/Liste3.pm +++ b/copri4/main/src/Tpl/Liste3.pm @@ -395,11 +395,11 @@ sub tpl(){ my $dbh_primary = $dbt->dbconnect_extern($dbt->{primary}->{sharee_primary}->{database}->{dbname}); my $users_dms_primary = { u_id => 0 }; - $users_dms_primary = $dbt->select_users($dbh_primary,$users_dms->{u_id},"and int02 >= 1"); + $users_dms_primary = $dbt->select_users($dbh_primary,$users_dms->{u_id},""); my $ctrel = {}; #only if permission read - if(($node_meta->{ct_table} eq "content" && $users_dms->{int01} >= 1) || ($node_meta->{ct_table} eq "contentadr" && $users_dms_primary->{int02} >= 1) || ($node_meta->{ct_table} eq "contenttrans" && $users_dms_primary->{int03} >= 1)){ + if(($node_meta->{ct_table} eq "content" && $users_dms->{int01} >= 1) || ($node_meta->{ct_table} eq "contentadr" && $users_dms_primary->{u_id} && $users_dms_primary->{int02} >= 1 && $users_dms->{u_id} && $users_dms->{int02} >= 1) || ($node_meta->{ct_table} eq "contenttrans" && $users_dms_primary->{u_id} && $users_dms_primary->{int03} >= 1 && $users_dms->{u_id} && $users_dms->{int03} >= 1)){ my $c_id4trans = $R::c_id4trans || ""; diff --git a/copri4/main/src/Tpl/TransPositionen.pm b/copri4/main/src/Tpl/TransPositionen.pm index 789a72e..639dc3e 100755 --- a/copri4/main/src/Tpl/TransPositionen.pm +++ b/copri4/main/src/Tpl/TransPositionen.pm @@ -562,13 +562,16 @@ EOF $but->selector("state","250px",$kind_of_payment,@_paymentstate)),"\n"; } } + #disabled 2022-11-23, needs more testing. Add +10.- on preauth + if($users_dms->{u_id} == $dbt->{copri_conf}->{superu_id}){ #further payone capture are only allowed if OPOS && sequence && TXID is set if($ctt->{int14} && $ctt->{int18} && $ctt->{txt16}){ - print $q->div({-class=>'element6',-style=>'clear:both;'},"Weitere Payone Einzüge über die vorhandene TXID $ctt->{txt16} (vorautorisiert Summe beachten) durch manuelle inkrement der Sequencenr mit +1", $q->textfield(-class=>'etxt',-name=>"payone_sequence",-default=>"", -override=>'1',-size=>"1",-maxlength=>1)),"\n"; + print $q->div({-class=>'element6',-style=>'clear:both;'},"Test. Weitere Payone Einzüge über die vorhandene TXID $ctt->{txt16} (vorautorisiert Summe beachten) durch manuelle inkrement der Sequencenr mit +1", $q->textfield(-class=>'etxt',-name=>"payone_sequence",-default=>"", -override=>'1',-size=>"1",-maxlength=>1)),"\n"; } #Payone reset if OPOS and TXID if($ctt->{int14} && $ctt->{txt16}){ - print $q->div({-class=>'element6',-style=>'clear:both;'},"Payone reset löscht den Vorgang mit der TXID $ctt->{txt16} und versucht einen erneuten Einzug", $but->checkbox("1","payone_reset","0","Payone reset","")),"\n"; + print $q->div({-class=>'element6',-style=>'clear:both;'},"Test. Payone reset löscht den Vorgang mit der TXID $ctt->{txt16} und versucht einen erneuten Einzug", $but->checkbox("1","payone_reset","0","Payone reset","")),"\n"; + } } } diff --git a/copri4/shareedms-operator/src/Lib/Mlogic.pm b/copri4/shareedms-operator/src/Lib/Mlogic.pm index bf08142..4323f21 100755 --- a/copri4/shareedms-operator/src/Lib/Mlogic.pm +++ b/copri4/shareedms-operator/src/Lib/Mlogic.pm @@ -141,15 +141,18 @@ sub tpl(){ my $dbh_primary = $dbt->dbconnect_extern($dbt->{primary}->{sharee_primary}->{database}->{dbname}); my $users_dms_primary = { u_id => 0 }; - $users_dms_primary = $dbt->select_users($dbh_primary,$users_dms->{u_id},"and int02 >= 1"); + $users_dms_primary = $dbt->select_users($dbh_primary,$users_dms->{u_id},""); #print Dumper($users_dms_primary); my $mod_active = "$dbt->{shareedms_conf}->{mod_active}"; - if($users_dms_primary->{u_id} && $users_dms_primary->{int02} >= 1){ - $mod_active .= "|Kunden|Faktura"; + if($users_dms_primary->{u_id} && $users_dms_primary->{int02} >= 1 && $users_dms->{u_id} && $users_dms->{int02} >= 1){ + $mod_active .= "|Kunden"; }else{ $mod_active .= "|App-feedback"; } + if($users_dms_primary->{u_id} && $users_dms_primary->{int03} >= 1 && $users_dms->{u_id} && $users_dms->{int03} >= 1){ + $mod_active .= "|Faktura"; + } ###Top Menu #bootstrap menue