OpenMOOC / userregistration

Module for user registration in SimpleSAMLphp
Other
8 stars 6 forks source link

issue in registration #3

Closed johnfelipe closed 11 years ago

johnfelipe commented 11 years ago

Hi all,

I update all today and clic:

https://idp.domain.com/simplesaml/module.php/userregistration/newUser.php

and this is error:

error

normally i clic fetch:

https://idp.domain.com/simplesaml/module.php/metarefresh/fetch.php

error2

and this fine, but persist error, please tell what to do

tnks

pitbulk commented 11 years ago

Check the configuration file of your userregistration module --> module_userregistration.php, new params are required (compare your config with the config that is available in the config-template folder.

johnfelipe commented 11 years ago

i change:

'user.realm' => 'felipeurrego.com', 'admin.dn' => 'cn=admin,dc=felipeurrego,dc=com', 'admin.pw' => 'pwd', // Set the correct ldap admin password

what i have change more?

jorgelzpz commented 11 years ago

@johnfelipe if I were you, I'd just redo the module_userregistration.php using the provided template. There have been lots of changes since some weeks ago.

BTW you should have have a look at what your logs say about metarefresh problems.

johnfelipe commented 11 years ago

Hi, tnks for you advice, but problem persist, upload the file and tell me how is wrong, \var\www\idp\simplesamlphp\config:

<?php
/**
 * The configuration of userregistration module
 */

$config = array (

    /* The authentication source that should be used. */
    'auth' => 'userregistration-ldap',

    /* The authentication source for admin views. */
    'admin.auth' => 'admin',

    // Realm for eduPersonPrincipalName
    'user.realm' => 'felipeurrego.com',

    // Usen in mail and on pages
    'system.name' => 'User registration module',

    // Mail options
    'mail' => array(
        'token.lifetime' => (3600*24*5),
        'from'     => 'Example <na@felipeurrego.com>',
        'replyto'  => 'Example <na@felipeurrego.com>',
        'subject'  => 'Example - email verification',
        'admin_create_subject'  => 'Example - user account created',
        'admin_modify_subject'  => 'Example - user account modified',
    ),

      // URL of the Terms of Service
      'tos' => 'https://idp.felipeurrego.com/simplesaml/module.php/userregistration/TOS.txt',

      'custom.navigation' => TRUE,   // Let it as TRUE

    // User storage backend selector
    'storage.backend' => 'LdapMod',

      // LDAP backend configuration
      // This is configured in authsources.php
      // FIXME: The name of this arrays shoud be the same as storage.backend value
      'ldap' => array(
              'admin.dn' => 'cn=admin,dc=felipeurrego,dc=com',
              'admin.pw' => 'esto se cambia',   // Set the correct ldap admin password

        // Storage User Id indicate which of the attributes
        // that is the key in the storage
        // This relates to the attributs mapping
        'user.id.param' => 'uid',
        //'user.id.param' => 'cn',

        // Password encryption
        // plain, md5, sha1
        'psw.encrypt' => 'sha1',

        // Field user to save the registration email of the user
        'user.register.email.param' => 'mail',

        // Fields that contain a valid email to recover the password
        // (Sometimes is needed to be able to send recover password mail to a different email than the register email,
        //  For example if the Mail-System of the registered mail is protected by the IdP)
        'recover.pw.email.params' => array('mail','irisMailMainAddress'),

        // Password policy
        'password.policy' => array(
            'min.length' => 7,
            'require.lowercaseUppercase' => true,
            'require.digits' => true,
            // Require that password contains a non alphanumeric letter.
            'require.any.non.alphanumerics' => true,
            // Check if password contains the user values of the params of the array. Empty array to don't check
            'no.contains' => array('uid','givenName', 'sn'),
            // Dictionay filenames inside hooks folder. Empty array to don't check
            'check.dicctionaries' => array('dict1.txt'),
        ),

        // LDAP objectClass'es
        'objectClass' => array(
            'inetOrgPerson',
            'organizationalPerson',
            'person',
            'top',
            'eduPerson',
            'irisPerson',
            'norEduPerson'
        ),

        // Multivalued attributes we want to retrieve as arrays
        'multivalued.attributes' => array(
            'eduPersonAffiliation',
            'irisMailAlternateAddress',
        ),
    ), // end Ldap config

    // AWS SimpleDB configuration

    // SQL backend configuration

    // Password policy enforcer
    // Inspiration and backgroud
    // http://www.hq.nasa.gov/office/ospp/securityguide/V1comput/Password.htm

    /*
     * Mapping from the Storage backend field names to web frontend field names
     */

    'attributes'  => array(
        'uid' => 'uid',
        'givenName' => 'givenName',
        'sn' => 'sn',
        // Will be a combination for givenName and sn.
        'cn' => 'cn',
        'mail' => 'mail',
        'oldmail' => 'irisMailAlternateAddress',
        // uid and appended realm
        'eduPersonPrincipalName' => 'eduPersonPrincipalName',
        // Set from password walidataion and encryption
        'userPassword' => 'userPassword',
    ),

    /*
     * Search options
     */
    'search' => array(
        'min_length' => 3, // Minimum string length allowed
        'filter' => '*%STRING%*',
        // Searchable attributes
        // Use same names from recognized attributes (case sensitive)
        'searchable' => array(
            'cn',
            'sn',
            'mail',
        ),
        'pagination' => true,
        'elems_per_page' => 20,
    ),

    /*
     * Configuration for the field in the web frontend
     * This controlls the order of the fields
     *
     * Valid values for 'show', 'read_only' and 'optional' settings
     *
     * 'new_user': user tries to register by himself
     * 'edit_user': user tries to update his account details
     * 'admin_new_user': admin user creation form
     * 'admin_edit_user': admin account modification form
     * 'first_password': user is setting his own password after registering
     * 'change_password': user is changing his password
     * 'change_mail': user is changing his mail
     */
    'formFields' => array(
        // UID
        'uid' => array(
            'validate' => array(
                'filter'  => FILTER_VALIDATE_REGEXP,
                'options' => array("regexp"=>"/^[a-z]{1}[a-z0-9\-]{2,15}$/")
            ),
            'layout' => array(
                'control_type' => 'text',
                'show' => array(
                    'new_user',
                    'edit_user',
                    'admin_new_user',
                ),
                'read_only' => array(
                    'edit_user',
                ),
            ),
        ), // end uid

        'givenName' => array(
            'validate' => FILTER_DEFAULT,
            'layout' => array(
                'control_type' => 'text',
                'show' => array(
                    'new_user',
                    'edit_user',
                    'admin_new_user',
                    'admin_edit_user',
                ),
                'read_only' => array(
                ),
            ),
        ), // end givenName

        // Surname (ldap: sn)
        'sn' => array(
            'validate' => FILTER_DEFAULT,
            'layout' => array(
                'control_type' => 'text',
                'show' => array(
                    'new_user',
                    'edit_user',
                    'admin_new_user',
                    'admin_edit_user',
                ),
                'read_only' => array(
                    ),
                ),
            ), // end ename

        'mail' => array(
            'validate' => FILTER_VALIDATE_EMAIL,
            'layout' => array(
                'control_type' => 'text',
                'show' => array(
                    'new_user',
                    'edit_user',
                    'admin_new_user',
                    'admin_edit_user',
                ),
                'read_only' => array(
                    'edit_user',
                ),
            ),
        ), // end mail

        // Common name: read only
        'cn' => array(
            'validate' => FILTER_DEFAULT,
            'layout' => array(
                'control_type' => 'text',
                'size' => '35',
                'show' => array(
                    'new_user',
                    'edit_user',
                    'admin_new_user',
                    'admin_edit_user',
                ),
                'read_only' => array(
                ),
            ),
        ), // end cn

        // eduPersonPrincipalName
        'eduPersonPrincipalName' => array(
            'validate' => FILTER_DEFAULT,
            'layout' => array(
                'control_type' => 'text',
                'show' => array(
                    'admin_new_user',
                    'admin_edit_user',
                ),
                'read_only' => array(
                ),
            ),
        ), // end eduPersonPrincipalName
        'eduPersonAffiliation' => array(
            'validate' => array(
                'filter' => FILTER_DEFAULT,
                'flags' => FILTER_REQUIRE_ARRAY,
            ),
            'layout' => array(
                'control_type' => 'multivalued',
                'show' => array(
                    'admin_new_user',
                    'admin_edit_user',
                ),
                'read_only' => array(
                ),
            ),
        ), // end eduPersonAffiliation

        'userPassword' => array(
            'validate' => FILTER_DEFAULT,
            'layout' => array(
                'control_type' => 'password',
                'show' => array(
                    'first_password',
                    'change_password',
                    'admin_new_user',
                    'admin_edit_user',
                ),
                'read_only' => array(
                ),
                'optional' => array(
                    'admin_edit_user',
                ),
            ),
        ),

        'pw1' => array(
            'validate' => FILTER_DEFAULT,
            'layout' => array(
                'control_type' => 'password',
                'show' => array(
                    'change_password',
                    'admin_new_user',
                    'admin_edit_user',
                ),
                'read_only' => array(
                ),
                'optional' => array(
                    'admin_edit_user',
                ),
            ),
        ),

        'pw2' => array(
            'validate' => FILTER_DEFAULT,
            'layout' => array(
                'control_type' => 'password',
                'show' => array(
                    'change_password',
                    'admin_new_user',
                    'admin_edit_user',
                ),
                'read_only' => array(
                ),
                'optional' => array(
                    'admin_edit_user',
                ),
            ),
        ),
        'oldpw' => array(
            'validate' => FILTER_DEFAULT,
            'layout' => array(
                'control_type' => 'password',
                'show' => array(
                    'change_password',
                ),
                'read_only' => array(
                ),
            ),
        ),
        'newmail' => array(
            'validate' => FILTER_VALIDATE_EMAIL,
            'layout' => array(
                'control_type' => 'text',
                'show' => array(
                    'change_mail',
                ),
                'read_only' => array(
                ),
            ),
        ), 
    ),

    // Known mail services
    // Used to show a direct link to the inbox after registering a new account
    'known.email.providers' => array(
        array(
            'name' => 'GMail',
            'regexp' => '/g(oogle)?mail.com/',
            'url' => 'http://www.gmail.com',
            'image' => 'gmail.png',
        ),

        array(
            'name' => 'Outlook',
            'regexp' => '/(hotmail|outlook).com/',
            'url' => 'http://www.outlook.com',
            'image' => 'outlook.png',
        ),
    ),

    // Extra storage. Use redis, mongodb
    'extraStorage.backend' => 'redis',

    'redis' => array(
        'scheme' => 'tcp',
        'host'   => '127.0.0.1',
        'port'   => 6379,
    ),
    'mongodb' => array(
        'scheme' => 'tcp',
        'host'   => '127.0.0.1',
        'port'   => 6379,
    ),
);

and old is this:

<?php

$config = array (

      'auth' => 'ldap',
      'user.realm' => 'felipeurrego.com',
      'system.name' => 'OpenMOOC',

      // Mailtoken valid for 5 days
      'mailtoken.lifetime' => (3600*24*6),
      'mail.from'     => 'OpenMOOC <no-reply@felipeurrego.com>',
      'mail.replyto'  => 'OpenMOOC <no-reply@felipeurrego.com>',
      'mail.subject'  => 'OpenMOOC - verification',

      // URL of the Terms of Service
      'tos' => 'https://idp.felipeurrego.com/simplesaml/module.php/userregistration/TOS.txt',

      'custom.navigation' => TRUE,   // Let it as TRUE

      'storage.backend' => 'LdapMod',

      // LDAP backend configuration
      // This is configured in authsources.php
      // FIXME: The name of this arrays shoud be the same as storage.backend value
      'ldap' => array(
              'admin.dn' => 'cn=admin,dc=felipeurrego,dc=com',
              'admin.pw' => 'esto se cambia',   // Set the correct ldap admin password

              // Storage User Id indicate which of the attributes
              // that is the key in the storage
              // This relates to the attributs mapping
              'user.id.param' => 'mail',

              // Password encryption
              // plain, md5, sha1
              'psw.encrypt' => 'sha1',

              // Field user to save the registration email of the user
              'user.register.email.param' => 'mail',

              // Fields that contain a valid email to recover the password
              // (Sometimes is needed to be able to send recover password mail to a different email than the register email,
              //  For felipeurrego if the Mail-System of the registered mail is protected by the IdP)
              'recover.pw.email.params' => array('mail'),
              // Password policy
              'password.policy' => array(
                      'min.length' => 5,
                      'require.lowercaseUppercase' => false,
                      'require.digits' => true,
                      // Require that password contains a non alphanumeric letter.
                      'require.any.non.alphanumerics' => false,
                      // Check if password contains the user values of the params of the array. Empty array to don't check
                      'no.contains' => array(),
                      // Dictionay filenames inside hooks folder. Empty array to don't check
                      'check.dicctionaries' => array(),
              ),

              // LDAP objectClass'es
              'objectClass' => array(
                      'inetOrgPerson',
                      'person',
                      'top',
                      'eduPerson',
              ),
      ), // end Ldap config

      // AWS SimpleDB configuration

      // SQL backend configuration

      // Password policy enforcer
      // Inspiration and backgroud
      // http://www.hq.nasa.gov/office/ospp/securityguide/V1comput/Password.htm

      // Mapping from the Storage backend field names to web frontend field names
      // This also indicate which user attributes that will be saved
      'attributes'  => array(
              'cn' => 'cn',
              'sn' => 'sn',
              'mail' => 'mail',
      ),

      // Configuration for the field in the web frontend
      // This controlls the order of the fields
      'formFields' => array(
              'cn' => array(
                  'validate' => FILTER_DEFAULT,
                  'layout' => array(
                      'control_type' => 'text',
                      'show' => true,
                      'read_only' => false,
                      'size' => '35',
                  ),
              ),
              'sn' => array(
                      'validate' => FILTER_DEFAULT,
                      'layout' => array(
                              'control_type' => 'text',
                              'show' => true,
                              'read_only' => false,
                      ),
              ),
              'mail' => array(
                      'validate' => FILTER_VALIDATE_EMAIL,
                      'layout' => array(
                              'control_type' => 'text',
                              'show' => false,
                              'read_only' => true,
                      ),
              ),
              'eduPersonAffiliation' => array(
                  'validate' => FILTER_DEFAULT,
                  'layout' => array(
                      'control_type' => 'text',
                      'show' => false,
                      'read_only' => true,
                  ),
              ),
              'userPassword' => array(
                      'validate' => FILTER_DEFAULT,
                      'layout' => array(
                              'control_type' => 'password',
                      ),
              ),
              'pw1' => array(
                      'validate' => FILTER_DEFAULT,
                      'layout' => array(
                              'control_type' => 'password',
                      ),
              ),
              'pw2' => array(
                      'validate' => FILTER_DEFAULT,
                      'layout' => array(
                              'control_type' => 'password',
                      ),
              ),
              'oldpw' => array(
                      'validate' => FILTER_DEFAULT,
                      'layout' => array(
                              'control_type' => 'password',
                      ),
              ),
      ),

);
jorgelzpz commented 11 years ago

@johnfelipe perhaps this has nothing to do with the configuration. Do you have redis/mongodb running? The module now uses one of them to store the tokens. There is no configuration needed for neither of them, just make pick one, make sure it's running and set extraStorage.backend to the right value.

You'll also need to install php-redis or php-mongo to be able to use them.

johnfelipe commented 11 years ago

Hi again:

[root@felipeurrego ~]# service mongod status
mongod (pid 1811) is running...

in

/var/www/idp/simplesamlphp/config/module_userregistration.php

I change to:

// Extra storage. Use redis, mongodb
'extraStorage.backend' => 'mongodb',

restart httpd

[root@felipeurrego ~]# service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]

put

touch /var/www/idp/simplesamlphp/modules/userregistration/enable

Check

https://idp.domainorexample.com/simplesaml/module.php/metarefresh/fetch.php

All good

I follow this step:

http://madcoda.com/2012/12/install-mongodb-php-driver-in-centos-6-3/

all good

and

https://f.cloud.github.com/assets/428820/569059/bb97d852-c6ef-11e2-9011-f69dff25dd6c.png

Help please

jorgelzpz commented 11 years ago

You forgot to include the full exception stack trace, which should mention what did exactly happen.

johnfelipe commented 11 years ago

where i get and apologise

jorgelzpz commented 11 years ago

You can find it in the error screen, and also in the logs/ directory. Just search the provided tracking number.

johnfelipe commented 11 years ago

Hi:

If you report this error, please also report this tracking number which makes it possible to locate your session in the logs available to the system administrator: 8771e01253

Jun  6 13:42:59 felipeurrego simplesamlphp[1892]: 3 [8771e01253] SimpleSAML_Error_Error: UNHANDLEDEXCEPTION
Jun  6 13:42:59 felipeurrego simplesamlphp[1892]: 3 [8771e01253] Backtrace:
Jun  6 13:42:59 felipeurrego simplesamlphp[1892]: 3 [8771e01253] 0 /var/www/idp/simplesamlphp/www/module.php:180 (N/A)
Jun  6 13:42:59 felipeurrego simplesamlphp[1892]: 3 [8771e01253] Caused by: Exception: /var/www/idp/simplesamlphp/config/authsources.php: Could not retrieve the required option 'userregistration-ldap'
Jun  6 13:42:59 felipeurrego simplesamlphp[1892]: 3 [8771e01253] Backtrace:
Jun  6 13:42:59 felipeurrego simplesamlphp[1892]: 3 [8771e01253] 5 /var/www/idp/simplesamlphp/lib/SimpleSAML/Configuration.php:316 (SimpleSAML_Configuration::getValue)
Jun  6 13:42:59 felipeurrego simplesamlphp[1892]: 3 [8771e01253] 4 /var/www/idp/simplesamlphp/lib/SimpleSAML/Configuration.php:686 (SimpleSAML_Configuration::getArray)
Jun  6 13:42:59 felipeurrego simplesamlphp[1892]: 3 [8771e01253] 3 /var/www/idp/simplesamlphp/modules/userregistration/lib/Storage/UserCatalogue.php:58 (sspmod_userregistration_Storage_UserCatalogue::instantiateLdapStorage)
Jun  6 13:42:59 felipeurrego simplesamlphp[1892]: 3 [8771e01253] 2 /var/www/idp/simplesamlphp/modules/userregistration/lib/Storage/UserCatalogue.php:27 (sspmod_userregistration_Storage_UserCatalogue::instantiateStorage)
Jun  6 13:42:59 felipeurrego simplesamlphp[1892]: 3 [8771e01253] 1 /var/www/idp/simplesamlphp/modules/userregistration/www/newUser.php:19 (require)
Jun  6 13:42:59 felipeurrego simplesamlphp[1892]: 3 [8771e01253] 0 /var/www/idp/simplesamlphp/www/module.php:135 (N/A)
Jun  6 13:42:59 felipeurrego simplesamlphp[1892]: 3 [8771e01253] Error report with id c4f35207 generated.
Jun  6 13:43:06 felipeurrego simplesamlphp[1802]: 3 [8771e01253] SimpleSAML_Error_Error: UNHANDLEDEXCEPTION
Jun  6 13:43:06 felipeurrego simplesamlphp[1802]: 3 [8771e01253] Backtrace:
Jun  6 13:43:06 felipeurrego simplesamlphp[1802]: 3 [8771e01253] 0 /var/www/idp/simplesamlphp/www/module.php:180 (N/A)
Jun  6 13:43:06 felipeurrego simplesamlphp[1802]: 3 [8771e01253] Caused by: Exception: /var/www/idp/simplesamlphp/config/authsources.php: Could not retrieve the required option 'userregistration-ldap'
Jun  6 13:43:06 felipeurrego simplesamlphp[1802]: 3 [8771e01253] Backtrace:
Jun  6 13:43:06 felipeurrego simplesamlphp[1802]: 3 [8771e01253] 5 /var/www/idp/simplesamlphp/lib/SimpleSAML/Configuration.php:316 (SimpleSAML_Configuration::getValue)
Jun  6 13:43:06 felipeurrego simplesamlphp[1802]: 3 [8771e01253] 4 /var/www/idp/simplesamlphp/lib/SimpleSAML/Configuration.php:686 (SimpleSAML_Configuration::getArray)
Jun  6 13:43:06 felipeurrego simplesamlphp[1802]: 3 [8771e01253] 3 /var/www/idp/simplesamlphp/modules/userregistration/lib/Storage/UserCatalogue.php:58 (sspmod_userregistration_Storage_UserCatalogue::instantiateLdapStorage)
Jun  6 13:43:06 felipeurrego simplesamlphp[1802]: 3 [8771e01253] 2 /var/www/idp/simplesamlphp/modules/userregistration/lib/Storage/UserCatalogue.php:27 (sspmod_userregistration_Storage_UserCatalogue::instantiateStorage)
Jun  6 13:43:06 felipeurrego simplesamlphp[1802]: 3 [8771e01253] 1 /var/www/idp/simplesamlphp/modules/userregistration/www/newUser.php:19 (require)
Jun  6 13:43:06 felipeurrego simplesamlphp[1802]: 3 [8771e01253] 0 /var/www/idp/simplesamlphp/www/module.php:135 (N/A)
Jun  6 13:43:06 felipeurrego simplesamlphp[1802]: 3 [8771e01253] Error report with id 65291f81 generated.
Jun  6 13:46:24 felipeurrego simplesamlphp[1800]: 3 [8771e01253] SimpleSAML_Error_Error: UNHANDLEDEXCEPTION
Jun  6 13:46:24 felipeurrego simplesamlphp[1800]: 3 [8771e01253] Backtrace:
Jun  6 13:46:24 felipeurrego simplesamlphp[1800]: 3 [8771e01253] 0 /var/www/idp/simplesamlphp/www/module.php:180 (N/A)
Jun  6 13:46:24 felipeurrego simplesamlphp[1800]: 3 [8771e01253] Caused by: Exception: /var/www/idp/simplesamlphp/config/authsources.php: Could not retrieve the required option 'userregistration-ldap'
Jun  6 13:46:24 felipeurrego simplesamlphp[1800]: 3 [8771e01253] Backtrace:
Jun  6 13:46:24 felipeurrego simplesamlphp[1800]: 3 [8771e01253] 5 /var/www/idp/simplesamlphp/lib/SimpleSAML/Configuration.php:316 (SimpleSAML_Configuration::getValue)
Jun  6 13:46:24 felipeurrego simplesamlphp[1800]: 3 [8771e01253] 4 /var/www/idp/simplesamlphp/lib/SimpleSAML/Configuration.php:686 (SimpleSAML_Configuration::getArray)
Jun  6 13:46:24 felipeurrego simplesamlphp[1800]: 3 [8771e01253] 3 /var/www/idp/simplesamlphp/modules/userregistration/lib/Storage/UserCatalogue.php:58 (sspmod_userregistration_Storage_UserCatalogue::instantiateLdapStorage)
Jun  6 13:46:24 felipeurrego simplesamlphp[1800]: 3 [8771e01253] 2 /var/www/idp/simplesamlphp/modules/userregistration/lib/Storage/UserCatalogue.php:27 (sspmod_userregistration_Storage_UserCatalogue::instantiateStorage)
Jun  6 13:46:24 felipeurrego simplesamlphp[1800]: 3 [8771e01253] 1 /var/www/idp/simplesamlphp/modules/userregistration/www/newUser.php:19 (require)
Jun  6 13:46:24 felipeurrego simplesamlphp[1800]: 3 [8771e01253] 0 /var/www/idp/simplesamlphp/www/module.php:135 (N/A)
Jun  6 13:46:24 felipeurrego simplesamlphp[1800]: 3 [8771e01253] Error report with id 77cae624 generated.
Jun  6 13:49:57 felipeurrego simplesamlphp[1893]: 3 [8771e01253] SimpleSAML_Error_Error: UNHANDLEDEXCEPTION
Jun  6 13:49:57 felipeurrego simplesamlphp[1893]: 3 [8771e01253] Backtrace:
Jun  6 13:49:57 felipeurrego simplesamlphp[1893]: 3 [8771e01253] 0 /var/www/idp/simplesamlphp/www/module.php:180 (N/A)
Jun  6 13:49:57 felipeurrego simplesamlphp[1893]: 3 [8771e01253] Caused by: Exception: /var/www/idp/simplesamlphp/config/authsources.php: Could not retrieve the required option 'userregistration-ldap'
Jun  6 13:49:57 felipeurrego simplesamlphp[1893]: 3 [8771e01253] Backtrace:
Jun  6 13:49:57 felipeurrego simplesamlphp[1893]: 3 [8771e01253] 5 /var/www/idp/simplesamlphp/lib/SimpleSAML/Configuration.php:316 (SimpleSAML_Configuration::getValue)
Jun  6 13:49:57 felipeurrego simplesamlphp[1893]: 3 [8771e01253] 4 /var/www/idp/simplesamlphp/lib/SimpleSAML/Configuration.php:686 (SimpleSAML_Configuration::getArray)
Jun  6 13:49:57 felipeurrego simplesamlphp[1893]: 3 [8771e01253] 3 /var/www/idp/simplesamlphp/modules/userregistration/lib/Storage/UserCatalogue.php:58 (sspmod_userregistration_Storage_UserCatalogue::instantiateLdapStorage)
Jun  6 13:49:57 felipeurrego simplesamlphp[1893]: 3 [8771e01253] 2 /var/www/idp/simplesamlphp/modules/userregistration/lib/Storage/UserCatalogue.php:27 (sspmod_userregistration_Storage_UserCatalogue::instantiateStorage)
Jun  6 13:49:57 felipeurrego simplesamlphp[1893]: 3 [8771e01253] 1 /var/www/idp/simplesamlphp/modules/userregistration/www/newUser.php:19 (require)
Jun  6 13:49:57 felipeurrego simplesamlphp[1893]: 3 [8771e01253] 0 /var/www/idp/simplesamlphp/www/module.php:135 (N/A)
Jun  6 13:49:57 felipeurrego simplesamlphp[1893]: 3 [8771e01253] Error report with id 5010c97e generated.

Please help

Tnks

jorgelzpz commented 11 years ago

This seems to be the problem:

Jun  6 13:49:57 felipeurrego simplesamlphp[1893]: 3 [8771e01253] Caused by: Exception: /var/www/idp/simplesamlphp/config/authsources.php: Could not retrieve the required option 'userregistration-ldap'

Do you have an authsource called userregistration-ldap? You have to set the auth option inside module_userregistration.php to a valid auth source.

johnfelipe commented 11 years ago

Hi change

'auth' => 'ldap',

But now show me a white page and show nothing

johnfelipe commented 11 years ago

Update with gitpull

cd /var/www/idp/simplesamlphp/modules/userregistration
git pull

and this is log console:

remote: Counting objects: 64, done.
remote: Compressing objects: 100% (21/21), done.
remote: Total 38 (delta 20), reused 34 (delta 16)
Unpacking objects: 100% (38/38), done.
From https://github.com/OpenMOOC/userregistration
   349da95..fc72d60  master     -> origin/master
Updating 349da95..fc72d60
Fast-forward
 config-templates/module_userregistration.php |   25 ++--
 doc/configuration.md                         |  152 ++++++++++++++++++++++++++
 doc/installation.md                          |   31 +++++
 lib/ExtraData/AccountCreationToken.php       |   30 +++---
 lib/ExtraData/Base.php                       |    8 +-
 lib/ExtraData/GotoURL.php                    |   30 ++++--
 lib/ExtraData/MailChangeToken.php            |   46 +++++---
 lib/ExtraData/PasswordChangeToken.php        |   15 +++
 lib/ExtraStorage.php                         |   42 -------
 lib/ExtraStorage/IDriver.php                 |    7 +
 lib/ExtraStorage/Manager.php                 |   34 ++++++
 lib/ExtraStorage/Mongodb.php                 |   83 ++++++++++++++
 lib/ExtraStorage/Redis.php                   |   43 +++++---
 lib/Registration.php                         |   57 ++++------
 lib/TokenGenerator.php                       |   34 +++++-
 www/changeMail.php                           |   12 +-
 www/lostPassword.php                         |   40 +++++--
 www/newUser.php                              |    2 -
 18 files changed, 524 insertions(+), 167 deletions(-)
 create mode 100644 doc/configuration.md
 create mode 100644 doc/installation.md
 create mode 100644 lib/ExtraData/PasswordChangeToken.php
 delete mode 100644 lib/ExtraStorage.php
 create mode 100644 lib/ExtraStorage/IDriver.php
 create mode 100644 lib/ExtraStorage/Manager.php
 create mode 100644 lib/ExtraStorage/Mongodb.php

I fetch and all good

but this is new error:

Jun  6 20:23:48 felipeurrego simplesamlphp[4159]: 3 [9217c0bd24] SimpleSAML_Error_Error: UNHANDLEDEXCEPTION
Jun  6 20:23:48 felipeurrego simplesamlphp[4159]: 3 [9217c0bd24] Backtrace:
Jun  6 20:23:48 felipeurrego simplesamlphp[4159]: 3 [9217c0bd24] 0 /var/www/idp/simplesamlphp/www/module.php:180 (N/A)
Jun  6 20:23:48 felipeurrego simplesamlphp[4159]: 3 [9217c0bd24] Caused by: MongoConnectionException: Failed to connect to: tcp:0: Connection timed out
Jun  6 20:23:48 felipeurrego simplesamlphp[4159]: 3 [9217c0bd24] Backtrace:
Jun  6 20:23:48 felipeurrego simplesamlphp[4159]: 3 [9217c0bd24] 5 /var/www/idp/simplesamlphp/modules/userregistration/lib/ExtraStorage/Mongodb.php:10 (MongoClient::__construct)
Jun  6 20:23:48 felipeurrego simplesamlphp[4159]: 3 [9217c0bd24] 4 /var/www/idp/simplesamlphp/modules/userregistration/lib/ExtraStorage/Mongodb.php:10 (sspmod_userregistration_ExtraStorage_Mongodb::__construct)
Jun  6 20:23:48 felipeurrego simplesamlphp[4159]: 3 [9217c0bd24] 3 /var/www/idp/simplesamlphp/modules/userregistration/lib/ExtraStorage/Manager.php:25 (sspmod_userregistration_ExtraStorage_Manager::getInstance)
Jun  6 20:23:48 felipeurrego simplesamlphp[4159]: 3 [9217c0bd24] 2 /var/www/idp/simplesamlphp/modules/userregistration/lib/Registration.php:39 (sspmod_userregistration_Registration::__construct)
Jun  6 20:23:48 felipeurrego simplesamlphp[4159]: 3 [9217c0bd24] 1 /var/www/idp/simplesamlphp/modules/userregistration/www/newUser.php:21 (require)
Jun  6 20:23:48 felipeurrego simplesamlphp[4159]: 3 [9217c0bd24] 0 /var/www/idp/simplesamlphp/www/module.php:135 (N/A)
Jun  6 20:23:48 felipeurrego simplesamlphp[4159]: 3 [9217c0bd24] Error report with id e474638c generated.
jorgelzpz commented 11 years ago

Do you have a MongoDB instance running? Is it actually working?

johnfelipe commented 11 years ago

Hi, yes i review status and running

jorgelzpz commented 11 years ago

Have a look at this:

Failed to connect to: tcp:0: Connection timed out

There seems to be something wrong with your MongoDB connection settings. Please, make sure you're trying to connect to the same IP your MongoDB instance is bound to, and check for any iptables rules that might be blocking this connection.

johnfelipe commented 11 years ago

This is my saml_setting.py:

import saml2
import os

BASEDIR = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))

