Exemplo n.º 1
0
 public function add()
 {
     // check to see if there is an LDAP connection for this environment
     //
     $ldapConnectionConfig = Config::get('ldap.connections.' . App::environment());
     if ($ldapConnectionConfig) {
         // use LDAP
         //
         LDAP::add($this);
     } else {
         // use SQL / Eloquent
         //
         $this->save();
     }
     // check for promo code information
     //
     $promoCodeId = null;
     if (Input::has('promo')) {
         $pdo = DB::connection('mysql')->getPdo();
         $sth = $pdo->prepare('SELECT * FROM project.promo_code WHERE promo_code = :promo AND expiration_date > NOW()');
         $sth->execute(array(':promo' => Input::get('promo')));
         $result = $sth->fetchAll(PDO::FETCH_ASSOC);
         $promoCodeId = $result != false && sizeof($result) > 0 ? $result[0]['promo_code_id'] : null;
     }
     // create new user account
     //
     $userAccount = new UserAccount(array('ldap_profile_update_date' => gmdate('Y-m-d H:i:s'), 'user_uid' => $this->user_uid, 'promo_code_id' => $promoCodeId, 'enabled_flag' => 1, 'owner_flag' => 0, 'admin_flag' => 0, 'email_verified_flag' => 0));
     $userAccount->save();
     // create linked account
     //
     if (Input::has('user_external_id') && Input::has('linked_account_provider_code')) {
         $linkedAccount = new LinkedAccount(array('user_external_id' => Input::get('user_external_id'), 'linked_account_provider_code' => Input::get('linked_account_provider_code'), 'enabled_flag' => 1, 'user_uid' => $this->user_uid, 'create_date' => gmdate('Y-m-d H:i:s')));
         $linkedAccount->save();
         $userEvent = new UserEvent(array('user_uid' => $this->user_uid, 'event_type' => 'linkedAccountCreated', 'value' => json_encode(array('linked_account_provider_code' => 'github', 'user_external_id' => $linkedAccount->user_external_id, 'user_ip' => $_SERVER['REMOTE_ADDR']))));
         $userEvent->save();
     }
     return $this;
 }