Beispiel #1
0
 /**
  * Populate the sub-filters (if any) for the
  * given parent filter.
  * @param $parentFilter PersistableFilter
  */
 function _populateSubFilters(&$parentFilter)
 {
     if (!is_a($parentFilter, 'CompositeFilter')) {
         // Nothing to do. Only composite filters
         // can have sub-filters.
         return;
     }
     // Retrieve the sub-filters from the database.
     $parentFilterId = $parentFilter->getId();
     $result =& $this->retrieve('SELECT * FROM filters WHERE parent_filter_id = ? ORDER BY seq', $parentFilterId);
     $daoResultFactory = new DAOResultFactory($result, $this, '_fromRow', array('filter_id'));
     // Add sub-filters.
     while (!$daoResultFactory->eof()) {
         // Retrieve the sub filter.
         // NB: This recursively loads sub-filters
         // of this filter via _fromRow().
         $subFilter =& $daoResultFactory->next();
         // Add the sub-filter to the filter list
         // of its parent filter.
         $parentFilter->addFilter($subFilter);
         unset($subFilter);
     }
 }
    /**
     * Remove all user group assignments in a given context
     * @param int $contextId
     * @param int $userId
     */
    function deleteAssignmentsByContextId($contextId, $userId = null)
    {
        $params = array($contextId);
        if ($userId) {
            $params[] = $userId;
        }
        $result =& $this->retrieve('SELECT	uug.user_group_id, uug.user_id
			FROM	user_groups ug
				JOIN user_user_groups uug ON ug.user_group_id = uug.user_group_id
			WHERE	ug.context_id = ?
				' . ($userId ? ' AND uug.user_id = ?' : ''), $params);
        $assignments = new DAOResultFactory($result, $this, '_returnFromRow');
        while (!$assignments->eof()) {
            $assignment =& $assignments->next();
            $this->deleteByUserId($assignment->getUserId(), $assignment->getUserGroupId());
            unset($assignment);
        }
        return $assignments;
    }