# LimeSurvey

## Presentation

LimeSurvey is a web survey software written in PHP.

## HTTP Headers

LimeSurvey has a webserver authentication mode that allows one to integrate it directly into LemonLDAP::NG.

To have a stronger integration, we will configure LimeSurvey to autocreate unknown users and use HTTP headers to fill name and mail.

Attention

We suppose that LimeSurvey is installed in /var/www/html/limesurvey

### LimeSurvey configuration

In Administration panel, go in Configuration > Parameters > Extensions manager. Select the WebServer module and configure it.

This is enough for the authentication part.

Tip

If you are blocked, you can deactivate the plugin with this request in database:

    update lime_plugins SET active=0 where name="Authwebserver";

To configure account autocreation, you need to edit application/config/config.php: The configuration is done in config.php:

    vi /var/www/html/limesurvey/application/config/config.php

    'config'=>array(
    // debug: Set this to 1 if you are looking for errors. If you still get no errors after enabling this
    // then please check your error-logs - either in your hosting provider admin panel or in some /logs directory
    // on your webspace.
    // LimeSurvey developers: Set this to 2 to additionally display STRICT PHP error messages and get full access to standard templates
            'debug'=>0,
            'debugsql'=>0, // Set this to 1 to enanble sql logging, only active when debug = 2
            // Update default LimeSurvey config here
            'auth_webserver_autocreate_user' => true,
            'auth_webserver_autocreate_profile' => Array('full_name' => $_SERVER['HTTP_AUTH_CN'],'email' => $_SERVER['HTTP_AUTH_MAIL'],'lang'=>'en'),
            'auth_webserver_autocreate_permissions' => Array('surveys' => array('create'=>true,'read'=>false,'update'=>false,'delete'=>false)),
            )

See also https://manual.limesurvey.org/Optional_settings#Authentication_delegation_with_automatic_user_import

### LimeSurvey virtual host

Configure LimeSurvey virtual host like other protected virtual host.

### LimeSurvey virtual host in Manager

Go to the Manager and create a new virtual host for LimeSurvey.

#### Headers

Header name | Description
--- | ---
Auth-User | user login
Auth-Cn | user full name
Auth-Mail | user email

#### Rules

Rule name | Expression | Description
--- | --- | ---
Logout | /sa/logout$ | Logout rule (for example logout_app_sso)
Admin |  | Allow only admin and superadmin users
Default | default | Allow only users with a LimeSurvey role

Tip

You can set the default access to:

- accept: all authenticated users will access surveys

- unprotect: no authentication will be asked to access surveys