Egyedi login submit

makgab képe

Üdv!

Az egyedi login_form-on megadott adatot szeretném vizsgálni.

A mymodule_form_alter()-ben figyelem: ($form_id=='user_login')

Ide kellene egy saját submit függvény? Pl.:
$form['#submit'][] = 'mymodule_mysubmit_handler';

Ha jól értem, akkor ez hozzáfűzi a mymodule_mysubmit_handler() fv-t, azaz szintén lefut login-kor?

Drupal verzió: 
makgab képe

Működik is.
Egy kérdés maradt csak ezzel kapcsolatban. :)
A mymodule_mysubmit_handler() fv-ben ha ki szeretném léptetni a usert egy hibaüzenettel, akkor mi lenne a szép megoldás?

function mymodule_mysubmit_handler(&$form, &$form_state) {
  // ...
  if ( ... ) {
	drupal_set_message(t('Error ....!'), 'error');
	// ide kellene logout
	}
 
}

Ezek nem léptetik ki a usert (hibaüzenet megjelenik, de nem lépteti ki.):
$form_state['redirect'] = 'user/logout';
drupal_goto( 'user/logout' );

0
0
dj képe

makgab képe

A form_validate segített:

...
function mymodule_form_alter(&$form, &$form_state, $form_id) {
 
  // custom login form
  if ($form_id=='user_login') {
  ...
  $form['#validate'] = user_login_default_validators();
  $form['#validate'][] = 'mymodule_login_validate';
 
  ...
}
 
 
 
function mymodule_login_validate(&$form, &$form_state) {
  // check...
  if ( ... ) {
	  form_set_error('', t('No permission...!') );
	} // if
}

Szépen működik. :)

0
0