function portal_get_module_fields($session, $module_name)
{
    global $beanList, $beanFiles, $portal_modules, $valid_modules_for_contact;
    $error = new SoapError();
    $module_fields = array();
    if (!portal_validate_authenticated($session)) {
        $error->set_error('invalid_session');
        $error->description .= $session;
        return array('module_name' => $module_name, 'module_fields' => $module_fields, 'error' => $error->get_soap_array());
    }
    if ($_SESSION['type'] == 'lead' && $module_name != 'Leads') {
        $error->set_error('no_access');
        return array('module_name' => $module_name, 'module_fields' => $module_fields, 'error' => $error->get_soap_array());
    }
    if (empty($beanList[$module_name])) {
        $error->set_error('no_module');
        return array('module_name' => $module_name, 'module_fields' => $module_fields, 'error' => $error->get_soap_array());
    }
    if (($_SESSION['type'] == 'portal' || $_SESSION['type'] == 'contact') && !key_exists($module_name, $valid_modules_for_contact)) {
        $error->set_error('no_module');
        return array('module_name' => $module_name, 'module_fields' => $module_fields, 'error' => $error->get_soap_array());
    }
    $class_name = $beanList[$module_name];
    require_once $beanFiles[$class_name];
    $seed = new $class_name();
    $seed->fill_in_additional_detail_fields();
    $returnFields = get_return_module_fields($seed, $module_name, $error->get_soap_array(), true);
    if (is_subclass_of($seed, 'Person')) {
        $returnFields['module_fields']['email1'] = array('name' => 'email1', 'type' => 'email', 'required' => 0, 'label' => translate('LBL_EMAIL_ADDRESS', $seed->module_dir));
        $returnFields['module_fields']['email_opt_out'] = array('name' => 'email_opt_out', 'type' => 'bool', 'required' => 0, 'label' => translate('LBL_EMAIL_OPT_OUT', $seed->module_dir), 'options' => array());
    }
    //if
    return $returnFields;
}
Exemplo n.º 2
0
/**
 * Retrieve vardef information on the fields of the specified bean.
 *
 * @param String $session -- Session ID returned by a previous call to login.
 * @param String $module_name -- The name of the module to return records from.  This name should be the name the module was developed under (changing a tab name is studio does not affect the name that should be passed into this method)..
 * @return Array    'module_fields' -- The vardef information on the selected fields.
 *                  'error' -- The SOAP error, if any
 */
function get_module_fields($session, $module_name)
{
    global $beanList, $beanFiles;
    $error = new SoapError();
    $module_fields = array();
    if (!validate_authenticated($session)) {
        $error->set_error('invalid_session');
        return array('module_fields' => $module_fields, 'error' => $error->get_soap_array());
    }
    if (empty($beanList[$module_name])) {
        $error->set_error('no_module');
        return array('module_fields' => $module_fields, 'error' => $error->get_soap_array());
    }
    global $current_user;
    if (!check_modules_access($current_user, $module_name, 'read')) {
        $error->set_error('no_access');
        return array('module_fields' => $module_fields, 'error' => $error->get_soap_array());
    }
    $class_name = $beanList[$module_name];
    if (empty($beanFiles[$class_name])) {
        $error->set_error('no_file');
        return array('module_fields' => $module_fields, 'error' => $error->get_soap_array());
    }
    require_once $beanFiles[$class_name];
    $seed = new $class_name();
    if ($seed->ACLAccess('ListView', true) || $seed->ACLAccess('DetailView', true) || $seed->ACLAccess('EditView', true)) {
        return get_return_module_fields($seed, $module_name, $error);
    } else {
        $error->set_error('no_access');
        return array('module_fields' => $module_fields, 'error' => $error->get_soap_array());
    }
}
function portal_get_module_fields($session, $module_name)
{
    global $beanList, $beanFiles, $portal_modules, $valid_modules_for_contact;
    $error = new SoapError();
    $module_fields = array();
    if (!portal_validate_authenticated($session)) {
        $error->set_error('invalid_session');
        $error->description .= $session;
        return array('module_name' => $module_name, 'module_fields' => $module_fields, 'error' => $error->get_soap_array());
    }
    if ($_SESSION['type'] == 'lead' && $module_name != 'Leads') {
        $error->set_error('no_access');
        return array('module_name' => $module_name, 'module_fields' => $module_fields, 'error' => $error->get_soap_array());
    }
    if (empty($beanList[$module_name])) {
        $error->set_error('no_module');
        return array('module_name' => $module_name, 'module_fields' => $module_fields, 'error' => $error->get_soap_array());
    }
    if (($_SESSION['type'] == 'portal' || $_SESSION['type'] == 'contact') && !key_exists($module_name, $valid_modules_for_contact)) {
        $error->set_error('no_module');
        return array('module_name' => $module_name, 'module_fields' => $module_fields, 'error' => $error->get_soap_array());
    }
    $class_name = $beanList[$module_name];
    require_once $beanFiles[$class_name];
    $seed = new $class_name();
    $seed->fill_in_additional_detail_fields();
    return get_return_module_fields($seed, $module_name, $error->get_soap_array());
}