Remove table priv_user, the local admin and plugin user are obsolete
This commit is contained in:
parent
7d9872c458
commit
2f023ade24
8 changed files with 55 additions and 120 deletions
|
|
@ -57,11 +57,6 @@ global $g_user, $cn,$g_parameter;
|
|||
$cn = new Database(Dossier::id());
|
||||
$g_user = new User($cn);
|
||||
|
||||
if ($g_user->check_dossier(dossier::id()) == 'P')
|
||||
{
|
||||
redirect("extension.php?" . dossier::get(), 0);
|
||||
exit();
|
||||
}
|
||||
$g_parameter=new Own($cn);
|
||||
|
||||
load_all_script();
|
||||
|
|
|
|||
|
|
@ -1471,6 +1471,12 @@ function add_menu(obj)
|
|||
}
|
||||
);
|
||||
}
|
||||
/**
|
||||
* @brief Display a box to enter data for adding a new plugin from
|
||||
* the CFGMENU
|
||||
* @param {type} p_dossier
|
||||
* @returns {undefined}
|
||||
*/
|
||||
function add_plugin(p_dossier)
|
||||
{
|
||||
waiting_box();
|
||||
|
|
|
|||
|
|
@ -53,12 +53,13 @@ class Dossier
|
|||
return $_REQUEST['gDossier'];
|
||||
}
|
||||
|
||||
/*!
|
||||
* \param p_type string : all for all dossiers lim for only the
|
||||
/**!
|
||||
* @brief Show the folder where user have access.
|
||||
* @param p_type string : all for all dossiers lim for only the
|
||||
* dossier where we've got rights
|
||||
* @return nothing
|
||||
*
|
||||
* Show the folder where user have access. Return : nothing
|
||||
++*/
|
||||
*/
|
||||
function show_dossier($p_type,$p_first=0,$p_max=0,$p_Num=0)
|
||||
{
|
||||
$l_user=$_SESSION['g_user'];
|
||||
|
|
@ -81,8 +82,8 @@ class Dossier
|
|||
$l_sql="select * from jnt_use_dos
|
||||
natural join ac_dossier
|
||||
natural join ac_users
|
||||
inner join priv_user on priv_jnt=jnt_id where
|
||||
use_login='".$l_user."' and priv_priv !='NO'
|
||||
where
|
||||
use_login='".sql_string($l_user)."'
|
||||
order by dos_name ";
|
||||
$p_Num=$this->cn->count_sql($l_sql);
|
||||
}
|
||||
|
|
@ -120,9 +121,6 @@ class Dossier
|
|||
left join (select array_to_string(array_agg(dos_name),',') as ag_dossier,jt.use_id as jt_use_id
|
||||
from ac_dossier as ds
|
||||
join jnt_use_dos as jt on (jt.dos_id=ds.dos_id)
|
||||
join priv_user as pu on (pu.priv_jnt=jt.jnt_id)
|
||||
where
|
||||
pu.priv_priv != 'X'
|
||||
group by jt.use_id) as dossier_name on (jt_use_id=ac.use_id)
|
||||
where
|
||||
use_login!='phpcompta'
|
||||
|
|
|
|||
|
|
@ -208,12 +208,11 @@ class User
|
|||
return 'L';
|
||||
$cn = new Database();
|
||||
|
||||
$sql = "select priv_priv from priv_user join jnt_use_dos on (jnt_id=priv_jnt) join ac_users using (use_id)
|
||||
where use_id=$1 and dos_id=$2";
|
||||
$sql = "select 1 from jnt_use_dos where use_id=$1 and dos_id=$2";
|
||||
|
||||
$res = $cn->get_value($sql, array($this->id, $p_dossier));
|
||||
if ($res == '')
|
||||
return 'X';
|
||||
|
||||
if ($cn->get_affected()== 0) return 'X';
|
||||
return $res;
|
||||
}
|
||||
|
||||
|
|
@ -234,11 +233,8 @@ class User
|
|||
|
||||
$Res = $cn->exec_sql("insert into jnt_use_dos(dos_id,use_id) values($1,$2)", array($db_id, $this->id));
|
||||
$jnt = $cn->get_value("select jnt_id from jnt_use_dos where dos_id=$1 and use_id=$2", array($db_id, $this->id));
|
||||
$Res = $cn->exec_sql("insert into priv_user (priv_priv,priv_jnt) values($1,$2)", array($priv, $jnt));
|
||||
}
|
||||
$Res = $cn->exec_sql("update priv_user set priv_priv=$1 where priv_jnt=$2", array($priv, $jnt));
|
||||
}
|
||||
|
||||
}
|
||||
/**
|
||||
* \brief check that a user is valid and the access to the folder
|
||||
* \param $p_ledger the ledger to check
|
||||
|
|
@ -763,6 +759,7 @@ class User
|
|||
|
||||
/**
|
||||
* \brief Check if an user is an local administrator
|
||||
* @deprecated since version 6.7
|
||||
*
|
||||
*
|
||||
* \param $p_dossier : dossier_id
|
||||
|
|
@ -775,24 +772,20 @@ class User
|
|||
|
||||
function is_local_admin($p_dossier = -1)
|
||||
{
|
||||
if ($p_dossier == -1)
|
||||
{
|
||||
$p_dossier = dossier::id();
|
||||
}
|
||||
if ($p_dossier==-1)
|
||||
{
|
||||
$p_dossier=dossier::id();
|
||||
}
|
||||
|
||||
if ($this->login == 'admin')
|
||||
return 1;
|
||||
$sql = 'select priv_priv from ac_users join jnt_use_dos using (use_id) join priv_user ' .
|
||||
' on ( jnt_use_dos.jnt_id = priv_user.priv_jnt) ' .
|
||||
" where priv_priv='L' and use_login='" . $this->login . "' and dos_id=$p_dossier";
|
||||
|
||||
$cn = new Database();
|
||||
|
||||
$isAdmin = $cn->count_sql($sql);
|
||||
|
||||
|
||||
return $isAdmin;
|
||||
}
|
||||
if ($this->login=='admin')
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
/**
|
||||
*@brief return array of available repository
|
||||
*
|
||||
|
|
@ -828,8 +821,9 @@ class User
|
|||
return $r;
|
||||
}
|
||||
/**
|
||||
* \brief return an array with all the users who can access $p_dossier including the global admin. The user
|
||||
* must be activated
|
||||
* \brief return an array with all the active users who can access
|
||||
* $p_dossier including the global admin.
|
||||
* The user must be activated
|
||||
*
|
||||
* \param $p_dossier dossier
|
||||
* \return an array of user's object
|
||||
|
|
@ -846,9 +840,9 @@ class User
|
|||
{
|
||||
$sql = "select distinct use_id,use_login,use_first_name,use_name from ac_users
|
||||
left outer join jnt_use_dos using (use_id)
|
||||
left join priv_user on (priv_jnt=jnt_id)
|
||||
where
|
||||
(dos_id=$1 or use_admin=1) and use_active=1 and (use_admin=1 or priv_priv <> 'X') order by use_login,use_name";
|
||||
where
|
||||
(dos_id=$1 and use_active=1) or (use_active=1 and use_admin=1)
|
||||
order by use_login,use_name";
|
||||
|
||||
|
||||
$repo = new Database();
|
||||
|
|
@ -875,7 +869,8 @@ class User
|
|||
return $this->get_ledger_access($p_jrn);
|
||||
}
|
||||
|
||||
/**\brief check if an user can access a folder, if he cannot display a dialog box
|
||||
/**
|
||||
* \brief check if an user can access a folder, if he cannot display a dialog box
|
||||
* and exit
|
||||
* \param the folder if
|
||||
* \param $silent false, echo an error message and exit, true : exit without warning
|
||||
|
|
@ -893,7 +888,7 @@ class User
|
|||
return 'L';
|
||||
$cn = new Database();
|
||||
|
||||
$dossier = $cn->get_value("select priv_priv from jnt_use_dos join priv_user on (priv_jnt=jnt_id) where dos_id=$1 and use_id=$2", array($p_dossier_id, $this->id));
|
||||
$dossier = $cn->get_value("select 'L' from jnt_use_dos join where dos_id=$1 and use_id=$2", array($p_dossier_id, $this->id));
|
||||
$dossier = ($dossier == '') ? 'X' : $dossier;
|
||||
if ($dossier == 'X')
|
||||
{
|
||||
|
|
@ -999,14 +994,15 @@ class User
|
|||
{
|
||||
// show only available folders
|
||||
// if user is not an admin
|
||||
$Res = $cn->exec_sql("select distinct dos_id,dos_name,dos_description from ac_users
|
||||
natural join jnt_use_dos
|
||||
natural join ac_dossier
|
||||
join priv_user on ( priv_jnt=jnt_id)
|
||||
where use_active=1
|
||||
and use_login= $1
|
||||
and priv_priv != 'X' and ( dos_name ~* $2 or dos_description ~* $2 )
|
||||
order by dos_name", array($this->login, $p_filter));
|
||||
$Res = $cn->exec_sql("select distinct dos_id,dos_name,dos_description
|
||||
from ac_users
|
||||
natural join jnt_use_dos
|
||||
natural join ac_dossier
|
||||
where
|
||||
use_login= $1
|
||||
and use_active = 1
|
||||
and ( dos_name ~* $2 or dos_description ~* $2 )
|
||||
order by dos_name", array($this->login, $p_filter));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
|||
|
|
@ -367,8 +367,6 @@ if ( $sa == 'remove' )
|
|||
exit;
|
||||
}
|
||||
ob_flush();
|
||||
$sql="delete from priv_user where priv_id in (select jnt_id from jnt_use_dos where dos_id=$1)";
|
||||
$cn->exec_sql($sql,array($_REQUEST['d']));
|
||||
$sql="delete from jnt_use_dos where dos_id=$1";
|
||||
$cn->exec_sql($sql,array($_REQUEST['d']));
|
||||
$sql="delete from ac_dossier where dos_id=$1";
|
||||
|
|
|
|||
|
|
@ -1,55 +0,0 @@
|
|||
<?php
|
||||
/*
|
||||
* This file is part of NOALYSS.
|
||||
*
|
||||
* NOALYSS is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* NOALYSS is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with NOALYSS; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
// Copyright Author Dany De Bontridder danydb@aevalys.eu
|
||||
|
||||
/*!\file
|
||||
* \brief this file is included from parameters and its purpose is to
|
||||
* enable, disable and manage security for the extensions
|
||||
*
|
||||
* variable :
|
||||
* - p_action is ext
|
||||
* - sb is nothing vw (view) or save
|
||||
* - $cn database connection
|
||||
*/
|
||||
|
||||
if ( ! defined ('ALLOWED') ) die('Appel direct ne sont pas permis');
|
||||
require_once('class_extension.php');
|
||||
require_once('class_html_input.php');
|
||||
require_once('class_ibutton.php');
|
||||
require_once('class_ipopup.php');
|
||||
|
||||
|
||||
$ipopup=new IPopup('dtext');
|
||||
$ipopup->value='';
|
||||
$ipopup->title=_('Détail extension');
|
||||
echo HtmlInput::hidden('popup','dtext').dossier::hidden();
|
||||
echo $ipopup->input();
|
||||
|
||||
echo '<div class="content">';
|
||||
|
||||
$ext=Extension::listing($cn);
|
||||
$new=new IButton('new');
|
||||
$new->label=_('Nouvelle extension');
|
||||
$new->javascript="new_extension()";
|
||||
$str_new=$new->input();
|
||||
require_once('template/extension.php');
|
||||
|
||||
|
||||
echo '</div>';
|
||||
|
|
@ -61,16 +61,14 @@ if ( ! isset($_REQUEST['action']))
|
|||
|
||||
|
||||
$repo=new Database();
|
||||
/* Show all the users, included local admin */
|
||||
/* Show all the active users, including admin */
|
||||
$user_sql = $repo->exec_sql("select use_id,
|
||||
use_first_name,
|
||||
use_name,
|
||||
use_login,
|
||||
use_admin,
|
||||
priv_priv
|
||||
from ac_users natural join jnt_use_dos " .
|
||||
" join priv_user on (jnt_id=priv_jnt)
|
||||
where use_login != 'phpcompta' and priv_priv <> 'X' and use_active=1
|
||||
use_admin
|
||||
from ac_users natural join jnt_use_dos
|
||||
where use_login != 'phpcompta' and use_active=1
|
||||
and dos_id=$1 " . $ord_sql, array($gDossier));
|
||||
|
||||
$MaxUser = Database::num_row($user_sql);
|
||||
|
|
@ -89,8 +87,8 @@ if ( ! isset($_REQUEST['action']))
|
|||
$l_line=Database::fetch_array($user_sql,$i);
|
||||
|
||||
|
||||
$str="";
|
||||
$str=($l_line['priv_priv'] == 'R')?'Utilisateur Normal':$str;
|
||||
$str="";
|
||||
$str='Utilisateur Normal';
|
||||
if ( $l_line['use_admin'] == 1 )
|
||||
$str=' Administrateur global';
|
||||
|
||||
|
|
|
|||
|
|
@ -100,7 +100,6 @@ else
|
|||
if (isset($_POST["DELETE"]))
|
||||
{
|
||||
$cn = new Database();
|
||||
$Res = $cn->exec_sql("delete from priv_user where priv_jnt in ( select jnt_id from jnt_use_dos where use_id=$1)", array($uid));
|
||||
$Res = $cn->exec_sql("delete from jnt_use_dos where use_id=$1", array($uid));
|
||||
$Res = $cn->exec_sql("delete from ac_users where use_id=$1", array($uid));
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue