You are here

function regcode_dynamic_user in Registration codes 6.2

Implementation of hook_user().

1 call to regcode_dynamic_user()
regcode_voucher_validate in regcode_voucher/regcode_voucher.module
Validate handler

File

regcode_dynamic/regcode_dynamic.module, line 73
The dynamic code module creates codes on the fly as they are used.

Code

function regcode_dynamic_user($op, &$edit, &$account, $category = NULL) {
  switch ($op) {
    case 'validate':
      if ($category === 'account' && !empty($edit['regcode_code'])) {

        // Check this code isn't already a code
        $regcode = regcode_load(array(
          'code' => $edit['regcode_code'],
        ));
        if ($regcode !== FALSE) {
          return;
        }

        // Ensure this is a valid dynamic code
        $rules = regcode_dynamic_rules();
        $valid = FALSE;
        foreach ($rules as $rule) {
          $handler = regcode_dynamic_handlers($rule['handler']);
          $valid = call_user_func($handler['validator'], $edit['regcode_code'], $rule);
          if ($valid) {
            break;
          }
        }
        if (!$valid) {
          return;
        }

        // Create the code just in time for regcode to take over
        $code = new stdClass();
        $code->code = $edit['regcode_code'];
        $tags = $rule['terms'];
        regcode_save($code, $tags);
      }
      break;
  }
}