public function selectProfileFormAction()
 {
     $request = $this->getRequest();
     $form = new \Zend\Form\Form();
     $redirect = $this->params()->fromQuery("redirect", "");
     //load contact profile forms
     $arr_forms = $this->getContactsModel()->getContactProfileForm();
     //create radio button options
     foreach ($arr_forms as $key => $form_name) {
         $arr_element_value_options[$key] = $form_name;
     }
     //end foreach
     //add radio group to form
     $form->add(array("type" => "radio", "name" => "cpp_form_id", "options" => array("label" => "Please select the form you would like to use:", "value_options" => $arr_element_value_options)));
     //add remember option radio button
     $form->add(array('type' => 'checkbox', 'name' => 'remember_form', 'options' => array('label' => 'Remember my option', 'use_hidden_element' => true, 'checked_value' => '1', 'unchecked_value' => '0')));
     $form->add(array("name" => "submit", "attributes" => array("value" => "Submit"), "options" => array("ignore" => TRUE)));
     //check if local storage has been enabled
     $arr_config = $this->getServiceLocator()->get("config");
     if (!isset($arr_config["logged_in_user_settings"])) {
         $storage_disabled = TRUE;
     } elseif (isset($arr_config["logged_in_user_settings"]) && $arr_config["logged_in_user_settings"]["storage_enabled"] !== TRUE) {
         $storage_disabled = TRUE;
     }
     //end if
     if (isset($storage_disabled)) {
         $form->remove("remember_form");
     }
     //end if
     //load user session data
     $objUserStorage = FrontUserSession::getUserLocalStorageObject();
     if (is_numeric($objUserStorage->readUserNativePreferences()->cpp_form_id)) {
         $form->get("cpp_form_id")->setValue($objUserStorage->readUserNativePreferences()->cpp_form_id);
     }
     //end if
     if ($request->isPost()) {
         //validate form submitted
         $form->setData($request->getPost());
         if ($form->isValid()) {
             $arr_form_data = $form->getData();
             $form_id = $arr_form_data["cpp_form_id"];
             if (isset($arr_form_data["remember_form"]) && $arr_form_data["remember_form"] == 1) {
                 //persist user preference
                 if (is_object($objUserStorage)) {
                     $objUserStorage->setUserNativePreferences('cpp_form_id', $form_id);
                     $objUserData->cookie_data->cpp_form_id = $form_id;
                 }
                 //end if
             }
             //end if
             //check if redirect has been specified
             if ($redirect != "") {
                 //redirect received
                 return $this->redirect()->toUrl($redirect . "?fid={$form_id}");
             }
             //end if
             //redirect back to the contact edit screen with form id specified
             $url = $this->url()->fromRoute("front-contacts", array("action" => "create-contact"));
             //execute redirect
             $response = $this->getResponse();
             $response->getHeaders()->addHeaderLine('Location', $url . "?fid={$form_id}");
             $response->setStatusCode(302);
             return $response;
         }
         //end if
     }
     //end if
     return array("form" => $form, "redirect" => $redirect);
 }
 public function cliLogin($arr_data)
 {
     //create the request object
     $objApiRequest = $this->getApiRequestModel();
     //setup the object and specify the action
     $objApiRequest->setApiAction("user/authenticate");
     //set dummy data to allow request to go through
     $objApiRequest->setAPIKey($arr_data["api_key"]);
     $objApiRequest->setAPIUser($arr_data["uname"]);
     $objApiRequest->setAPIUserPword($arr_data["pword"]);
     //execute
     $objUser = $objApiRequest->performPOSTRequest(array("uname" => $arr_data["uname"], "pword" => $arr_data["pword"]))->getBody();
     //init user local storage
     $objUserStorage = \FrontUserLogin\Models\FrontUserSession::getUserLocalStorageObject();
     //save data to local storage
     if ($objUserStorage instanceof \FrontUsers\Storage\UserMySqlStorage) {
         $objUser->data->uname_secure = $this->getServiceLocator()->get("FrontCore\\Models\\Security\\CryptoModel")->sha1EncryptDecryptValue("encrypt", $arr_data["uname"], array());
         $objUser->data->pword_secure = $this->getServiceLocator()->get("FrontCore\\Models\\Security\\CryptoModel")->sha1EncryptDecryptValue("encrypt", md5($arr_data["pword"]), array());
         $objUser->data->profile_identifier_secure = $this->getServiceLocator()->get("FrontCore\\Models\\Security\\CryptoModel")->sha1EncryptDecryptValue("encrypt", $objUser->data->profile->profile_identifier, array());
         //read user data
         $objUserStorage->setUserData($objUser->data);
         $objUserEntity = $objUserStorage->readData("");
         //clear user settings
         $objUserStorage->clearUserSettings();
         //save data
         $objUserStorage->saveUserSettings(NULL);
     }
     //end if
     //create session for user
     $objUserSession = $this->getUserSessionContainer();
     $objUserSession->createUserSession($objUser->data);
     return $objUser;
 }
 public function userNativePreferencesAction()
 {
     //check if user is already logged in, if so, redirect to the home page
     if (FrontUserSession::isLoggedIn() === FALSE) {
         return $this->redirect()->toRoute("home");
     }
     //end if
     //set layout
     $this->layout("layout/layout");
     //check if local storage has been enabled
     $arr_config = $this->getServiceLocator()->get("config");
     if (!isset($arr_config["logged_in_user_settings"])) {
         $storage_disabled = TRUE;
     } elseif (isset($arr_config["logged_in_user_settings"]) && $arr_config["logged_in_user_settings"]["storage_enabled"] !== TRUE) {
         $storage_disabled = TRUE;
     }
     //end if
     if (isset($storage_disabled)) {
         $this->flashMessenger()->addInfoMessage("User preferences cannot be saved. Service is not enabled");
         return $this->redirect()->toRoute("home");
     }
     //end if
     //load form
     $form = $this->getUserLoginModel()->getUserNativePreferencesForm($this);
     //load user preferences
     $objUserData = FrontUserSession::getUserLocalStorageObject();
     if (is_object($objUserData) && is_object($objUserData->readUserNativePreferences())) {
         foreach ($objUserData->readUserNativePreferences() as $key => $value) {
             if ($form->has($key)) {
                 $form->get($key)->setValue($value);
             }
             //end if
         }
         //end foreach
     }
     //end if
     $request = $this->getRequest();
     if ($request->isPost()) {
         $form->setData($request->getPost());
         if ($form->isValid()) {
             try {
                 $arr_data = (array) $form->getData();
                 $objUserData->setUserNativePreferences((object) $arr_data);
                 $this->flashMessenger()->addSuccessMessage("Preferences saved");
             } catch (\Exception $e) {
                 $this->flashMessenger()->addErrorMessage($e->getMessage);
             }
             //end catch
         }
         //end if
     }
     //end if
     return array("form" => $form);
 }