2010-12-02 23:34:41 +00:00
< ? php
2011-01-18 09:10:20 +00:00
/**
* Roles . php
2011-01-27 15:31:33 +00:00
* @ package rbac - classes - model
2012-07-19 11:08:49 -04:00
*
2011-01-18 09:10:20 +00:00
* ProcessMaker Open Source Edition
2011-01-27 15:31:33 +00:00
* Copyright ( C ) 2004 - 2011 Colosa Inc .
2012-07-19 11:08:49 -04:00
*
2011-01-18 09:10:20 +00:00
* This program is free software : you can redistribute it and / or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation , either version 3 of the
* License , or ( at your option ) any later version .
*
* This program 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 Affero General Public License for more details .
2012-07-19 11:08:49 -04:00
*
2011-01-18 09:10:20 +00:00
* You should have received a copy of the GNU Affero General Public License
* along with this program . If not , see < http :// www . gnu . org / licenses />.
2012-07-19 11:08:49 -04:00
*
* For more information , contact Colosa Inc , 2566 Le Jeune Rd . ,
2011-01-18 09:10:20 +00:00
* Coral Gables , FL , 33134 , USA , or email info @ colosa . com .
2012-07-19 11:08:49 -04:00
*
2010-12-02 23:34:41 +00:00
*/
2011-01-27 15:31:33 +00:00
/**
* @ access public
*/
2010-12-02 23:34:41 +00:00
require_once 'classes/model/Permissions.php' ;
require_once 'classes/model/Systems.php' ;
require_once 'classes/model/RolesPermissions.php' ;
require_once 'classes/model/om/BaseRoles.php' ;
require_once 'classes/model/om/BaseRbacUsers.php' ;
require_once 'classes/model/om/BaseUsersRoles.php' ;
require_once 'classes/model/Content.php' ;
2011-01-18 09:10:20 +00:00
/**
* Skeleton subclass for representing a row from the 'ROLES' table .
*
*
*
* You should add additional methods to this class to meet the
* application requirements . This class will only be generated as
* long as it does not already exist in the output directory .
*
* @ package rbac - classes - model
2010-12-02 23:34:41 +00:00
*/
class Roles extends BaseRoles {
2012-07-19 11:08:49 -04:00
2010-12-02 23:34:41 +00:00
public $rol_name ;
2011-01-27 15:31:33 +00:00
/**
* Function load
* access public
*/
2010-12-02 23:34:41 +00:00
public function load ( $Uid ) {
try {
$oRow = RolesPeer :: retrieveByPK ( $Uid );
if ( ! is_null ( $oRow )) {
$aFields = $oRow -> toArray ( BasePeer :: TYPE_FIELDNAME );
$this -> fromArray ( $aFields , BasePeer :: TYPE_FIELDNAME );
$this -> setNew ( false );
2012-07-19 11:08:49 -04:00
2010-12-02 23:34:41 +00:00
$this -> getRolName ();
2014-09-05 09:56:47 -04:00
$aFields [ 'ROL_NAME' ] = ( $this -> rol_name != '' ? $this -> rol_name : $this -> getRolCode ());
2012-07-19 11:08:49 -04:00
2010-12-02 23:34:41 +00:00
return $aFields ;
} else {
throw ( new Exception ( " The ' $Uid ' row doesn't exist! " ));
}
} catch ( exception $oError ) {
throw ( $oError );
}
}
2012-07-19 11:08:49 -04:00
2010-12-02 23:34:41 +00:00
function loadByCode ( $sRolCode = '' ) {
try {
$oCriteria = new Criteria ( 'rbac' );
$oCriteria -> add ( RolesPeer :: ROL_CODE , $sRolCode );
$oDataset = RolesPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
$oDataset -> next ();
$aRow = $oDataset -> getRow ();
2014-09-05 09:56:47 -04:00
2013-03-21 13:38:31 -04:00
$roles = new Roles ();
$roles -> load ( $aRow [ 'ROL_UID' ]);
$aRow [ 'ROL_NAME' ] = $roles -> getRolName ();
2014-09-05 09:56:47 -04:00
if ( $aRow [ 'ROL_NAME' ] == '' ) {
$aRow [ 'ROL_NAME' ] = $roles -> getRolCode ();
}
2010-12-02 23:34:41 +00:00
if ( is_array ( $aRow )) {
return $aRow ;
} else {
throw ( new Exception ( " The role ' $sRolCode ' doesn \ 't exist! " ));
}
} catch ( exception $oError ) {
throw ( $oError );
}
}
2012-07-19 11:08:49 -04:00
2011-01-21 22:48:35 +00:00
function listAllRoles ( $systemCode = 'PROCESSMAKER' , $filter = '' ) {
2010-12-02 23:34:41 +00:00
try {
2012-07-19 11:08:49 -04:00
2010-12-02 23:34:41 +00:00
$oCriteria = new Criteria ( 'rbac' );
$oCriteria -> addSelectColumn ( RolesPeer :: ROL_UID );
$oCriteria -> addSelectColumn ( RolesPeer :: ROL_PARENT );
$oCriteria -> addSelectColumn ( RolesPeer :: ROL_SYSTEM );
$oCriteria -> addSelectColumn ( SystemsPeer :: SYS_CODE );
$oCriteria -> addSelectColumn ( RolesPeer :: ROL_CODE );
$oCriteria -> addSelectColumn ( RolesPeer :: ROL_CREATE_DATE );
$oCriteria -> addSelectColumn ( RolesPeer :: ROL_UPDATE_DATE );
$oCriteria -> addSelectColumn ( RolesPeer :: ROL_STATUS );
$oCriteria -> add ( RolesPeer :: ROL_UID , '' , Criteria :: NOT_EQUAL );
$oCriteria -> add ( SystemsPeer :: SYS_CODE , $systemCode );
$oCriteria -> add ( RolesPeer :: ROL_CREATE_DATE , '' , Criteria :: NOT_EQUAL );
$oCriteria -> add ( RolesPeer :: ROL_UPDATE_DATE , '' , Criteria :: NOT_EQUAL );
2011-01-21 22:48:35 +00:00
//Added by QENNIX Jan 21th, 2011
if ( $filter != '' ){
2012-07-19 11:08:49 -04:00
$oCriteria -> add ( RolesPeer :: ROL_CODE , '%' . $filter . '%' , Criteria :: LIKE );
2011-01-21 22:48:35 +00:00
}
2010-12-02 23:34:41 +00:00
$oCriteria -> addJoin ( RolesPeer :: ROL_SYSTEM , SystemsPeer :: SYS_UID );
2012-07-19 11:08:49 -04:00
2010-12-02 23:34:41 +00:00
return $oCriteria ;
2012-07-19 11:08:49 -04:00
2010-12-02 23:34:41 +00:00
} catch ( exception $oError ) {
throw ( new Exception ( " Class ROLES::FATAL ERROR. Criteria with rbac Can't initialized " ));
}
}
2012-07-19 11:08:49 -04:00
//Added by QENNIX
2011-02-09 16:28:46 +00:00
function getAllRolesFilter ( $start , $limit , $filter = '' ) {
//echo $start.'<<<<'.$limit;
2011-01-21 22:48:35 +00:00
$systemCode = 'PROCESSMAKER' ;
2011-02-09 16:28:46 +00:00
$oCriteria2 = new Criteria ( 'rbac' );
$result = Array ();
2012-07-19 11:08:49 -04:00
2011-02-09 16:28:46 +00:00
$oCriteria2 -> addSelectColumn ( 'COUNT(*) AS CNT' );
$oCriteria2 -> add ( RolesPeer :: ROL_UID , '' , Criteria :: NOT_EQUAL );
2013-04-11 09:51:39 -04:00
$oCriteria2 -> add ( SystemsPeer :: SYS_CODE , $systemCode );
$oCriteria2 -> add ( RolesPeer :: ROL_CREATE_DATE , '' , Criteria :: NOT_EQUAL );
$oCriteria2 -> add ( RolesPeer :: ROL_UPDATE_DATE , '' , Criteria :: NOT_EQUAL );
$oCriteria2 -> addJoin ( RolesPeer :: ROL_SYSTEM , SystemsPeer :: SYS_UID );
if ( $filter != '' ) {
$oCriteria2 -> add ( RolesPeer :: ROL_CODE , '%' . $filter . '%' , Criteria :: LIKE );
}
$result [ 'COUNTER' ] = $oCriteria2 ;
$oCriteria = new Criteria ( 'rbac' );
$oCriteria -> clear ();
$oCriteria -> addSelectColumn ( RolesPeer :: ROL_UID );
$oCriteria -> addSelectColumn ( RolesPeer :: ROL_PARENT );
$oCriteria -> addSelectColumn ( RolesPeer :: ROL_SYSTEM );
$oCriteria -> addSelectColumn ( SystemsPeer :: SYS_CODE );
$oCriteria -> addSelectColumn ( RolesPeer :: ROL_CODE );
$oCriteria -> addSelectColumn ( RolesPeer :: ROL_CREATE_DATE );
$oCriteria -> addSelectColumn ( RolesPeer :: ROL_UPDATE_DATE );
$oCriteria -> addSelectColumn ( RolesPeer :: ROL_STATUS );
$oCriteria -> add ( RolesPeer :: ROL_UID , '' , Criteria :: NOT_EQUAL );
$oCriteria -> add ( SystemsPeer :: SYS_CODE , $systemCode );
$oCriteria -> add ( RolesPeer :: ROL_CREATE_DATE , '' , Criteria :: NOT_EQUAL );
$oCriteria -> add ( RolesPeer :: ROL_UPDATE_DATE , '' , Criteria :: NOT_EQUAL );
$oCriteria -> addJoin ( RolesPeer :: ROL_SYSTEM , SystemsPeer :: SYS_UID );
2014-09-05 09:56:47 -04:00
2013-04-11 09:51:39 -04:00
if ( $filter != '' ) {
$oCriteria -> add ( RolesPeer :: ROL_CODE , '%' . $filter . '%' , Criteria :: LIKE );
}
2014-09-05 09:56:47 -04:00
2013-04-11 09:51:39 -04:00
$oCriteria -> setOffset ( $start );
$oCriteria -> setLimit ( $limit );
2014-09-05 09:56:47 -04:00
2013-04-11 09:51:39 -04:00
$result [ 'LIST' ] = $oCriteria ;
2014-09-05 09:56:47 -04:00
2013-04-11 09:51:39 -04:00
return $result ;
2011-02-09 16:28:46 +00:00
}
2012-07-19 11:08:49 -04:00
2010-12-02 23:34:41 +00:00
function getAllRoles ( $systemCode = 'PROCESSMAKER' ) {
$c = $this -> listAllRoles ( $systemCode );
2013-04-11 09:51:39 -04:00
$rs = RolesPeer :: DoSelectRs ( $c );
2010-12-02 23:34:41 +00:00
$rs -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-07-19 11:08:49 -04:00
2010-12-02 23:34:41 +00:00
$aRows = Array ();
2013-04-11 09:51:39 -04:00
while ( $rs -> next ()) {
2010-12-02 23:34:41 +00:00
$row = $rs -> getRow ();
$o = new Roles ();
$o -> load ( $row [ 'ROL_UID' ]);
$row [ 'ROL_NAME' ] = $o -> getRolName ();
2014-09-05 09:56:47 -04:00
if ( $row [ 'ROL_NAME' ] == '' ) {
$row [ 'ROL_NAME' ] = $o -> getRolCode ();
}
2010-12-02 23:34:41 +00:00
$aRows [] = $row ;
}
return $aRows ;
}
function listAllPermissions ( $systemCode = 'PROCESSMAKER' ) {
try {
$oCriteria = new Criteria ( 'rbac' );
$oCriteria -> addSelectColumn ( PermissionsPeer :: PER_UID );
$oCriteria -> addSelectColumn ( PermissionsPeer :: PER_CODE );
$oCriteria -> addSelectColumn ( PermissionsPeer :: PER_CREATE_DATE );
$oCriteria -> addSelectColumn ( PermissionsPeer :: PER_UPDATE_DATE );
$oCriteria -> addSelectColumn ( PermissionsPeer :: PER_STATUS );
$oCriteria -> add ( PermissionsPeer :: PER_CODE , substr ( $systemCode , 0 , 3 ) . '_%' , Criteria :: LIKE );
2012-07-19 11:08:49 -04:00
2010-12-02 23:34:41 +00:00
return $oCriteria ;
2012-07-19 11:08:49 -04:00
2010-12-02 23:34:41 +00:00
} catch ( exception $oError ) {
throw ( new Exception ( " Class ROLES::FATAL ERROR. Criteria with rbac Can't initialized " ));
}
}
2012-07-19 11:08:49 -04:00
2010-12-02 23:34:41 +00:00
function createRole ( $aData ) {
$con = Propel :: getConnection ( RolesPeer :: DATABASE_NAME );
try {
$con -> begin ();
$sRolCode = $aData [ 'ROL_CODE' ];
$sRolSystem = $aData [ 'ROL_SYSTEM' ];
$oCriteria = new Criteria ( 'rbac' );
$oCriteria -> add ( RolesPeer :: ROL_CODE , $sRolCode );
$oCriteria -> add ( RolesPeer :: ROL_SYSTEM , $sRolSystem );
$oDataset = RolesPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
$oDataset -> next ();
$aRow = $oDataset -> getRow ();
if ( is_array ( $aRow )) {
return $aRow ;
}
2012-07-19 11:08:49 -04:00
2010-12-02 23:34:41 +00:00
$rol_name = $aData [ 'ROL_NAME' ];
unset ( $aData [ 'ROL_NAME' ]);
2012-07-19 11:08:49 -04:00
2010-12-02 23:34:41 +00:00
$obj = new Roles ();
$obj -> fromArray ( $aData , BasePeer :: TYPE_FIELDNAME );
if ( $obj -> validate ()) {
$result = $obj -> save ();
$con -> commit ();
$obj -> setRolName ( $rol_name );
2014-10-10 12:19:34 -04:00
G :: auditLog ( " CreateRole " , " Role Name: " . $rol_name );
2010-12-02 23:34:41 +00:00
} else {
$e = new Exception ( " Failed Validation in class " . get_class ( $this ) . " . " );
$e -> aValidationFailures = $this -> getValidationFailures ();
throw ( $e );
}
return $result ;
} catch ( exception $e ) {
$con -> rollback ();
throw ( $e );
}
}
2012-07-19 11:08:49 -04:00
2010-12-02 23:34:41 +00:00
public function updateRole ( $fields ) {
$con = Propel :: getConnection ( RolesPeer :: DATABASE_NAME );
try {
$con -> begin ();
$this -> load ( $fields [ 'ROL_UID' ]);
$rol_name = $fields [ 'ROL_NAME' ];
unset ( $fields [ 'ROL_NAME' ]);
2012-07-19 11:08:49 -04:00
2010-12-02 23:34:41 +00:00
$this -> fromArray ( $fields , BasePeer :: TYPE_FIELDNAME );
if ( $this -> validate ()) {
$result = $this -> save ();
$con -> commit ();
$this -> setRolName ( $rol_name );
2014-10-10 12:19:34 -04:00
G :: auditLog ( " UpdateRole " , " Role Name: " . $rol_name . " Role ID: ( " . $fields [ 'ROL_UID' ] . " ) " );
2010-12-02 23:34:41 +00:00
return $result ;
} else {
$con -> rollback ();
throw ( new Exception ( " Failed Validation in class " . get_class ( $this ) . " . " ));
}
} catch ( exception $e ) {
$con -> rollback ();
throw ( $e );
}
}
2012-07-19 11:08:49 -04:00
2010-12-02 23:34:41 +00:00
function removeRole ( $ROL_UID ) {
$con = Propel :: getConnection ( RolesPeer :: DATABASE_NAME );
try {
$con -> begin ();
$this -> setRolUid ( $ROL_UID );
2014-10-07 15:58:46 -04:00
$rol_name = $this -> load ( $ROL_UID );
2010-12-02 23:34:41 +00:00
Content :: removeContent ( 'ROL_NAME' , '' , $this -> getRolUid ());
$result = $this -> delete ();
$con -> commit ();
2014-10-10 12:19:34 -04:00
G :: auditLog ( " DeleteRole " , " Role Name: " . $rol_name [ 'ROL_NAME' ] . " Role UID: ( " . $ROL_UID . " ) " );
2010-12-02 23:34:41 +00:00
return $result ;
} catch ( exception $e ) {
$con -> rollback ();
throw ( $e );
}
}
2012-07-19 11:08:49 -04:00
2010-12-02 23:34:41 +00:00
function verifyNewRole ( $code ) {
$code = trim ( $code );
$oCriteria = new Criteria ( 'rbac' );
$oCriteria -> addSelectColumn ( RolesPeer :: ROL_UID );
$oCriteria -> add ( RolesPeer :: ROL_CODE , $code );
$count = RolesPeer :: doCount ( $oCriteria );
2012-07-19 11:08:49 -04:00
2010-12-02 23:34:41 +00:00
if ( $count == 0 ) {
return true ;
} else {
return false ;
}
}
2012-07-19 11:08:49 -04:00
2010-12-02 23:34:41 +00:00
function loadById ( $ROL_UID ) {
2012-07-19 11:08:49 -04:00
2010-12-02 23:34:41 +00:00
$oCriteria = new Criteria ( 'rbac' );
$oCriteria -> addSelectColumn ( RolesPeer :: ROL_UID );
$oCriteria -> addSelectColumn ( RolesPeer :: ROL_PARENT );
$oCriteria -> addSelectColumn ( RolesPeer :: ROL_SYSTEM );
$oCriteria -> addSelectColumn ( RolesPeer :: ROL_CODE );
$oCriteria -> addSelectColumn ( RolesPeer :: ROL_CREATE_DATE );
$oCriteria -> addSelectColumn ( RolesPeer :: ROL_UPDATE_DATE );
$oCriteria -> addSelectColumn ( RolesPeer :: ROL_STATUS );
$oCriteria -> add ( RolesPeer :: ROL_UID , $ROL_UID );
2012-07-19 11:08:49 -04:00
2010-12-02 23:34:41 +00:00
$result = RolesPeer :: doSelectRS ( $oCriteria );
$result -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
$result -> next ();
2012-07-19 11:08:49 -04:00
2010-12-02 23:34:41 +00:00
$row = $result -> getRow ();
if ( is_array ( $row )) {
$o = RolesPeer :: retrieveByPK ( $row [ 'ROL_UID' ]);
$row [ 'ROL_NAME' ] = $o -> getRolName ();
2014-09-05 09:56:47 -04:00
if ( $row [ 'ROL_NAME' ] == '' ) {
$row [ 'ROL_NAME' ] = $o -> getRolCode ();
}
2010-12-02 23:34:41 +00:00
return $row ;
} else {
return null ;
}
}
2012-07-19 11:08:49 -04:00
2010-12-02 23:34:41 +00:00
function getRoleCode ( $ROL_UID ) {
$oCriteria = new Criteria ( 'rbac' );
$oCriteria -> addSelectColumn ( RolesPeer :: ROL_UID );
$oCriteria -> addSelectColumn ( RolesPeer :: ROL_CODE );
$oCriteria -> add ( RolesPeer :: ROL_UID , $ROL_UID );
2012-07-19 11:08:49 -04:00
2010-12-02 23:34:41 +00:00
$result = RolesPeer :: doSelectRS ( $oCriteria );
$result -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
$result -> next ();
$row = $result -> getRow ();
$ret = $row [ 'ROL_CODE' ];
2012-07-19 11:08:49 -04:00
2010-12-02 23:34:41 +00:00
return $ret ;
}
2012-07-19 11:08:49 -04:00
2011-02-09 16:28:46 +00:00
//Added by Enrique at Feb 9th, 2011
//Gets number of users by role
function getAllUsersByRole (){
$oCriteria = new Criteria ( 'rbac' );
$oCriteria -> addSelectColumn ( UsersRolesPeer :: ROL_UID );
$oCriteria -> addSelectColumn ( 'COUNT(*) AS CNT' );
2011-04-12 09:30:41 -04:00
$oCriteria -> addJoin ( RbacUsersPeer :: USR_UID , UsersRolesPeer :: USR_UID , Criteria :: INNER_JOIN );
2011-04-12 11:51:56 -04:00
$oCriteria -> add ( RbacUsersPeer :: USR_STATUS , 0 , Criteria :: NOT_EQUAL );
2011-02-09 16:28:46 +00:00
$oCriteria -> addGroupByColumn ( UsersRolesPeer :: ROL_UID );
$oDataset = UsersRolesPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
$aRoles = array ();
while ( $oDataset -> next ()){
$row = $oDataset -> getRow ();
$aRoles [ $row [ 'ROL_UID' ]] = $row [ 'CNT' ];
}
return $aRoles ;
}
2012-07-19 11:08:49 -04:00
2011-02-11 14:23:15 +00:00
//Added by Enrique at Feb 10th, 2011
//Gets number of users by department
function getAllUsersByDepartment (){
$oCriteria = new Criteria ( 'rbac' );
$oCriteria -> addSelectColumn ( UsersPeer :: DEP_UID );
$oCriteria -> addSelectColumn ( 'COUNT(*) AS CNT' );
2011-04-11 17:42:56 -04:00
$oCriteria -> add ( UsersPeer :: USR_STATUS , 'CLOSED' , Criteria :: NOT_EQUAL );
2011-02-11 14:23:15 +00:00
$oCriteria -> addGroupByColumn ( UsersPeer :: DEP_UID );
$oDataset = UsersPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
$aDepts = array ();
while ( $oDataset -> next ()){
$row = $oDataset -> getRow ();
$aDepts [ $row [ 'DEP_UID' ]] = $row [ 'CNT' ];
}
return $aDepts ;
}
2012-07-19 11:08:49 -04:00
2011-01-28 22:30:25 +00:00
function getRoleUsers ( $ROL_UID , $filter = '' ) {
2010-12-02 23:34:41 +00:00
try {
$criteria = new Criteria ();
$criteria -> addSelectColumn ( RolesPeer :: ROL_UID );
$criteria -> addSelectColumn ( RolesPeer :: ROL_PARENT );
$criteria -> addSelectColumn ( RolesPeer :: ROL_SYSTEM );
$criteria -> addSelectColumn ( RolesPeer :: ROL_CODE );
$criteria -> addSelectColumn ( RolesPeer :: ROL_CREATE_DATE );
$criteria -> addSelectColumn ( RolesPeer :: ROL_UPDATE_DATE );
$criteria -> addSelectColumn ( RolesPeer :: ROL_STATUS );
$criteria -> addSelectColumn ( RbacUsersPeer :: USR_UID );
$criteria -> addSelectColumn ( RbacUsersPeer :: USR_USERNAME );
$criteria -> addSelectColumn ( RbacUsersPeer :: USR_FIRSTNAME );
$criteria -> addSelectColumn ( RbacUsersPeer :: USR_LASTNAME );
$criteria -> add ( RolesPeer :: ROL_UID , " " , Criteria :: NOT_EQUAL );
$criteria -> add ( RolesPeer :: ROL_UID , $ROL_UID );
2012-07-19 11:08:49 -04:00
2011-04-12 11:51:56 -04:00
$criteria -> add ( RbacUsersPeer :: USR_STATUS , 0 , Criteria :: NOT_EQUAL );
2012-07-19 11:08:49 -04:00
2010-12-02 23:34:41 +00:00
$criteria -> addJoin ( RolesPeer :: ROL_UID , UsersRolesPeer :: ROL_UID );
$criteria -> addJoin ( UsersRolesPeer :: USR_UID , RbacUsersPeer :: USR_UID );
2012-07-19 11:08:49 -04:00
2011-01-28 22:30:25 +00:00
if ( $filter != '' ){
$criteria -> add (
$criteria -> getNewCriterion ( RbacUsersPeer :: USR_USERNAME , '%' . $filter . '%' , Criteria :: LIKE ) -> addOr (
$criteria -> getNewCriterion ( RbacUsersPeer :: USR_FIRSTNAME , '%' . $filter . '%' , Criteria :: LIKE ) -> addOr (
$criteria -> getNewCriterion ( RbacUsersPeer :: USR_LASTNAME , '%' . $filter . '%' , Criteria :: LIKE )))
);
}
2012-07-19 11:08:49 -04:00
2010-12-02 23:34:41 +00:00
$oDataset = RolesPeer :: doSelectRS ( $criteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
return $oDataset ;
2012-07-19 11:08:49 -04:00
2010-12-02 23:34:41 +00:00
} catch ( exception $e ) {
throw $e ;
}
}
2012-07-19 11:08:49 -04:00
2011-01-28 22:30:25 +00:00
function getAllUsers ( $ROL_UID , $filter = '' ) {
2010-12-02 23:34:41 +00:00
try {
$c = new Criteria ();
$c -> addSelectColumn ( RbacUsersPeer :: USR_UID );
$c -> add ( RolesPeer :: ROL_UID , $ROL_UID );
$c -> addJoin ( RolesPeer :: ROL_UID , UsersRolesPeer :: ROL_UID );
$c -> addJoin ( UsersRolesPeer :: USR_UID , RbacUsersPeer :: USR_UID );
2012-07-19 11:08:49 -04:00
2010-12-02 23:34:41 +00:00
$result = RolesPeer :: doSelectRS ( $c );
$result -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
$result -> next ();
2012-07-19 11:08:49 -04:00
2010-12-02 23:34:41 +00:00
$a = Array ();
while ( $row = $result -> getRow () ) {
$a [] = $row [ 'USR_UID' ];
$result -> next ();
}
2012-07-19 11:08:49 -04:00
2010-12-02 23:34:41 +00:00
$criteria = new Criteria ();
2012-07-19 11:08:49 -04:00
2010-12-02 23:34:41 +00:00
$criteria -> addSelectColumn ( RbacUsersPeer :: USR_UID );
$criteria -> addSelectColumn ( RbacUsersPeer :: USR_USERNAME );
$criteria -> addSelectColumn ( RbacUsersPeer :: USR_FIRSTNAME );
$criteria -> addSelectColumn ( RbacUsersPeer :: USR_LASTNAME );
$criteria -> add ( RbacUsersPeer :: USR_STATUS , 1 , Criteria :: EQUAL );
$criteria -> add ( RbacUsersPeer :: USR_UID , $a , Criteria :: NOT_IN );
2012-07-19 11:08:49 -04:00
2011-01-28 22:30:25 +00:00
if ( $filter != '' ){
$criteria -> add (
$criteria -> getNewCriterion ( RbacUsersPeer :: USR_USERNAME , '%' . $filter . '%' , Criteria :: LIKE ) -> addOr (
$criteria -> getNewCriterion ( RbacUsersPeer :: USR_FIRSTNAME , '%' . $filter . '%' , Criteria :: LIKE ) -> addOr (
$criteria -> getNewCriterion ( RbacUsersPeer :: USR_LASTNAME , '%' . $filter . '%' , Criteria :: LIKE )))
);
}
2012-07-19 11:08:49 -04:00
2010-12-02 23:34:41 +00:00
$oDataset = RbacUsersPeer :: doSelectRS ( $criteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
return $oDataset ;
} catch ( exception $e ) {
throw $e ;
}
}
2012-07-19 11:08:49 -04:00
2010-12-02 23:34:41 +00:00
function assignUserToRole ( $aData ) {
/*find the system uid for this role */
require_once 'classes/model/Users.php' ;
$c = new Criteria ();
$c -> add ( RolesPeer :: ROL_UID , $aData [ 'ROL_UID' ]);
$result = RolesPeer :: doSelectRS ( $c );
$result -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
$result -> next ();
$row = $result -> getRow ();
$sSystemId = $row [ 'ROL_SYSTEM' ];
2012-07-19 11:08:49 -04:00
2010-12-02 23:34:41 +00:00
//updating the role into users table
$oCriteria1 = new Criteria ( 'workflow' );
$oCriteria1 -> add ( UsersPeer :: USR_UID , $aData [ 'USR_UID' ], Criteria :: EQUAL );
$oCriteria2 = new Criteria ( 'workflow' );
$oCriteria2 -> add ( UsersPeer :: USR_ROLE , $row [ 'ROL_CODE' ]);
BasePeer :: doUpdate ( $oCriteria1 , $oCriteria2 , Propel :: getConnection ( 'workflow' ));
2012-07-19 11:08:49 -04:00
//delete roles for the same System
2010-12-02 23:34:41 +00:00
$c = new Criteria ();
$c -> addSelectColumn ( UsersRolesPeer :: USR_UID );
$c -> addSelectColumn ( RolesPeer :: ROL_UID );
$c -> addSelectColumn ( RolesPeer :: ROL_CODE );
$c -> addSelectColumn ( RolesPeer :: ROL_SYSTEM );
$c -> add ( UsersRolesPeer :: USR_UID , $aData [ 'USR_UID' ]);
$c -> add ( RolesPeer :: ROL_SYSTEM , $sSystemId );
$c -> addJoin ( RolesPeer :: ROL_UID , UsersRolesPeer :: ROL_UID );
$result = RolesPeer :: doSelectRS ( $c );
$result -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
$result -> next ();
2012-07-19 11:08:49 -04:00
2010-12-02 23:34:41 +00:00
while ( $row = $result -> getRow () ) {
$crit = new Criteria ();
$crit -> add ( UsersRolesPeer :: USR_UID , $row [ 'USR_UID' ]);
$crit -> add ( UsersRolesPeer :: ROL_UID , $row [ 'ROL_UID' ]);
UsersRolesPeer :: doDelete ( $crit );
$result -> next ();
}
2012-07-19 11:08:49 -04:00
//save the unique role for this system
2010-12-02 23:34:41 +00:00
$oUsersRoles = new UsersRoles ();
$oUsersRoles -> setUsrUid ( $aData [ 'USR_UID' ]);
$oUsersRoles -> setRolUid ( $aData [ 'ROL_UID' ]);
$oUsersRoles -> save ();
2012-07-19 11:08:49 -04:00
2014-10-07 15:58:46 -04:00
$rol = $this -> load ( $aData [ 'ROL_UID' ]);
$oUsersRbac = new RbacUsers ();
$user = $oUsersRbac -> load ( $aData [ 'USR_UID' ]);
G :: auditLog ( " AssignUsersToRole " , " Assign user " . $user [ 'USR_USERNAME' ] . " ( " . $aData [ 'USR_UID' ] . " ) to Role " . $rol [ 'ROL_NAME' ] . " ( " . $aData [ 'ROL_UID' ] . " ) " );
2010-12-02 23:34:41 +00:00
}
2012-07-19 11:08:49 -04:00
2010-12-02 23:34:41 +00:00
function deleteUserRole ( $ROL_UID , $USR_UID ) {
$crit = new Criteria ();
$crit -> add ( UsersRolesPeer :: USR_UID , $USR_UID );
2012-07-19 11:08:49 -04:00
2010-12-02 23:34:41 +00:00
if ( $ROL_UID != '%' ) {
$crit -> add ( UsersRolesPeer :: ROL_UID , $ROL_UID );
}
UsersRolesPeer :: doDelete ( $crit );
2014-10-07 15:58:46 -04:00
$rol = $this -> load ( $ROL_UID );
$oUsersRbac = new RbacUsers ();
$user = $oUsersRbac -> load ( $USR_UID );
G :: auditLog ( " DeleteUsersToRole " , " Delete user " . $user [ 'USR_USERNAME' ] . " ( " . $USR_UID . " ) to Role " . $rol [ 'ROL_NAME' ] . " ( " . $ROL_UID . " ) " );
2010-12-02 23:34:41 +00:00
}
2012-07-19 11:08:49 -04:00
function getRolePermissions ( $ROL_UID , $filter = '' , $status = null ) {
2010-12-02 23:34:41 +00:00
try {
$criteria = new Criteria ();
$criteria -> addSelectColumn ( RolesPeer :: ROL_UID );
$criteria -> addSelectColumn ( RolesPeer :: ROL_PARENT );
$criteria -> addSelectColumn ( RolesPeer :: ROL_SYSTEM );
$criteria -> addSelectColumn ( RolesPeer :: ROL_CODE );
$criteria -> addSelectColumn ( RolesPeer :: ROL_CREATE_DATE );
$criteria -> addSelectColumn ( RolesPeer :: ROL_UPDATE_DATE );
$criteria -> addSelectColumn ( RolesPeer :: ROL_STATUS );
$criteria -> addSelectColumn ( PermissionsPeer :: PER_UID );
$criteria -> addSelectColumn ( PermissionsPeer :: PER_CODE );
$criteria -> addSelectColumn ( PermissionsPeer :: PER_CREATE_DATE );
$criteria -> addSelectColumn ( PermissionsPeer :: PER_UPDATE_DATE );
$criteria -> addSelectColumn ( PermissionsPeer :: PER_STATUS );
$criteria -> add ( RolesPeer :: ROL_UID , " " , Criteria :: NOT_EQUAL );
$criteria -> add ( RolesPeer :: ROL_UID , $ROL_UID );
$criteria -> addJoin ( RolesPeer :: ROL_UID , RolesPermissionsPeer :: ROL_UID );
$criteria -> addJoin ( RolesPermissionsPeer :: PER_UID , PermissionsPeer :: PER_UID );
2012-07-19 11:08:49 -04:00
if ( $filter != '' ) {
2011-01-28 22:30:25 +00:00
$criteria -> add ( PermissionsPeer :: PER_CODE , '%' . $filter . '%' , Criteria :: LIKE );
}
2012-07-19 11:08:49 -04:00
if ( ! is_null ( $status ) && ( $status == 1 || $status == 0 )) {
$criteria -> add ( PermissionsPeer :: PER_STATUS , $status );
}
2010-12-02 23:34:41 +00:00
$oDataset = RolesPeer :: doSelectRS ( $criteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2013-04-11 09:51:39 -04:00
2010-12-02 23:34:41 +00:00
return $oDataset ;
2012-07-19 11:08:49 -04:00
2010-12-02 23:34:41 +00:00
} catch ( exception $e ) {
throw $e ;
}
}
2012-07-19 11:08:49 -04:00
function getAllPermissions ( $ROL_UID , $PER_SYSTEM = " " , $filter = '' , $status = null ) {
2010-12-02 23:34:41 +00:00
try {
$c = new Criteria ();
$c -> addSelectColumn ( PermissionsPeer :: PER_UID );
$c -> add ( RolesPeer :: ROL_UID , $ROL_UID );
$c -> addJoin ( RolesPeer :: ROL_UID , RolesPermissionsPeer :: ROL_UID );
$c -> addJoin ( RolesPermissionsPeer :: PER_UID , PermissionsPeer :: PER_UID );
2012-07-19 11:08:49 -04:00
2010-12-02 23:34:41 +00:00
$result = PermissionsPeer :: doSelectRS ( $c );
$result -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
$result -> next ();
2012-07-19 11:08:49 -04:00
2010-12-02 23:34:41 +00:00
$a = Array ();
while ( $row = $result -> getRow () ) {
$a [] = $row [ 'PER_UID' ];
$result -> next ();
}
2012-07-19 11:08:49 -04:00
2010-12-02 23:34:41 +00:00
$criteria = new Criteria ();
$criteria -> addSelectColumn ( PermissionsPeer :: PER_UID );
$criteria -> addSelectColumn ( PermissionsPeer :: PER_CODE );
$criteria -> addSelectColumn ( PermissionsPeer :: PER_CREATE_DATE );
$criteria -> addSelectColumn ( PermissionsPeer :: PER_UPDATE_DATE );
$criteria -> addSelectColumn ( PermissionsPeer :: PER_STATUS );
$criteria -> addSelectColumn ( PermissionsPeer :: PER_SYSTEM );
$criteria -> addSelectColumn ( SystemsPeer :: SYS_CODE );
$criteria -> add ( PermissionsPeer :: PER_UID , $a , Criteria :: NOT_IN );
if ( $PER_SYSTEM != " " ) {
$criteria -> add ( SystemsPeer :: SYS_CODE , $PER_SYSTEM );
}
$criteria -> addJoin ( PermissionsPeer :: PER_SYSTEM , SystemsPeer :: SYS_UID );
2012-07-19 11:08:49 -04:00
2011-01-28 22:30:25 +00:00
if ( $filter != '' ){
$criteria -> add ( PermissionsPeer :: PER_CODE , '%' . $filter . '%' , Criteria :: LIKE );
}
2012-07-19 11:08:49 -04:00
if ( ! is_null ( $status ) && ( $status == 1 || $status == 0 )) {
$criteria -> add ( PermissionsPeer :: PER_STATUS , $status );
}
2010-12-02 23:34:41 +00:00
$oDataset = PermissionsPeer :: doSelectRS ( $criteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
return $oDataset ;
} catch ( exception $e ) {
throw $e ;
}
}
2012-07-19 11:08:49 -04:00
2010-12-02 23:34:41 +00:00
function assignPermissionRole ( $sData ) {
$o = new RolesPermissions ();
$o -> setPerUid ( $sData [ 'PER_UID' ]);
$o -> setRolUid ( $sData [ 'ROL_UID' ]);
2014-01-30 11:27:15 -04:00
if ( isset ( $sData [ 'PER_NAME' ])) {
$o -> setPermissionName ( $sData [ 'PER_NAME' ]);
}
2014-10-07 15:58:46 -04:00
$permission = $o -> getPermissionName ( $sData [ 'PER_UID' ]);
$role = $this -> load ( $sData [ 'ROL_UID' ]);
2010-12-02 23:34:41 +00:00
$o -> save ();
2014-10-07 15:58:46 -04:00
G :: auditLog ( " AddPermissionToRole " , " Add Permission " . $permission . " ( " . $sData [ 'PER_UID' ] . " ) to Role " . $role [ 'ROL_NAME' ] . " ( " . $sData [ 'ROL_UID' ] . " ) " );
2010-12-02 23:34:41 +00:00
}
2012-07-19 11:08:49 -04:00
2010-12-02 23:34:41 +00:00
function deletePermissionRole ( $ROL_UID , $PER_UID ) {
$crit = new Criteria ();
$crit -> add ( RolesPermissionsPeer :: ROL_UID , $ROL_UID );
$crit -> add ( RolesPermissionsPeer :: PER_UID , $PER_UID );
RolesPermissionsPeer :: doDelete ( $crit );
2014-10-07 15:58:46 -04:00
$o = new RolesPermissions ();
$o -> setPerUid ( $PER_UID );
$permission = $o -> getPermissionName ( $PER_UID );
$role = $this -> load ( $ROL_UID );
2014-10-10 12:19:34 -04:00
G :: auditLog ( " DeletePermissionToRole " , " Delete Permission " . $permission . " ( " . $PER_UID . " ) from Role " . $role [ 'ROL_NAME' ] . " ( " . $ROL_UID . " ) " );
2010-12-02 23:34:41 +00:00
}
2012-07-19 11:08:49 -04:00
2010-12-02 23:34:41 +00:00
function numUsersWithRole ( $ROL_UID ) {
$criteria = new Criteria ();
$criteria -> addSelectColumn ( RbacUsersPeer :: USR_UID );
$criteria -> add ( RolesPeer :: ROL_UID , " " , Criteria :: NOT_EQUAL );
$criteria -> add ( RolesPeer :: ROL_UID , $ROL_UID );
$criteria -> addJoin ( RolesPeer :: ROL_UID , UsersRolesPeer :: ROL_UID );
$criteria -> addJoin ( UsersRolesPeer :: USR_UID , RbacUsersPeer :: USR_UID );
2012-07-19 11:08:49 -04:00
2010-12-02 23:34:41 +00:00
return RolesPeer :: doCount ( $criteria );
}
2012-07-19 11:08:49 -04:00
2010-12-02 23:34:41 +00:00
function verifyByCode ( $sRolCode = '' ) {
try {
$oCriteria = new Criteria ( 'rbac' );
$oCriteria -> add ( RolesPeer :: ROL_CODE , $sRolCode );
$oDataset = RolesPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
$oDataset -> next ();
$aRow = $oDataset -> getRow ();
if ( is_array ( $aRow )) {
return 1 ;
} else {
return 0 ;
}
} catch ( exception $oError ) {
throw ( $oError );
}
}
2012-07-19 11:08:49 -04:00
2010-12-02 23:34:41 +00:00
public function getRolName () {
if ( $this -> getRolUid () == '' ) {
throw ( new Exception ( " Error in getRolName, the ROL_UID can't be blank " ));
}
$lang = defined ( 'SYS_LANG' ) ? SYS_LANG : 'en' ;
$this -> rol_name = Content :: load ( 'ROL_NAME' , '' , $this -> getRolUid (), $lang );
return $this -> rol_name ;
}
2012-07-19 11:08:49 -04:00
2010-12-02 23:34:41 +00:00
public function setRolName ( $v ) {
if ( $this -> getRolUid () == '' ) {
throw ( new Exception ( " Error in setProTitle, the PRO_UID can't be blank " ));
}
// Since the native PHP type for this column is string,
// we will cast the input to a string (if it is not).
if ( $v !== null && ! is_string ( $v )) {
$v = ( string ) $v ;
}
2012-07-19 11:08:49 -04:00
2010-12-02 23:34:41 +00:00
if ( $this -> rol_name !== $v || $v === '' ) {
$this -> rol_name = $v ;
$lang = defined ( 'SYS_LANG' ) ? SYS_LANG : 'en' ;
$res = Content :: addContent ( 'ROL_NAME' , '' , $this -> getRolUid (), $lang , $this -> rol_name );
}
2012-07-19 11:08:49 -04:00
2010-12-02 23:34:41 +00:00
}
2011-01-18 09:10:20 +00:00
} // Roles