1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164
|
<?php
class model_rightsManager extends abstract_model{
protected $sClassRow='row_rightsManager';
protected $sTable='DROITS';
protected $sConfig='firebirdExple';
protected $tId=array('DR_PKEY');
public static function getInstance(){
return self::_getInstance(__CLASS__);
}
public function findById($uId){
return $this->findOne('SELECT * FROM '.$this->sTable.' WHERE DR_PKEY=?',$uId );
}
public function findAll(){
return $this->findMany('
SELECT VERBES.VRB_NAME as ACTIONNAME , ELEMENTS.ELE_NAME as ITEMNAME
, GROUPES.GRP_NAME as GROUPNAME
, DROITS.DR_PKEY
FROM DROITS
INNER JOIN VERBES
ON VERBES.VRB_PKEY=DROITS.FKVERBES
INNER JOIN ELEMENTS
ON ELEMENTS.ELE_PKEY=DROITS.FKELEMENTS
INNER JOIN GROUPES
ON GROUPES.GRP_PKEY=DROITS.FKGROUPES
');
}
public function findListByGroup($group_id){
return $this->findManySimple('
SELECT
VERBES.VRB_NAME as ACTIONNAME , ELEMENTS.ELE_NAME as ITEMNAME
FROM DROITS
INNER JOIN VERBES
ON VERBES.VRB_PKEY=DROITS.FKVERBES
INNER JOIN ELEMENTS
ON ELEMENTS.ELE_PKEY=DROITS.FKELEMENTS
WHERE DROITS.FKGROUPES=?',$group_id);
}
public function insertGroup($sName){
$this->execute('INSERT INTO GROUPES (GRP_NAME) VALUES(?)',$sName);
}
public function insertAction($sName){
$this->execute('INSERT INTO VERBES (VRB_NAME) VALUES(?)',$sName);
}
public function insertItem($sName){
$this->execute('INSERT INTO ELEMENTS (ELE_NAME) VALUES(?)',$sName);
}
public function findGroupByName($sName){
return $this->findOneSimple('SELECT GRP_PKEY as ID FROM GROUPES WHERE GRP_NAME=?',$sName);
}
public function findActionByName($sName){
return $this->findOneSimple('SELECT VRB_PKEY as ID FROM VERBES WHERE VRB_NAME=?',$sName);
}
public function findItemByName($sName){
return $this->findOneSimple('SELECT ELE_PKEY as ID FROM ELEMENTS WHERE ELE_NAME=?',$sName);
}
public function findSelectGroup(){
$tItem=$this->findManySimple('SELECT GRP_PKEY,GRP_NAME FROM GROUPES');
$tSelect=array();
if($tItem){
foreach($tItem as $oItem){
$tSelect[ $oItem->GRP_PKEY ]=$oItem->GRP_NAME;
}
}
return $tSelect;
}
public function findSelectAction(){
$tItem=$this->findManySimple('SELECT VRB_PKEY,VRB_NAME FROM VERBES');
$tSelect=array();
if($tItem){
foreach($tItem as $oItem){
$tSelect[ $oItem->VRB_PKEY ]=$oItem->VRB_NAME;
}
}
return $tSelect;
}
public function findSelectItem(){
$tItem=$this->findManySimple('SELECT ELE_PKEY,ELE_NAME FROM ELEMENTS');
$tSelect=array();
if($tItem){
foreach($tItem as $oItem){
$tSelect[ $oItem->ELE_PKEY ]=$oItem->ELE_NAME;
}
}
return $tSelect;
}
public function findListUser(){
return $this->findManySimple('SELECT UTI_PKEY,UTI_LOGIN,FKGROUPES FROM UTILISATEURS');
}
public function findUserById($user_id){
return $this->findOneSimple('SELECT UTI_PKEY,UTI_LOGIN,FKGROUPES FROM UTILISATEURS WHERE UTI_PKEY=?',$user_id);
}
public function updateUserGroup($user_id,$group_id){
$this->execute('UPDATE UTILISATEURS SET FKGROUPES=? WHERE UTI_PKEY=?',$user_id,$group_id);
}
public function loadForUser($oUser){
//on purge
_root::getACL()->purge();
$tPermission=$this->findListByGroup($oUser->FKGROUPES);
if($tPermission){
foreach($tPermission as $oPermission){
_root::getACL()->allow($oPermission->ACTIONNAME,$oPermission->ITEMNAME);
//_root::getACL()->allow($oPermission->actionName,$oPermission->itemName);
}
}
}
}
class row_rightsManager extends abstract_row{
protected $sClassModel='model_rightsManager';
/*exemple jointure
public function findAuteur(){
return model_auteur::getInstance()->findById($this->auteur_id);
}
*/
/*exemple test validation*/
private function getCheck(){
$oPluginValid=new plugin_valid($this->getTab());
/* renseigner vos check ici
$oPluginValid->isEqual('champ','valeurB','Le champ n\est pas égal à '.$valeurB);
$oPluginValid->isNotEqual('champ','valeurB','Le champ est égal à '.$valeurB);
$oPluginValid->isUpperThan('champ','valeurB','Le champ n\est pas supé à '.$valeurB);
$oPluginValid->isUpperOrEqualThan('champ','valeurB','Le champ n\est pas supé ou égal à '.$valeurB);
$oPluginValid->isLowerThan('champ','valeurB','Le champ n\est pas inférieur à '.$valeurB);
$oPluginValid->isLowerOrEqualThan('champ','valeurB','Le champ n\est pas inférieur ou égal à '.$valeurB);
$oPluginValid->isEmpty('champ','Le champ n\'est pas vide');
$oPluginValid->isNotEmpty('champ','Le champ ne doit pas être vide');
$oPluginValid->isEmailValid('champ','L\email est invalide');
$oPluginValid->matchExpression('champ','/[0-9]/','Le champ n\'est pas au bon format');
$oPluginValid->notMatchExpression('champ','/[a-zA-Z]/','Le champ ne doit pas être a ce format');
*/
return $oPluginValid;
}
public function isValid(){
return $this->getCheck()->isValid();
}
public function getListError(){
return $this->getCheck()->getListError();
}
public function save(){
if(!$this->isValid()){
return false;
}
parent::save();
return true;
}
} |
Partager