public function findBasedOnUser($userLevel) { $daoPermTable = TOPLINK_BOL_ToplinkPermissionDao::getInstance()->getTableName(); $sql = "SELECT " . $this->getTableName() . ".* FROM " . $this->getTableName() . " LEFT JOIN " . $daoPermTable . " ON " . $daoPermTable . ".itemid = " . $this->getTableName() . ".id WHERE " . $daoPermTable . ".availablefor = " . $userLevel . ";"; return $this->dbo->queryForObjectList($sql, $this->getDtoClassName(), array(), 0, array()); }
public function saveToplink(TOPLINK_BOL_Toplink $toplinkitems, $permission = null) { TOPLINK_BOL_ToplinkDao::getInstance()->save($toplinkitems); if (!empty($toplinkitems->id)) { $newId = OW::getDbo()->getInsertId(); //print_r( $toplinkitems ); } $example = new OW_EXAMPLE(); $example->andFieldEqual('itemid', $toplinkitems->id); $listOfItem = TOPLINK_BOL_ToplinkPermissionDao::getInstance()->findListByExample($example); if (!empty($listOfItem)) { if (!empty($permission)) { //get saved permission foreach ($listOfItem as $permissionObj) { $visibleFor[$permissionObj->id] = $permissionObj->availablefor; } //if perm item is reduced, remove also from table $removeInstalled = array_diff($visibleFor, $permission); if (!empty($removeInstalled)) { foreach ($removeInstalled as $id => $myperm) { TOPLINK_BOL_ToplinkPermissionDao::getInstance()->deleteById($id); } } //if perm is added, add also into table $installNew = array_diff($permission, $visibleFor); if (!empty($installNew)) { foreach ($installNew as $id) { $toplinkPermission = new TOPLINK_BOL_ToplinkPermission(); $toplinkPermission->itemid = $toplinkitems->id; $toplinkPermission->availablefor = $id; TOPLINK_BOL_ToplinkPermissionDao::getInstance()->save($toplinkPermission); } } } else { //if permission is not provided, remove except for admin foreach ($listOfItem as $permissionObj) { if ($permissionObj->availablefor != 1) { TOPLINK_BOL_ToplinkPermissionDao::getInstance()->deleteById($permissionObj->availablefor); } } } } else { if (!empty($permission)) { //if no perm found in table, add allow to admin foreach ($permission as $perm) { $toplinkPermission = new TOPLINK_BOL_ToplinkPermission(); $toplinkPermission->itemid = $toplinkitems->id; $toplinkPermission->availablefor = $perm; TOPLINK_BOL_ToplinkPermissionDao::getInstance()->save($toplinkPermission); } } else { //if no perm found in table, add allow to admin $toplinkPermission = new TOPLINK_BOL_ToplinkPermission(); $toplinkPermission->itemid = $toplinkitems->id; $toplinkPermission->availablefor = 1; TOPLINK_BOL_ToplinkPermissionDao::getInstance()->save($toplinkPermission); } } return $newId; }