SAML2_DIR = "/var/www/moocng/saml2"
SAML_CONFIG = {
    # full path to the xmlsec1 binary programm
    'xmlsec_binary': '/usr/bin/xmlsec1',

    # your entity id, usually your subdomain plus the url to the metadata view
    'entityid': 'http://moocng.felipeurrego.com/saml2/metadata/',

    # directory with attribute mapping
    'attribute_map_dir': os.path.join(SAML2_DIR, 'attribute-maps'),

    # this block states what services we provide
    'service': {
        # we are just a lonely SP
        'sp' : {
            'name': 'Moocng SP',
            'endpoints': {
                # url and binding to the assetion consumer service view
                # do not change the binding or service name
                'assertion_consumer_service': [
                    ('http://moocng.felipeurrego.com/saml2/acs/', saml2.BINDING_HTTP_POST),
                    ],
                # url and binding to the single logout service view
                # do not change the binding or service name
                'single_logout_service': [
                    ('http://moocng.felipeurrego.com/saml2/ls/', saml2.BINDING_HTTP_REDIRECT),
                    ],
                },

            # in this section the list of IdPs we talk to are defined
            'idp': {
                # we do not need a WAYF service since there is
                # only an IdP defined here. This IdP should be
                # present in our metadata

                # the keys of this dictionary are entity ids
                'https://idp.felipeurrego.com/simplesaml/saml2/idp/metadata.php': {
                    'single_sign_on_service': {
                        saml2.BINDING_HTTP_REDIRECT: 'https://idp.felipeurrego.com/simplesaml/saml2/idp/SSOService.php',
                        },
                    'single_logout_service': {
                        saml2.BINDING_HTTP_REDIRECT: 'https://idp.felipeurrego.com/simplesaml/saml2/idp/SingleLogoutService.php',
                        },
                    },
                },
            },
        },

    # where the remote metadata is stored
    'metadata': {
        'local': [os.path.join(SAML2_DIR, 'remote_metadata.xml')],
        },

    # set to 1 to output debugging information
    'debug': 1,

    # certificate
    'key_file': os.path.join(SAML2_DIR, 'certs/server.key'),  # private part
    'cert_file': os.path.join(SAML2_DIR, 'certs/server.crt'),  # public part

    # own metadata settings
    'contact_person': [
        {'given_name': 'Sysadmin',
         'sur_name': '',
         'company': 'Example CO',
         'email_address': 'sysadmin@felipeurrego.com',
         'contact_type': 'technical'},
        {'given_name': 'Boss',
         'sur_name': '',
         'company': 'Example CO',
         'email_address': 'admin@felipeurrego.com',
         'contact_type': 'administrative'},
        ],
    # you can set multilanguage information here
    'organization': {
        'name': [('Example CO', 'es'), ('Example CO', 'en')],
        'display_name': [('Example', 'es'), ('Example', 'en')],
        'url': [('http://www.felipeurrego.com', 'es'), ('http://www.felipeurrego.com', 'en')],
        },
    }

