Add possibility to include login method in a module

This commit is contained in:
Regis Houssin 2010-08-24 09:52:06 +00:00
parent b116d1067b
commit 24aa5b6ff5
2 changed files with 79 additions and 8 deletions

View File

@ -57,7 +57,7 @@ class Conf
var $tabs_modules = array(); var $tabs_modules = array();
var $triggers_modules = array(); var $triggers_modules = array();
var $hooks_modules = array(); var $hooks_modules = array();
var $logins_modules = array(); var $login_method_modules = array();
var $need_smarty = array(); var $need_smarty = array();
var $modules = array(); var $modules = array();

View File

@ -93,6 +93,9 @@ class DolibarrModules
// Insert activation triggers // Insert activation triggers
if (! $err) $err+=$this->insert_triggers(); if (! $err) $err+=$this->insert_triggers();
// Insert activation login method
if (! $err) $err+=$this->insert_login_method();
// Insere les constantes associees au module dans llx_const // Insere les constantes associees au module dans llx_const
if (! $err) $err+=$this->insert_const(); if (! $err) $err+=$this->insert_const();
@ -188,6 +191,9 @@ class DolibarrModules
// Remove activation of module's triggers (MAIN_MODULE_MYMODULE_TRIGGERS in llx_const) // Remove activation of module's triggers (MAIN_MODULE_MYMODULE_TRIGGERS in llx_const)
if (! $err) $err+=$this->delete_triggers(); if (! $err) $err+=$this->delete_triggers();
// Remove activation of module's authentification method (MAIN_MODULE_MYMODULE_LOGIN_METHOD in llx_const)
if (! $err) $err+=$this->delete_login_method();
// Remove list of module's available boxes (entry in llx_boxes) // Remove list of module's available boxes (entry in llx_boxes)
if (! $err && $options != 'noboxes') $err+=$this->delete_boxes(); if (! $err && $options != 'noboxes') $err+=$this->delete_boxes();
@ -1265,5 +1271,70 @@ class DolibarrModules
return $err; return $err;
} }
/**
* \brief Insert activation login method from modules in llx_const
* \return int Number of errors (0 if ok)
*/
function insert_login_method()
{
global $conf;
$err=0;
if (! empty($this->login_method))
{
$sql = "INSERT INTO ".MAIN_DB_PREFIX."const (";
$sql.= "name";
$sql.= ", type";
$sql.= ", value";
$sql.= ", note";
$sql.= ", visible";
$sql.= ", entity";
$sql.= ")";
$sql.= " VALUES (";
$sql.= $this->db->encrypt($this->const_name."_LOGIN_METHOD",1);
$sql.= ", 'chaine'";
$sql.= ", ".$this->db->encrypt($this->login_method,1);
$sql.= ", null";
$sql.= ", '0'";
$sql.= ", ".$conf->entity;
$sql.= ")";
dol_syslog("DolibarrModules::insert_login_method sql=".$sql);
$resql=$this->db->query($sql);
if (! $resql)
{
$this->error=$this->db->lasterror();
dol_syslog("DolibarrModules::insert_login_method ".$this->error);
}
}
return $err;
}
/**
* \brief Remove activation login method from modules in llx_const
* \return int Nombre d'erreurs (0 si ok)
*/
function delete_login_method()
{
global $conf;
$err=0;
$sql = "DELETE FROM ".MAIN_DB_PREFIX."const";
$sql.= " WHERE ".$this->db->decrypt('name')." LIKE '".$this->const_name."_LOGIN_METHOD'";
$sql.= " AND entity = ".$conf->entity;
dol_syslog("DolibarrModules::delete_login_method sql=".$sql);
if (! $this->db->query($sql))
{
$this->error=$this->db->lasterror();
dol_syslog("DolibarrModules::delete_login_method ".$this->error, LOG_ERR);
$err++;
}
return $err;
}
} }
?> ?>