* @param      PropelPDO $con
    * @return     sfGuardUserPermission
    */
    public static function retrieveByPK($user_id, $permission_id, PropelPDO $con = null)
    {
        $key = serialize(array((string) $user_id, (string) $permission_id));
        if (null !== ($obj = sfGuardUserPermissionPeer::getInstanceFromPool($key))) {
            return $obj;
        }
        if ($con === null) {
            $con = Propel::getConnection(sfGuardUserPermissionPeer::DATABASE_NAME, Propel::CONNECTION_READ);
        }
        $criteria = new Criteria(sfGuardUserPermissionPeer::DATABASE_NAME);
        $criteria->add(sfGuardUserPermissionPeer::USER_ID, $user_id);
        $criteria->add(sfGuardUserPermissionPeer::PERMISSION_ID, $permission_id);
        $v = sfGuardUserPermissionPeer::doSelect($criteria, $con);
        return !empty($v) ? $v[0] : null;
    }
}
// BasesfGuardUserPermissionPeer
// This is the static code needed to register the MapBuilder for this table with the main Propel class.
//
// NOTE: This static code cannot call methods on the sfGuardUserPermissionPeer class, because it is not defined yet.
// If you need to use overridden methods, you can add this code to the bottom of the sfGuardUserPermissionPeer class:
//
// Propel::getDatabaseMap(sfGuardUserPermissionPeer::DATABASE_NAME)->addTableBuilder(sfGuardUserPermissionPeer::TABLE_NAME, sfGuardUserPermissionPeer::getMapBuilder());
//
// Doing so will effectively overwrite the registration below.
Propel::getDatabaseMap(BasesfGuardUserPermissionPeer::DATABASE_NAME)->addTableBuilder(BasesfGuardUserPermissionPeer::TABLE_NAME, BasesfGuardUserPermissionPeer::getMapBuilder());
        $res = BasePeer::doValidate(sfGuardUserPermissionPeer::DATABASE_NAME, sfGuardUserPermissionPeer::TABLE_NAME, $columns);
        if ($res !== true) {
            $request = sfContext::getInstance()->getRequest();
            foreach ($res as $failed) {
                $col = sfGuardUserPermissionPeer::translateFieldname($failed->getColumn(), BasePeer::TYPE_COLNAME, BasePeer::TYPE_PHPNAME);
                $request->setError($col, $failed->getMessage());
            }
        }
        return $res;
    }
    public static function retrieveByPK($user_id, $permission_id, $con = null)
    {
        if ($con === null) {
            $con = Propel::getConnection(self::DATABASE_NAME);
        }
        $criteria = new Criteria();
        $criteria->add(sfGuardUserPermissionPeer::USER_ID, $user_id);
        $criteria->add(sfGuardUserPermissionPeer::PERMISSION_ID, $permission_id);
        $v = sfGuardUserPermissionPeer::doSelect($criteria, $con);
        return !empty($v) ? $v[0] : null;
    }
}
if (Propel::isInit()) {
    try {
        BasesfGuardUserPermissionPeer::getMapBuilder();
    } catch (Exception $e) {
        Propel::log('Could not initialize Peer: ' . $e->getMessage(), Propel::LOG_ERR);
    }
} else {
    Propel::registerMapBuilder('plugins.sfGuardPlugin.lib.model.map.sfGuardUserPermissionMapBuilder');
}