and my common.py:

# Copyright 2012 Rooter Analysis S.L.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#    http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# Django settings for moocng project.

import os
BASEDIR = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))
#BASEDIR = os.path.abspath(os.path.dirname(__file__))

DEBUG = True
TEMPLATE_DEBUG = DEBUG

FFMPEG_DEBUG = DEBUG

ADMINS = (
    ('Admin', 'email aqui'),
)

MANAGERS = ADMINS

EMAIL_SUBJECT_PREFIX = '[OpenMOOC] | '

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',  # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
        'NAME': 'moocng',                # Or path to database file if using sqlite3.
        'USER': 'moocng',                # Not used with sqlite3.
        'PASSWORD': 'contraseña aqui',            # Not used with sqlite3.
        'HOST': '',                      # Set to empty string for localhost. Not used with sqlite3.
        'PORT': '',                      # Set to empty string for default. Not used with sqlite3.
    }
}

MONGODB_URI = 'mongodb://localhost:27017/moocng'

# Tastypie resource limit per page, 0 means unlimited
API_LIMIT_PER_PAGE = 0

#SMTP server
EMAIL_HOST = 'idp.dominioaqui.com'
SERVER_EMAIL = '127.0.0.1'
DEFAULT_FROM_EMAIL = 'info@dominioaqui.com'
EMAIL_PORT = 25
EMAIL_HOST_USER = ''
EMAIL_HOST_PASSWORD = ''

