diff --git a/htdocs/comm/action/class/actioncomm.class.php b/htdocs/comm/action/class/actioncomm.class.php index 52620f4445bd2612a3e31148c3f9746da4b05573..9b15634945eadeb80a306cf5a2e00c11fbe2877b 100644 --- a/htdocs/comm/action/class/actioncomm.class.php +++ b/htdocs/comm/action/class/actioncomm.class.php @@ -35,7 +35,7 @@ class ActionComm extends CommonObject public $element='action'; public $table_element = 'actioncomm'; public $table_rowid = 'id'; - protected $ismultientitymanaged = 2; // 0=No test on entity, 1=Test with field entity, 2=Test with link by societe + protected $ismultientitymanaged = 1; // 0=No test on entity, 1=Test with field entity, 2=Test with link by societe var $id; diff --git a/htdocs/comm/action/document.php b/htdocs/comm/action/document.php index 6a576c580cab149b9026911e18a9b74a38502a2e..7ad74302655729db684ab9ea01f8b125b3e6f36c 100755 --- a/htdocs/comm/action/document.php +++ b/htdocs/comm/action/document.php @@ -51,6 +51,8 @@ if ($user->societe_id > 0) $socid = $user->societe_id; } +$result = restrictedArea($user, 'agenda', $objectid, 'actioncomm&societe', 'myactions&allactions', '', 'id'); + $act = new ActionComm($db); if ($objectid > 0) diff --git a/htdocs/comm/action/fiche.php b/htdocs/comm/action/fiche.php index a68427c9ef76b52c3a58a132eaaa837ec6949c6e..f230ba1a95b4b3b891049777cceaabb85cb5620d 100644 --- a/htdocs/comm/action/fiche.php +++ b/htdocs/comm/action/fiche.php @@ -53,7 +53,7 @@ $contactid=GETPOST('contactid','int'); $socid = GETPOST('socid','int'); $id = GETPOST('id','int'); if ($user->societe_id) $socid=$user->societe_id; -//$result = restrictedArea($user, 'agenda', $id, 'actioncomm', 'actions', '', 'id'); +$result = restrictedArea($user, 'agenda', $id, 'actioncomm&societe', 'myactions&allactions', '', 'id'); $error=GETPOST("error"); $mesg=''; diff --git a/htdocs/comm/action/info.php b/htdocs/comm/action/info.php index 7c775bf78ac034ccbe7c3835dc84620b24688174..66dc178d4b83cfbbe52fcbbdf7cbf9e82cadfe79 100644 --- a/htdocs/comm/action/info.php +++ b/htdocs/comm/action/info.php @@ -31,6 +31,8 @@ require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php'; $langs->load("commercial"); +$id = GETPOST('id','int'); + // Security check if ($user->societe_id > 0) { @@ -38,6 +40,7 @@ if ($user->societe_id > 0) $socid = $user->societe_id; } +$result = restrictedArea($user, 'agenda', $id, 'actioncomm&societe', 'myactions&allactions', '', 'id'); /* @@ -48,8 +51,8 @@ $help_url='EN:Module_Agenda_En|FR:Module_Agenda|ES:M&omodulodulo_Agenda'; llxHeader('',$langs->trans("Agenda"),$help_url); $act = new ActionComm($db); -$act->fetch($_GET["id"]); -$act->info($_GET["id"]); +$act->fetch($id); +$act->info($act->id); $head=actions_prepare_head($act); dol_fiche_head($head, 'info', $langs->trans("Action"),0,'action'); diff --git a/htdocs/contact/class/contact.class.php b/htdocs/contact/class/contact.class.php index 4cbc1d7fbcdcf4809749e0ac2d09217de325a261..db8b408e6ed0f0d90781f39928a81ea675033d4e 100644 --- a/htdocs/contact/class/contact.class.php +++ b/htdocs/contact/class/contact.class.php @@ -36,6 +36,7 @@ class Contact extends CommonObject { public $element='contact'; public $table_element='socpeople'; + protected $ismultientitymanaged = 1; // 0=No test on entity, 1=Test with field entity, 2=Test with link by societe var $id; var $civilite_id; // In fact we store civility_code diff --git a/htdocs/contact/exportimport.php b/htdocs/contact/exportimport.php index c3f9f2605ee710fa6e7f8b28569e16a95907df4f..5149eed9efb877140d734177eb7e18cd6fe4814a 100644 --- a/htdocs/contact/exportimport.php +++ b/htdocs/contact/exportimport.php @@ -29,26 +29,28 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/contact.lib.php'; $langs->load("companies"); // Security check -$contactid = isset($_GET["id"])?$_GET["id"]:''; +$id = GETPOST('id', 'int'); if ($user->societe_id) $socid=$user->societe_id; -$result = restrictedArea($user, 'contact', $contactid, 'socpeople&societe'); +$result = restrictedArea($user, 'contact', $id, 'socpeople&societe'); /* * View */ -llxHeader('',$langs->trans("ContactsAddresses"),'EN:Module_Third_Parties|FR:Module_Tiers|ES:Módulo_Empresas'); +$title = (! empty($conf->global->SOCIETE_ADDRESSES_MANAGEMENT) ? $langs->trans("Contacts") : $langs->trans("ContactsAddresses")); + +llxHeader('',$title,'EN:Module_Third_Parties|FR:Module_Tiers|ES:Módulo_Empresas'); $form = new Form($db); $contact = new Contact($db); -$contact->fetch($_GET["id"], $user); +$contact->fetch($id, $user); $head = contact_prepare_head($contact); -dol_fiche_head($head, 'exportimport', $langs->trans("ContactsAddresses"), 0, 'contact'); +dol_fiche_head($head, 'exportimport', $title, 0, 'contact'); /* @@ -97,7 +99,7 @@ print '</div>'; print '<br>'; print $langs->trans("ExportCardToFormat").': '; -print '<a href="'.DOL_URL_ROOT.'/contact/vcard.php?id='.$_GET["id"].'">'; +print '<a href="'.DOL_URL_ROOT.'/contact/vcard.php?id='.$contact->id.'">'; print img_picto($langs->trans("VCard"),'vcard.png').' '; print $langs->trans("VCard"); print '</a>'; diff --git a/htdocs/contact/fiche.php b/htdocs/contact/fiche.php index a41b01cb14c20a31f8fa872ccb97b39a58c1b15b..abb19b2cc9136a6961b6db57bc74850cd91a9937 100644 --- a/htdocs/contact/fiche.php +++ b/htdocs/contact/fiche.php @@ -67,7 +67,7 @@ if (! empty($canvas)) } // Security check -$result = restrictedArea($user, 'contact', $id, 'socpeople&societe', '', '', '', $objcanvas); // If we create a contact with no company (shared contacts), no check on write permission +$result = restrictedArea($user, 'contact', $id, 'socpeople&societe', '', '', 'rowid', $objcanvas); // If we create a contact with no company (shared contacts), no check on write permission // Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array $hookmanager->initHooks(array('contactcard')); diff --git a/htdocs/contact/ldap.php b/htdocs/contact/ldap.php index bb1114c18da9359ad01b944faaedfe43d45c6abf..f284ee1834d6aa8af11d51dd31bdfb578dd1621d 100644 --- a/htdocs/contact/ldap.php +++ b/htdocs/contact/ldap.php @@ -35,12 +35,12 @@ $langs->load("admin"); $action=GETPOST('action'); // Security check -$contactid = isset($_GET["id"])?$_GET["id"]:''; +$id = GETPOST('id', 'int'); if ($user->societe_id) $socid=$user->societe_id; -$result = restrictedArea($user, 'contact', $contactid, 'socpeople&societe'); +$result = restrictedArea($user, 'contact', $id, 'socpeople&societe'); $contact = new Contact($db); -$contact->fetch($_GET["id"], $user); +$contact->fetch($id, $user); /* @@ -79,13 +79,15 @@ if ($action == 'dolibarr2ldap') * View */ -llxHeader('',$langs->trans("ContactsAddresses"),'EN:Module_Third_Parties|FR:Module_Tiers|ES:Módulo_Empresas'); +$title = (! empty($conf->global->SOCIETE_ADDRESSES_MANAGEMENT) ? $langs->trans("Contacts") : $langs->trans("ContactsAddresses")); + +llxHeader('',$title,'EN:Module_Third_Parties|FR:Module_Tiers|ES:Módulo_Empresas'); $form = new Form($db); $head = contact_prepare_head($contact); -dol_fiche_head($head, 'ldap', $langs->trans("ContactsAddresses"), 0, 'contact'); +dol_fiche_head($head, 'ldap', $title, 0, 'contact'); print '<table class="border" width="100%">'; diff --git a/htdocs/contact/perso.php b/htdocs/contact/perso.php index d321e07a2585163c519cafb3b10dd5665dc72ff2..86462d05fae4bdeabb08fa98357679e1c138bbe7 100644 --- a/htdocs/contact/perso.php +++ b/htdocs/contact/perso.php @@ -69,7 +69,9 @@ if ($action == 'update' && ! $_POST["cancel"] && $user->rights->societe->contact $now=dol_now(); -llxHeader('',$langs->trans("ContactsAddresses"),'EN:Module_Third_Parties|FR:Module_Tiers|ES:Módulo_Empresas'); +$title = (! empty($conf->global->SOCIETE_ADDRESSES_MANAGEMENT) ? $langs->trans("Contacts") : $langs->trans("ContactsAddresses")); + +llxHeader('',$title,'EN:Module_Third_Parties|FR:Module_Tiers|ES:Módulo_Empresas'); $form = new Form($db); @@ -77,7 +79,7 @@ $object->fetch($id, $user); $head = contact_prepare_head($object); -dol_fiche_head($head, 'perso', $langs->trans("ContactsAddresses"), 0, 'contact'); +dol_fiche_head($head, 'perso', $title, 0, 'contact'); if ($action == 'edit') { diff --git a/htdocs/contact/vcard.php b/htdocs/contact/vcard.php index f9f4c80fad1ac3feadc1d5180f22c4bb0612a8c2..48189eb60f637308b834e0da64ebfc3fe670b399 100644 --- a/htdocs/contact/vcard.php +++ b/htdocs/contact/vcard.php @@ -29,8 +29,13 @@ require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/vcard.class.php'; +$id = GETPOST('id', 'int'); + +// Security check +$result = restrictedArea($user, 'contact', $id, 'socpeople&societe'); + $contact = new Contact($db); -$result=$contact->fetch($_GET["id"]); +$result=$contact->fetch($id); $physicalperson=1; diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 54aa10e23b44f0e6d55bc7e0f4663c4783128b91..5e288acaabc88120971120cbe2fe12305f2fada5 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -4134,7 +4134,7 @@ function verifCond($strRights) * This function is called by verifCond() or trans() and transnoentitiesnoconv(). * * @param string $s String to evaluate - * @param int $returnvalue 0=No return (used to execute $a=something). 1=Value of eval is returned (used to eval $something). + * @param int $returnvalue 0=No return (used to execute eval($a=something)). 1=Value of eval is returned (used to eval($something)). * @return mixed Nothing or return of eval */ function dol_eval($s,$returnvalue=0) @@ -4145,16 +4145,16 @@ function dol_eval($s,$returnvalue=0) global $rights; //print $s."<br>\n"; - if ($returnvalue) return eval('return '.$s.';'); - else eval($s); + if ($returnvalue) return @eval('return '.$s.';'); + else @eval($s); } /** -* Return if var element is ok -* -* @param string $element Variable to check -* @return boolean Return true of variable is not empty -*/ + * Return if var element is ok + * + * @param string $element Variable to check + * @return boolean Return true of variable is not empty + */ function dol_validElement($element) { return (trim($element) != ''); diff --git a/htdocs/core/lib/security.lib.php b/htdocs/core/lib/security.lib.php index ea2f58299efdfba6b0454f5987cd255fa2e82408..4acfd4912c6f35a21def69e59f0563ed15ecc50c 100644 --- a/htdocs/core/lib/security.lib.php +++ b/htdocs/core/lib/security.lib.php @@ -112,11 +112,15 @@ function restrictedArea($user, $features, $objectid=0, $dbtablename='', $feature if (method_exists($objcanvas->control,'restrictedArea')) return $objcanvas->control->restrictedArea($user,$features,$objectid,$dbtablename,$feature2,$dbt_keyfield,$dbt_select); } - if ($dbt_select != 'rowid') $objectid = "'".$objectid."'"; + if ($dbt_select != 'rowid' && $dbt_select != 'id') $objectid = "'".$objectid."'"; // More features to check $features = explode("&", $features); + // More subfeatures to check + if (!empty($feature2)) + $feature2 = explode("&", $feature2); + // More parameters $params = explode('&', $dbtablename); $dbtablename=(! empty($params[0]) ? $params[0] : ''); @@ -160,8 +164,11 @@ function restrictedArea($user, $features, $objectid=0, $dbtablename='', $feature } else if (! empty($feature2)) // This should be used for future changes { - if (empty($user->rights->$feature->$feature2->lire) - && empty($user->rights->$feature->$feature2->read)) $readok=0; + foreach($feature2 as $subfeature) + { + if (empty($user->rights->$feature->$subfeature->lire) && empty($user->rights->$feature->$subfeature->read)) $readok=0; + else { $readok=1; break; } // For bypass the second test if the first is ok + } } else if (! empty($feature) && ($feature!='user' && $feature!='usergroup')) // This is for old permissions { @@ -206,8 +213,11 @@ function restrictedArea($user, $features, $objectid=0, $dbtablename='', $feature } else if (! empty($feature2)) // This should be used for future changes { - if (empty($user->rights->$feature->$feature2->creer) - && empty($user->rights->$feature->$feature2->write)) $createok=0; + foreach($feature2 as $subfeature) + { + if (empty($user->rights->$feature->$subfeature->creer) && empty($user->rights->$feature->$subfeature->write)) $createok=0; + else { $createok=1; break; } // For bypass the second test if the first is ok + } } else if (! empty($feature)) // This is for old permissions { @@ -267,8 +277,11 @@ function restrictedArea($user, $features, $objectid=0, $dbtablename='', $feature } else if (! empty($feature2)) // This should be used for future changes { - if (empty($user->rights->$feature->$feature2->supprimer) - && empty($user->rights->$feature->$feature2->delete)) $deleteok=0; + foreach($feature2 as $subfeature) + { + if (empty($user->rights->$feature->$subfeature->supprimer) && empty($user->rights->$feature->$subfeature->delete)) $deleteok=0; + else { $deleteok=1; break; } // For bypass the second test if the first is ok + } } else if (! empty($feature)) // This is for old permissions { diff --git a/htdocs/core/menus/standard/eldy.lib.php b/htdocs/core/menus/standard/eldy.lib.php index ed73b895280b2ca0f04e777215e805fd4276fb4a..5c72ae6f1d71a328fc5956ce83a4759188cb833e 100644 --- a/htdocs/core/menus/standard/eldy.lib.php +++ b/htdocs/core/menus/standard/eldy.lib.php @@ -40,8 +40,8 @@ function print_eldy_menu($db,$atarget,$type_user,&$tabMenu,&$menu,$noout=0) { global $user,$conf,$langs,$dolibarr_main_db_name; - $mainmenu=$_SESSION["mainmenu"]; - $leftmenu=$_SESSION["leftmenu"]; + $mainmenu=(empty($_SESSION["mainmenu"])?'':$_SESSION["mainmenu"]); + $leftmenu=(empty($_SESSION["leftmenu"])?'':$_SESSION["leftmenu"]); $id='mainmenu'; $listofmodulesforexternal=explode(',',$conf->global->MAIN_MODULES_FOR_EXTERNAL); diff --git a/htdocs/core/modules/modAgenda.class.php b/htdocs/core/modules/modAgenda.class.php index 89c92a14c69802cd65517522e503f767abb87d3b..902320a273355d3858e186b494ce98296b619e4e 100644 --- a/htdocs/core/modules/modAgenda.class.php +++ b/htdocs/core/modules/modAgenda.class.php @@ -43,6 +43,8 @@ class modAgenda extends DolibarrModules */ function __construct($db) { + global $conf; + $this->db = $db; $this->numero = 2400; diff --git a/htdocs/main.inc.php b/htdocs/main.inc.php index bf09cdf80c29d5f748e8020f1b9807660721bfe7..965b6c747b2c49ffb386634b0e1b02e2fc9b63ed 100644 --- a/htdocs/main.inc.php +++ b/htdocs/main.inc.php @@ -297,7 +297,11 @@ if (! empty($_SESSION["disablemodules"])) $disabled_modules=explode(',',$_SESSION["disablemodules"]); foreach($disabled_modules as $module) { - if ($module) $conf->$module->enabled=false; + if ($module) + { + if (empty($conf->$module)) $conf->$module=new stdClass(); + $conf->$module->enabled=false; + } } } diff --git a/htdocs/projet/class/project.class.php b/htdocs/projet/class/project.class.php index deae61c4a2a3798ce97ac02398326198c78a1119..3dd0910f7f0057808790ad61afaf5ca071022bfd 100644 --- a/htdocs/projet/class/project.class.php +++ b/htdocs/projet/class/project.class.php @@ -833,11 +833,11 @@ class Project extends CommonObject { // To verify role of users $userAccess = 0; - if (($mode == 'read' && $user->rights->projet->all->lire) || ($mode == 'write' && $user->rights->projet->all->creer) || ($mode == 'delete' && $user->rights->projet->all->supprimer)) + if (($mode == 'read' && ! empty($user->rights->projet->all->lire)) || ($mode == 'write' && ! empty($user->rights->projet->all->creer)) || ($mode == 'delete' && ! empty($user->rights->projet->all->supprimer))) { $userAccess = 1; } - else if ($this->public && (($mode == 'read' && $user->rights->projet->lire) || ($mode == 'write' && $user->rights->projet->creer) || ($mode == 'delete' && $user->rights->projet->supprimer))) + else if ($this->public && (($mode == 'read' && ! empty($user->rights->projet->lire)) || ($mode == 'write' && ! empty($user->rights->projet->creer)) || ($mode == 'delete' && ! empty($user->rights->projet->supprimer)))) { $userAccess = 1; } diff --git a/htdocs/projet/index.php b/htdocs/projet/index.php index 89aed92b99dea27f0bc54afcaca1d590d50c440b..0cd8fd9ca6431ba511302157b65d1405cf8b0a28 100644 --- a/htdocs/projet/index.php +++ b/htdocs/projet/index.php @@ -31,7 +31,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/project.lib.php'; $langs->load("projects"); $langs->load("companies"); -$mine = $_REQUEST['mode']=='mine' ? 1 : 0; +$mine = GETPOST('mode')=='mine' ? 1 : 0; // Security check $socid=0; @@ -49,7 +49,7 @@ $sortorder = GETPOST("sortorder",'alpha'); $socstatic=new Societe($db); $projectstatic=new Project($db); -$projectsListId = $projectstatic->getProjectsAuthorizedForUser($user,($mine?$mine:($user->rights->projet->all->lire?2:0)),1); +$projectsListId = $projectstatic->getProjectsAuthorizedForUser($user,($mine?$mine:(empty($user->rights->projet->all->lire)?0:2)),1); //var_dump($projectsListId); @@ -64,7 +64,7 @@ print_fiche_titre($text); if ($mine) print $langs->trans("MyProjectsDesc").'<br><br>'; else { - if ($user->rights->projet->all->lire && ! $socid) print $langs->trans("ProjectsDesc").'<br><br>'; + if (! empty($user->rights->projet->all->lire) && ! $socid) print $langs->trans("ProjectsDesc").'<br><br>'; else print $langs->trans("ProjectsPublicDesc").'<br><br>'; } @@ -90,7 +90,7 @@ $sql.= ", s.nom, s.rowid as socid"; $sql.= " FROM ".MAIN_DB_PREFIX."projet as p"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s on p.fk_soc = s.rowid"; $sql.= " WHERE p.entity = ".$conf->entity; -if ($mine || ! $user->rights->projet->all->lire) $sql.= " AND p.rowid IN (".$projectsListId.")"; +if ($mine || empty($user->rights->projet->all->lire)) $sql.= " AND p.rowid IN (".$projectsListId.")"; if ($socid) $sql.= " AND (p.fk_soc IS NULL OR p.fk_soc = 0 OR p.fk_soc = ".$socid.")"; $sql.= " GROUP BY s.nom, s.rowid"; diff --git a/htdocs/public/demo/index.php b/htdocs/public/demo/index.php index 1c03c17c5b5e03549cf229426dc8d763ec8f67ff..f4acea385ea22bebad9d1766408af48bf058293a 100644 --- a/htdocs/public/demo/index.php +++ b/htdocs/public/demo/index.php @@ -38,48 +38,55 @@ global $dolibarr_main_demo; if (empty($dolibarr_main_demo)) accessforbidden('Parameter dolibarr_main_demo must be defined in conf file with value "default login,default pass" to enable the demo entry page',1,1,1); // Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array -$hookmanager->initHooks(array('demo')); - -$demoprofiles=array( - array('default'=>'1', 'key'=>'profdemoservonly','label'=>'DemoCompanyServiceOnly', - 'disablemodules'=>'adherent,barcode,boutique,cashdesk,categorie,don,expedition,externalsite,mailmanspip,margin,prelevement,product,stock', - 'icon'=>DOL_URL_ROOT.'/public/demo/dolibarr_screenshot8.png'), - array('default'=>'-1','key'=>'profdemoshopwithdesk','label'=>'DemoCompanyShopWithCashDesk', - 'disablemodules'=>'adherent,boutique,categorie,don,externalsite,ficheinter,mailmanspip,prelevement,product,stock', - 'icon'=>DOL_URL_ROOT.'/public/demo/dolibarr_screenshot2.png'), - array('default'=>'0', 'key'=>'profdemoprodstock','label'=>'DemoCompanyProductAndStocks', - 'disablemodules'=>'adherent,boutique,contrat,categorie,don,externalsite,ficheinter,mailmanspip,prelevement,service', - 'icon'=>DOL_URL_ROOT.'/public/demo/dolibarr_screenshot2.png'), - array('default'=>'0', 'key'=>'profdemoall','label'=>'DemoCompanyAll', - 'disablemodules'=>'adherent,boutique,don,externalsite,mailmanspip', - 'icon'=>DOL_URL_ROOT.'/public/demo/dolibarr_screenshot9.png'), - array('default'=>'-1', 'key'=>'profdemofun','label'=>'DemoFundation', - 'disablemodules'=>'banque,barcode,boutique,cashdesk,commande,commercial,compta,comptabilite,contrat,expedition,externalsite,facture,ficheinter,fournisseur,mailmanspip,margin,prelevement,product,projet,propal,propale,service,societe,stock,tax', - 'icon'=>DOL_URL_ROOT.'/public/demo/dolibarr_screenshot6.png'), - array('default'=>'0', 'key'=>'profdemofun2','label'=>'DemoFundation2', - 'disablemodules'=>'barcode,boutique,cashdesk,commande,commercial,compta,comptabilite,contrat,expedition,externalsite,facture,ficheinter,fournisseur,mailmanspip,margin,prelevement,product,projet,propal,propale,service,societe,stock,tax', - 'icon'=>DOL_URL_ROOT.'/public/demo/dolibarr_screenshot6.png') -); +$res=$hookmanager->initHooks(array('demo')); +$demoprofiles=array(); +$alwayscheckedmodules=array(); +$alwaysuncheckedmodules=array(); +$alwayshiddencheckedmodules=array(); +$alwayshiddenuncheckedmodules=array(); $tmpaction = 'view'; $parameters=array(); $object=new stdClass(); $reshook=$hookmanager->executeHooks('addDemoProfile', $parameters, $object, $tmpaction); // Note that $action and $object may have been modified by some hooks $error=$hookmanager->error; $errors=$hookmanager->errors; - -// Visible -$alwayscheckedmodules=array('barcode','bookmark','externalrss','fckeditor','geoipmaxmind','gravatar','memcached','syslog','user','webservices'); // Technical module we always want -$alwaysuncheckedmodules=array('paybox','paypal','google','scanner','workflow'); // Module we never want -// Not visible -$alwayshiddencheckedmodules=array('accounting','barcode','bookmark','clicktodial','comptabilite','document','domain','externalrss','externalsite','fckeditor','geoipmaxmind','gravatar','label','ldap', - 'mailmanspip','notification','syslog','user','webservices', - // Extended modules - 'memcached','numberwords','zipautofillfr'); -$alwayshiddenuncheckedmodules=array('boutique','ftp', - // Extended modules - 'awstats','bittorrent','bootstrap','cabinetmed','cmcic','concatpdf','customfield','dolicloud','filemanager','lightbox','mantis','monitoring','moretemplates','multicompany','nltechno','numberingpack','openstreetmap', - 'ovh','phenix','phpsysinfo','pibarcode','postnuke','selectbank','skincoloreditor','submiteverywhere','survey','thomsonphonebook','topten','tvacerfa','voyage','webcalendar','webmail'); +if (empty($reshook)) +{ + $demoprofiles=array( + array('default'=>'1', 'key'=>'profdemoservonly','label'=>'DemoCompanyServiceOnly', + 'disablemodules'=>'adherent,barcode,boutique,cashdesk,categorie,don,expedition,externalsite,mailmanspip,margin,prelevement,product,stock', + 'icon'=>DOL_URL_ROOT.'/public/demo/dolibarr_screenshot8.png'), + array('default'=>'-1','key'=>'profdemoshopwithdesk','label'=>'DemoCompanyShopWithCashDesk', + 'disablemodules'=>'adherent,boutique,categorie,don,externalsite,ficheinter,mailmanspip,prelevement,product,stock', + 'icon'=>DOL_URL_ROOT.'/public/demo/dolibarr_screenshot2.png'), + array('default'=>'0', 'key'=>'profdemoprodstock','label'=>'DemoCompanyProductAndStocks', + 'disablemodules'=>'adherent,boutique,contrat,categorie,don,externalsite,ficheinter,mailmanspip,prelevement,service', + 'icon'=>DOL_URL_ROOT.'/public/demo/dolibarr_screenshot2.png'), + array('default'=>'0', 'key'=>'profdemoall','label'=>'DemoCompanyAll', + 'disablemodules'=>'adherent,boutique,don,externalsite,mailmanspip', + 'icon'=>DOL_URL_ROOT.'/public/demo/dolibarr_screenshot9.png'), + array('default'=>'-1', 'key'=>'profdemofun','label'=>'DemoFundation', + 'disablemodules'=>'banque,barcode,boutique,cashdesk,commande,commercial,compta,comptabilite,contrat,expedition,externalsite,facture,ficheinter,fournisseur,mailmanspip,margin,prelevement,product,projet,propal,propale,service,societe,stock,tax', + 'icon'=>DOL_URL_ROOT.'/public/demo/dolibarr_screenshot6.png'), + array('default'=>'0', 'key'=>'profdemofun2','label'=>'DemoFundation2', + 'disablemodules'=>'barcode,boutique,cashdesk,commande,commercial,compta,comptabilite,contrat,expedition,externalsite,facture,ficheinter,fournisseur,mailmanspip,margin,prelevement,product,projet,propal,propale,service,societe,stock,tax', + 'icon'=>DOL_URL_ROOT.'/public/demo/dolibarr_screenshot6.png') + ); + + // Visible + $alwayscheckedmodules=array('barcode','bookmark','externalrss','fckeditor','geoipmaxmind','gravatar','memcached','syslog','user','webservices'); // Technical module we always want + $alwaysuncheckedmodules=array('paybox','paypal','google','scanner','workflow'); // Module we never want + // Not visible + $alwayshiddencheckedmodules=array('accounting','barcode','bookmark','clicktodial','comptabilite','document','domain','externalrss','externalsite','fckeditor','geoipmaxmind','gravatar','label','ldap', + 'mailmanspip','notification','syslog','user','webservices', + // Extended modules + 'memcached','numberwords','zipautofillfr'); + $alwayshiddenuncheckedmodules=array('boutique','ftp', + // Extended modules + 'awstats','bittorrent','bootstrap','cabinetmed','cmcic','concatpdf','customfield','dolicloud','filemanager','lightbox','mantis','monitoring','moretemplates','multicompany','nltechno','numberingpack','openstreetmap', + 'ovh','phenix','phpsysinfo','pibarcode','postnuke','selectbank','skincoloreditor','submiteverywhere','survey','thomsonphonebook','topten','tvacerfa','voyage','webcalendar','webmail'); +} // Search modules $dirlist=$conf->file->dol_document_root; @@ -151,8 +158,8 @@ foreach ($modulesdir as $dir) // We discard modules according to features level (PS: if module is activated we always show it) $const_name = 'MAIN_MODULE_'.strtoupper(preg_replace('/^mod/i','',get_class($objMod))); - if ($objMod->version == 'development' && $conf->global->MAIN_FEATURES_LEVEL < 2 && ! $conf->global->$const_name) $modulequalified=0; - if ($objMod->version == 'experimental' && $conf->global->MAIN_FEATURES_LEVEL < 1 && ! $conf->global->$const_name) $modulequalified=0; + if ($objMod->version == 'development' && $conf->global->MAIN_FEATURES_LEVEL < 2 && empty($conf->global->$const_name)) $modulequalified=0; + if ($objMod->version == 'experimental' && $conf->global->MAIN_FEATURES_LEVEL < 1 && empty($conf->global->$const_name)) $modulequalified=0; if ($modulequalified) { diff --git a/htdocs/societe/class/societe.class.php b/htdocs/societe/class/societe.class.php index d6fbe61dcd0d9a311041d963e8bb0df6f0aa46f8..0ea3253bdd1178c8da0646ec5813eb697fd8b358 100644 --- a/htdocs/societe/class/societe.class.php +++ b/htdocs/societe/class/societe.class.php @@ -2766,7 +2766,7 @@ class Societe extends CommonObject */ function getLibCustProspStatut() { - return $this->LibCustProspStatut($this->client,$mode); + return $this->LibCustProspStatut($this->client); } /** @@ -2787,4 +2787,4 @@ class Societe extends CommonObject } -} \ No newline at end of file +} diff --git a/htdocs/user/class/usergroup.class.php b/htdocs/user/class/usergroup.class.php index 69d7855b8d35ffd67e4ee9607e1b677cffe4fdbb..8da493de97ed2d6ad97c4285ffa35bf4418190cb 100644 --- a/htdocs/user/class/usergroup.class.php +++ b/htdocs/user/class/usergroup.class.php @@ -174,7 +174,7 @@ class UserGroup extends CommonObject } /** - * Return array of users id for group + * Return array of users id for group this->id (or all if this->id not defined) * * @param string $excludefilter Filter to exclude * @return array Array of users @@ -214,8 +214,10 @@ class UserGroup extends CommonObject $newuser->fetch($obj->rowid); $ret[$obj->rowid]=$newuser; } - - $ret[$obj->rowid]->usergroup_entity[]=$obj->usergroup_entity; + if (! empty($obj->usergroup_entity)) + { + $ret[$obj->rowid]->usergroup_entity[]=$obj->usergroup_entity; + } } $this->db->free($resql);