diff --git a/html/ajax_misc.php b/html/ajax_misc.php index 82749d116..f3b4dd086 100644 --- a/html/ajax_misc.php +++ b/html/ajax_misc.php @@ -109,6 +109,12 @@ $path = array( "account"=>"ajax_poste", "card"=>"ajax_card", "ledger"=>"ajax_ledger", + // Manage ledger access + "ledger_access"=>"ajax_ledger_security", + // Manage user profile + "profile"=>"ajax_ledger_security", + // Update in once all the ledgers + "ledger_access_all"=>"ajax_ledger_security", "todo_list"=>"ajax_todo_list", "history"=>"ajax_history", "pcmn_update"=>"ajax_pcmn_update", diff --git a/include/ajax/ajax_ledger_security.php b/include/ajax/ajax_ledger_security.php new file mode 100644 index 000000000..142396214 --- /dev/null +++ b/include/ajax/ajax_ledger_security.php @@ -0,0 +1,173 @@ + + +if (!defined('ALLOWED')) + die('Appel direct ne sont pas permis'); + + +require_once NOALYSS_INCLUDE.'/lib/itext.class.php'; +require_once NOALYSS_INCLUDE.'/lib/iselect.class.php'; +require_once NOALYSS_INCLUDE.'/lib/inum.class.php'; +require_once NOALYSS_INCLUDE.'/lib/inplace_edit.class.php'; + +/** + * @file + * @brief Manage the security of a ledger , from CFGSEC module + * + */ + +$n_dossier_id=Dossier::id(); +//----------------------------------------------------------------------------- +// Manage the user's access to ledgers +//----------------------------------------------------------------------------- +if ($op=="ledger_access") +{ + $input=$http->request("input"); + $action=$http->request("ieaction", "string", "display"); + $user_id=$http->post("user_id", "numeric"); + $jrn_def_id=$http->post("jrn_def_id", "numeric"); + if ($action=="display") + { + $ie_input=Inplace_Edit::build($input); + $ie_input->set_callback("ajax_misc.php"); + $ie_input->add_json_param("jrn_def_id", $jrn_def_id); + $ie_input->add_json_param("op", "ledger_access"); + $ie_input->add_json_param("gDossier", $n_dossier_id); + $ie_input->add_json_param("user_id", $user_id); + echo $ie_input->ajax_input(); + return; + } + if ($action=="ok") + { + $value=$http->post("value"); + $ie_input=Inplace_Edit::build($input); + $ie_input->set_callback("ajax_misc.php"); + $ie_input->add_json_param("jrn_def_id", $jrn_def_id); + $ie_input->add_json_param("op", "ledger_access"); + $ie_input->add_json_param("gDossier", $n_dossier_id); + $ie_input->add_json_param("user_id", $user_id); + $ie_input->set_value($value); + $sec_User=new User($cn, $user_id); + $count=$cn->get_value('select count(*) from user_sec_jrn where uj_login=$1 '. + ' and uj_jrn_id=$2', array($sec_User->login, $jrn_def_id)); + if ($count==0) + { + $cn->exec_sql('insert into user_sec_jrn (uj_login,uj_jrn_id,uj_priv)'. + ' values ($1,$2,$3)', + array($sec_User->login, $jrn_def_id, $value)); + } + else + { + $cn->exec_sql('update user_sec_jrn set uj_priv=$1 where uj_login=$2 and uj_jrn_id=$3', + array($value, $sec_User->login, $jrn_def_id)); + } + echo $ie_input->value(); + return; + } + if ($action=="cancel") + { + $ie_input=Inplace_Edit::build($input); + $ie_input->set_callback("ajax_misc.php"); + $ie_input->add_json_param("jrn_def_id", $jrn_def_id); + $ie_input->add_json_param("op", "ledger_access"); + $ie_input->add_json_param("gDossier", $n_dossier_id); + $ie_input->add_json_param("user_id", $user_id); + echo $ie_input->value(); + return; + } +} +//----------------------------------------------------------------------------- +// Set the user's profile +//----------------------------------------------------------------------------- +if ( $op == "profile") +{ + $input=$http->request("input"); + $action=$http->request("ieaction", "string", "display"); + $user_id=$http->post("user_id", "numeric"); + $profile_id=$http->post("profile_id","numeric"); + if ($action=="display") + { + $ie_input=Inplace_Edit::build($input); + $ie_input->set_callback("ajax_misc.php"); + $ie_input->add_json_param("profile_id", $profile_id); + $ie_input->add_json_param("op", "profile"); + $ie_input->add_json_param("gDossier", $n_dossier_id); + $ie_input->add_json_param("user_id", $user_id); + echo $ie_input->ajax_input(); + return; + } + if ($action=="ok") + { + $value=$http->post("value"); + // save profile + $sec_User=new User($cn,$user_id); + $sec_User->save_profile($value); + $ie_input=Inplace_Edit::build($input); + $ie_input->set_callback("ajax_misc.php"); + $ie_input->add_json_param("op", "profile"); + $ie_input->add_json_param("gDossier", $n_dossier_id); + $ie_input->add_json_param("user_id", $user_id); + $ie_input->set_value($value); + + echo $ie_input->value(); + return; + } + if ($action=="cancel") + { + $ie_input=Inplace_Edit::build($input); + $ie_input->set_callback("ajax_misc.php"); + $ie_input->add_json_param("op", "profile"); + $ie_input->add_json_param("gDossier", $n_dossier_id); + $ie_input->add_json_param("profile_id", $profile_id); + $ie_input->add_json_param("user_id", $user_id); + echo $ie_input->value(); + return; + } +} +//------------------------------------------------------------------------------ +// Update in once all the ledger access for an user +//------------------------------------------------------------------------------ +if ( $op == 'ledger_access_all') { + // Find the login + $user_id=$http->post("user_id","numeric"); + $access=$http->post("access"); + if ( $access != "W" && $access != "X" && $access !="R") die("Invalid access"); + $sec_User=new User($cn, $user_id); + // Insert all the existing ledgers to user_sec_jrn + $sql="insert into user_sec_jrn( + uj_jrn_id, + uj_login, + uj_priv + ) select jrn_def_id,$1,'X' + from + jrn_def + where + not exists(select 1 + from + user_sec_jrn + where + uj_jrn_id = jrn_def_id + and uj_login = $1 + )"; + $cn->exec_sql($sql,array($sec_User->login)); + $cn->exec_sql('update user_sec_jrn set uj_priv=$1 where uj_login=$2',array($access,$sec_User->login)); + return; +} \ No newline at end of file diff --git a/include/class/acc_ledger.class.php b/include/class/acc_ledger.class.php index 6a0239919..bbb9dcfa1 100644 --- a/include/class/acc_ledger.class.php +++ b/include/class/acc_ledger.class.php @@ -3653,7 +3653,7 @@ class Acc_Ledger extends jrn_def_sql { $r = ''; $r.='
'; - $e_comm_paiement=new IText('e_comm_paiement'); - $e_comm_paiement->table = 0; - $e_comm_paiement->setReadOnly(false); - $e_comm_paiement->size = 60; - $e_comm_paiement->tabindex = 3; - $r.=_(" Libellé du paiement"); - $r.=$e_comm_paiement->input(); - $r.='
'; - } + $r.=''; + $e_comm_paiement=new IText('e_comm_paiement'); + $e_comm_paiement->table = 0; + $e_comm_paiement->setReadOnly(false); + $e_comm_paiement->size = 60; + $e_comm_paiement->tabindex = 3; + $r.=_(" Libellé du paiement"); + $r.=$e_comm_paiement->input(); + $r.='
'; + } $r.='