EMAIL_SUBJECT_PREFIX = '[OpenMOOC] | '

# Amazon credentials
AWS_ACCESS_KEY_ID = "_____"
AWS_SECRET_ACCESS_KEY = "__________________+3Yl0i/__________"
AWS_STORAGE_BUCKET_NAME = "___________"
AWS_S3_UPLOAD_EXPIRE_TIME = (60 * 5) # 5 minutes

# Local time zone for this installation. Choices can be found here:
# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
# although not all choices may be available on all operating systems.
# On Unix systems, a value of None will cause Django to use the same
# timezone as the operating system.
# If running in a Windows environment this must be set to the same as your
# system time zone.
TIME_ZONE = 'Europe/Madrid'

# Language code for this installation. All choices can be found here:
# http://www.i18nguy.com/unicode/language-identifiers.html
LANGUAGE_CODE = 'en-us'

gettext = lambda s: s

LANGUAGES = (
    ('en', gettext('English')),
    ('es', gettext('Spanish')),
)

# the default value is 'django_language' but changing this
# to 'language' makes it easier to integrate with the IdP
LANGUAGE_COOKIE_NAME = 'language'

LOCALE_PATHS = (
    os.path.join(BASEDIR, 'locale'),
)

SITE_ID = 1

# If you set this to False, Django will make some optimizations so as not
# to load the internationalization machinery.
USE_I18N = True

