/php/lib/forms/signature_simulator_form.class.php
PHP | 71 lines | 51 code | 15 blank | 5 comment | 0 complexity | 914e4f081d03bab3f259af7c60f5cd5a MD5 | raw file
- <?php
- namespace webservice;
- use common\libraries\FormValidator;
- use common\libraries\Translation;
- use common\libraries\Utilities;
- use common\libraries\ChamiloWebserviceAuthentication;
- /**
- * Form for signature simulator
- * @package webservice.php.lib.forms
- * @author Alexander Van Paemel
- */
- class SignatureSimulatorForm extends FormValidator
- {
- private $user;
-
- function __construct($user, $action)
- {
- parent :: __construct('signature_properties', 'post', $action);
- $this->user = $user;
-
- $this->build_form();
- $this->setDefaults();
- }
-
- function build_form()
- {
- $this->addElement('static', 'username', Translation :: get('Username'));
- $this->addElement('static', 'password', Translation :: get('Password'));
- $this->addElement('static', 'security_token', Translation :: get('SecurityToken'));
-
- $this->addElement('text', 'nonce', Translation :: get('Nonce'));
- $this->addRule('nonce', Translation :: get('ThisFieldIsRequired', null, Utilities :: COMMON_LIBRARIES), 'required');
-
- $this->addElement('text', 'timestamp', Translation :: get('Timestamp'));
- $this->addRule('timestamp', Translation :: get('ThisFieldIsRequired', null, Utilities :: COMMON_LIBRARIES), 'required');
-
- $this->addElement('text', 'ip', Translation :: get('IP'));
- $this->addRule('ip', Translation :: get('ThisFieldIsRequired', null, Utilities :: COMMON_LIBRARIES), 'required');
-
- $buttons[] = $this->createElement('style_submit_button', 'submit', Translation :: get('Submit', null, Utilities :: COMMON_LIBRARIES), array('class' => 'positive update'));
- $buttons[] = $this->createElement('style_reset_button', 'reset', Translation :: get('Reset', null, Utilities :: COMMON_LIBRARIES), array('class' => 'normal empty'));
- $this->addGroup($buttons, 'buttons', null, ' ', false);
- }
-
- function setDefaults($defaults = array ())
- {
- $defaults['username'] = $this->user->get_username();
- $defaults['password'] = '*****';
- $defaults['security_token'] = $this->user->get_security_token();
- $defaults['nonce'] = uniqid();
- $defaults['ip'] = $_SERVER[ChamiloWebserviceAuthentication :: PARAM_REMOTE_ADDRESS];
- $defaults['timestamp'] = time();
- parent :: setDefaults($defaults);
- }
-
- function calculate_signature()
- {
- $values = $this->exportValues();
-
- $base_text = $this->user->get_username() . '&' . $values['nonce'] . '&' . $this->user->get_password()
- . '&' . $values['timestamp'] . '&' . $values['ip'];
-
- $secret_key = $this->user->get_security_token();
- return hash_hmac(ChamiloWebserviceAuthentication :: PARAM_HASH_ALGORITHM, $base_text, $secret_key);
- }
- }
- ?>