/**
  * @param  UserModel $user
  * @return UserModel
  */
 public function create(models\ModelAbstract $user)
 {
     if (!$user instanceof UserModel) {
         throw new InvalidArgumentException('Supplied data must be a user model');
     }
     // Generate a random password
     $password = $this->generatePassword();
     // Fetch password hashing resource
     $bootstrap = \Zend_Controller_Front::getInstance()->getParam('bootstrap');
     $phpass = $bootstrap->getResource('PHPass');
     // Store a hashed version of the password in the user profile
     $user->setPassword($phpass->hashPassword($password));
     // Set initial Last password change
     $user->setLastPasswordChange(time());
     // Set initial status
     $user->setStatus(UserModel::USER_STATUS_PENDING);
     parent::create($user);
     //Save password in lastUsedPasswords list
     UserMapper::getInstance()->insertLastUsedPasswords($user->id, array(sha1($password)));
     $token = $this->generateAndSaveActivationLink($user);
     try {
         $this->sendEmailWelcome($user, $password, $token);
     } catch (\Exception $e) {
         \App::log()->ERR('[mailto:' . $user->getEmail() . '] ' . $e->getMessage());
     }
     return $user;
 }
 /**
  * @param  Application\Model\OrgModelAbstract $org
  * @return Application\Model\OrgModelAbstract
  */
 public function create(ModelAbstract $org)
 {
     if ($org instanceof OrgMasterModel) {
         $org->setParentId(\App::config("orgSuperId"));
     }
     // Force initial status to Activated
     $org->setStatus(OrgModelAbstract::ORG_STATUS_ACTIVATED);
     return parent::create($org);
 }