# If you set this to False, Django will not format dates, numbers and
# calendars according to the current locale.
USE_L10N = True

# Use custom formats
FORMAT_MODULE_PATH = 'moocng.formats'

# If you set this to False, Django will not use timezone-aware datetimes.
USE_TZ = True

# Absolute filesystem path to the directory that will hold user-uploaded files.
# Example: "/home/media/media.lawrence.com/media/"
#MEDIA_ROOT = os.path.join(BASEDIR, 'media')
MEDIA_ROOT = '/var/www/moocng/media'

# URL that handles the media served from MEDIA_ROOT. Make sure to use a
# trailing slash.
# Examples: "http://media.lawrence.com/media/", "http://example.com/media/"
MEDIA_URL = '/media/'

# Absolute path to the directory static files should be collected to.
# Don't put anything in this directory yourself; store your static files
# in apps' "static/" subdirectories and in STATICFILES_DIRS.
# Example: "/home/media/media.lawrence.com/static/"
#STATIC_ROOT = os.path.join(BASEDIR, 'collected_static')
STATIC_ROOT = '/var/www/moocng/static'

# URL prefix for static files.
# Example: "http://media.lawrence.com/static/"
STATIC_URL = '/static/'

# Additional locations of static files
STATICFILES_DIRS = (
    # Put strings here, like "/home/html/static" or "C:/www/django/static".
    # Always use forward slashes, even on Windows.
    # Don't forget to use absolute paths, not relative paths.
    os.path.join(BASEDIR, 'static'),
)

