use Cake\ORM\Table;
use Cake\Validation\Validator;
+/**
+ * For authentification
+ */
+use Cake\Auth\DefaultPasswordHasher;
+use Cake\Utility\Text;
+use Cake\Event\Event;
+
/**
* Users Model
*
$rules->add($rules->existsIn(['user_type_id'], 'UserTypes'));
return $rules;
}
+
+
+ /**
+ * Before save an user
+ * @param \App\Controller\Api\V1\Event $event
+ * @return boolean
+ */
+ public function beforeSave(Event $event)
+ {
+ $entity = $event->data['entity'];
+
+ if ($entity->isNew()) {
+ $hasher = new DefaultPasswordHasher();
+
+ // Generate an API 'token'
+ $entity->api_key_plain = sha1(Text::uuid());
+
+ // Bcrypt the token so BasicAuthenticate can check
+ // it during login.
+ $entity->api_key = $hasher->hash($entity->api_key_plain);
+ }
+ return true;
+ }
}