# List of finder classes that know how to find static files in
# various locations.
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
    'compressor.finders.CompressorFinder'
    # 'django.contrib.staticfiles.finders.DefaultStorageFinder',
)

# Make this unique, and don't share it with anybody.
#SECRET_KEY = 'r$=%l$j4(#5a%$rd*g+q5o7!m3z&amp;b@z1+n*d!n2im-hf0n%730'
SECRET_KEY = 'amz84hsmmb31p8cgw2nwqfdolpm80vmz'

# List of callables that know how to import templates from various sources.
TEMPLATE_LOADERS = (
    'django.template.loaders.filesystem.Loader',
    'django.template.loaders.app_directories.Loader',
    # 'django.template.loaders.eggs.Loader',
)

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.locale.LocaleMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    # Uncomment the next line for simple clickjacking protection:
    # 'django.middleware.clickjacking.XFrameOptionsMiddleware',
)

ROOT_URLCONF = 'moocng.urls'

# Python dotted path to the WSGI application used by Django's runserver.
WSGI_APPLICATION = 'moocng.wsgi.application'

TEMPLATE_DIRS = (
    # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
    # Always use forward slashes, even on Windows.
    # Don't forget to use absolute paths, not relative paths.
    os.path.join(BASEDIR, 'templates'),
)

COMPRESS_CSS_FILTERS = [
    'compressor.filters.css_default.CssAbsoluteFilter',
    'compressor.filters.cssmin.CSSMinFilter',
]

COMPRESS_OFFLINE = False

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'grappelli',
    'django.contrib.admin',
    'django.contrib.flatpages',
    'adminsortable',
    'djcelery',
    'tinymce',
    'tastypie',
    'compressor',
    'moocng.contact',
    'moocng.badges',  # this must be defined before moocng.courses
    'moocng.courses',
    'moocng.assets',
    'moocng.portal',
    'moocng.videos',
    'moocng.teacheradmin',
    'moocng.enrollment',
    'moocng.api',
    'moocng.categories',
    'moocng.peerreview',
    'djangosaml2',
    'south',
    'django_mathjax',
    # Uncomment the next line to enable admin documentation:
    # 'django.contrib.admindocs',
    'moocng.media_contents',
)

# A sample logging configuration. The only tangible logging
# performed by this configuration is to send an email to
# the site admins on every HTTP 500 error when DEBUG=False.
# See http://docs.djangoproject.com/en/dev/topics/logging for
# more details on how to customize your logging configuration.
LOGGING = {
    'version': 1,
    'disable_existing_loggers': True,
    'formatters': {
        'verbose': {
            'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s'
        },
        'simple': {
            'format': '%(levelname)s %(message)s'
        },
    },
    'filters': {
        'require_debug_false': {
            '()': 'django.utils.log.RequireDebugFalse'
        },
    },
    'handlers': {
        'console': {
            'level': 'DEBUG',
            'class': 'logging.StreamHandler',
            'formatter': 'simple',
        },
        'mail_admins': {
            'level': 'ERROR',
            'class': 'django.utils.log.AdminEmailHandler',
            'filters': ['require_debug_false'],
        },
    },
    'loggers': {
        'django.request': {
            'handlers': ['console', 'mail_admins'],
            'level': 'DEBUG',
            'propagate': True,
        },
        'moocng.videos.download': {
            'handlers': ['console', 'mail_admins'],
            'level': 'INFO',
            'propagate': True,
        },
        'moocng.videos.tasks': {
            'handlers': ['console', 'mail_admins'],
            'level': 'INFO',
            'propagate': True,
        },
        'moocng.courses.admin': {
            'handlers': ['console', 'mail_admins'],
            'level': 'INFO',
            'propagate': True,
        },
    }
}

TEMPLATE_CONTEXT_PROCESSORS = (
    'django.contrib.auth.context_processors.auth',
    'django.core.context_processors.debug',
    'django.core.context_processors.i18n',
    'django.core.context_processors.media',
    'django.core.context_processors.static',
    'django.core.context_processors.tz',
    # 'django.core.context_processors.request',
    'django.contrib.messages.context_processors.messages',
    'moocng.context_processors.site',
    'moocng.context_processors.theme',
    'moocng.context_processors.extra_settings',
    'moocng.context_processors.idp_urls',
    'moocng.context_processors.google_analytics',
    'moocng.context_processors.certificate_url',
)

AUTHENTICATION_BACKENDS = (
    'django.contrib.auth.backends.ModelBackend',
    'moocng.courses.backends.Saml2BackendExtension',
)

FIXTURE_DIRS = (
    os.path.join(BASEDIR, 'fixtures', 'django.contrib.flatpages'),
    os.path.join(BASEDIR, 'fixtures', 'django.contrib.auth'),
)

TINYMCE_DEFAULT_CONFIG = {
    'theme': 'advanced',
    'theme_advanced_toolbar_location': 'top',
    'theme_advanced_buttons1': 'bold,italic,underline,strikethrough,separator,link,unlink,separator,undo,redo,copy,paste,separator,cleanup,separator,bullist,numlist',
    'theme_advanced_buttons2': '',
    'theme_advanced_buttons3': '',
}

GOOGLE_ANALYTICS_CODE = ''

GRAVATAR_URL_PREFIX = '//www.gravatar.com/'

MOOCNG_THEME = {
    # 'cert_banner': u'',
}

ENABLED_COMUNICATIONS = (
    'feedback',
    'incidence',
    'rights',
    'unsubscribe',
    'others'
)

#SHOW_TOS = True

FFMPEG = '/usr/bin/ffmpeg'

# Let authenticated users create their own courses
ALLOW_PUBLIC_COURSE_CREATION = False

# Make this unique, and don't share it with anybody else than payment system
# Override this in local settings
USER_API_KEY = '123456789'

# A list with the slugs of the courses that use the old qualification system
# where the normal units counted
#COURSES_USING_OLD_TRANSCRIPT = []
COURSES_USING_OLD_TRANSCRIPT = ['aleman-para-colombianos', 'tics-para-ensenar-y-aprender', 'empieza-con-el-ingles-aprende-las-mil-palabras-mas', 'ingles-profesional-professional-english']

# Enrollment methods
ENROLLMENT_METHODS = (
    'moocng.enrollment.methods.FreeEnrollment',
)

# Celery settings
import djcelery
djcelery.setup_loader()
CELERY_CREATE_MISSING_QUEUES = True

BROKER_URL = 'amqp://moocng:dominioaqui@localhost:5672/moocng'

REGISTRY_URL = 'https://idp.dominioaqui.com/simplesaml/module.php/userregistration/newUser.php'
PROFILE_URL = 'https://idp.dominioaqui.com/simplesaml/module.php/userregistration/reviewUser.php'
CHANGEPW_URL = 'https://idp.dominioaqui.com/simplesaml/module.php/userregistration/changePassword.php'
ASKBOT_URL_TEMPLATE = 'https://questions.dominioaqui.com/%s/'

#CERTIFICATE_URL = 'http://dominioaqui.com/idcourse/%(courseid)s/email/%(email)s'  # Example, to be overwritten in local settings
CERTIFICATE_URL = 'http://jhondominioaquimejia.com/idcourse/%(courseid)s/image.php?name=%(email)s'  # Example, to be overwritten in local settings

MASSIVE_EMAIL_BATCH_SIZE = 30

PEER_REVIEW_TEXT_MAX_SIZE = 5000  # in chars
PEER_REVIEW_FILE_MAX_SIZE = 5  # in MB
PEER_REVIEW_ASSIGNATION_EXPIRE = 24  # in hours

ASSET_SLOT_GRANULARITY = 5  # Slot time of assets should be a multiple of this value (in minutes)

SESSION_EXPIRE_AT_BROWSER_CLOSE = True
LOGIN_URL = '/saml2/login/'
LOGIN_REDIRECT_URL = '/'
LOGOUT_URL = '/saml2/logout/'
LOGOUT_REDIRECT_URL = '/'

FREE_ENROLLMENT_CONSISTENT = False

SAML_CREATE_UNKNOWN_USER = True
SAML_ATTRIBUTE_MAPPING = {
    'mail': ('username', 'email', ),
    'cn': ('first_name', ),
    'sn': ('last_name', ),
    'eduPersonAffiliation': ('groups', ),
}

from .saml_settings import *

MEDIA_CONTENT_TYPES = [
    {
        'id': 'youtube',
        'name': 'YouTube',
        'handler': 'moocng.media_contents.handlers.youtube.YoutubeMediaContentHandler',
        'can_get_last_frame': True,
    },
    {
        'id': 'vimeo',
        'name': 'Vimeo',
        'handler': 'moocng.media_contents.handlers.vimeo.VimeoMediaContentHandler',
        'can_get_last_frame': False,
    },
    {
        'id': 'scribd',
        'name': 'Scribd',
        'handler': 'moocng.media_contents.handlers.scribd.ScribdMediaContentHandler',
        'can_get_last_frame': False,
    },
    {
        'id': 'prezi',
        'name': 'Prezi',
        'handler': 'moocng.media_contents.handlers.prezi.PreziMediaContentHandler',
        'can_get_last_frame': False,
    },
]

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.dummy.DummyCache',
    },
}

MATHJAX_ENABLED = False
MATHJAX_LOCAL_PATH = STATIC_URL + 'js/libs/mathjax'
MATHJAX_CONFIG_FILE = "TeX-AMS-MML_HTMLorMML"
MATHJAX_CONFIG_DATA = {
    "elements": ['false-id-to-not-proccess-by-default'],
    "tex2jax": {
        "inlineMath": [
            ['$', '$'],
            ['\\(', '\\)']
        ]
    }
}
johnfelipe commented 11 years ago

Iptables is off

"iptables: Firewall is not running."

jorgelzpz commented 11 years ago

@johnfelipe I think you are confusing userregistration (SSP module, this project) with other pieces of the OpenMOOC project (moocng, askbot).

The configuration file you have to check is module_userregistration.php, look for the extraStorage.backend and mongodb settings.

johnfelipe commented 11 years ago

Yes, but i see all good:

https://github.com/OpenMOOC/userregistration/issues/3#issuecomment-18635419

Please show me directions

Tnks

johnfelipe commented 11 years ago

Hello, finally:

    'mongodb' => array(
        'scheme' => 'mongodb',
        'host'   => '127.0.0.1',
        'port'   => 27017,
        'database' => 'idp',
    ),
);

finally2

finally

Tnks for you support

jorgelzpz commented 11 years ago

So the problem was that the database parameter was missing. Glad you found out that!