예제 #1
1
 public function preDispatch()
 {
     parent::preDispatch();
     // do something before the action is called //-> see Zend Framework
     \Pimcore\Tool\Authentication::authenticateSession();
     $adminSession = new \Zend_Session_Namespace("pimcore_admin");
     if (!$adminSession->user instanceof \User) {
         $auth = \Zend_Auth::getInstance();
         if ($auth->hasIdentity()) {
             // We have a login session (user is logged in)
             $cached_person = $auth->getIdentity();
             $id = $cached_person->getId();
             $this->view->person = $this->person = \Object\Person::getById($id);
         } else {
             $this->forward("form-login", "login");
         }
     } else {
         $this->view->person = $this->person = \Object\Person::getById(590);
     }
     if ($this->person) {
         $this->view->user = $this->user = $this->person;
         $this->view->societe = $this->societe = $this->person->getSociete();
         $this->view->locations = $this->locations = $this->societe->getLocations();
         $this->storeLocation();
     }
 }
예제 #2
0
 public function getPersons()
 {
     $result = array();
     if ($this->model->getId() > 0) {
         $sql = sprintf(" SELECT distinct r.src_id FROM `object_relations_4` r join object_query_4 o on o.oo_id=r.src_id WHERE r.`dest_id` = '%d' AND r.`fieldname` = 'positions' ", $this->model->getId());
         $data = $this->db->FetchAll($sql);
     }
     foreach ($data as $key => $row) {
         $loc = \Object\Person::getById($row["src_id"]);
         if ($loc instanceof \Object\Person) {
             $result[] = $loc;
         }
     }
     return $result;
 }
예제 #3
0
 public function replace($data = array())
 {
     try {
         if ($this->model->getId() > 0) {
             $object = $this->model;
         } elseif ($data['id'] > 0 and $data['id'] != "") {
             $object = \Object\Person::getById($data['id']);
         } elseif ($data['o_id'] > 0 and $data['o_id'] != "") {
             $object = \Object\Person::getById($data['o_id']);
         } else {
             $object = $this->model;
             $date = new \Zend_Date();
             $object->setCreationDate($date->get());
             //todo
             $object->setUserOwner(1);
             $object->setUserModification(1);
             if (method_exists($object, "setAvatar")) {
                 $object->setAvatar($this->getDefaultImage());
             }
             $object->setPublished(1);
         }
         if ($object instanceof \Object\Person) {
             $object->setValues($data);
             $date = new \Zend_Date();
             $object->setModificationDate($date);
             if (!$object->getO_key()) {
                 $folder = $this->getFolderRoot();
                 $object->setParent($folder);
                 if (!method_exists($object, getEmail)) {
                     $key1 = $this->model->getClassName();
                 } else {
                     $key1 = $object->getEmail() ? $object->getEmail() : $this->model->getClassName();
                 }
                 $numero = $date->get(\Zend_Date::TIMESTAMP);
                 $object_key = $this->correctClassname($key1) . '-' . $numero;
                 $object->setO_key(strtolower($object_key));
             }
             return $object;
         } else {
             \Logger::warning("Erreur :  Classe de l'objet erronnée");
             return false;
         }
     } catch (\Exception $e) {
         \Logger::warning($e->getMessage());
         return false;
     }
 }
예제 #4
0
 public function getPersons()
 {
     $result = array();
     try {
         if ($this->model->getId() > 0) {
             $sql = sprintf(" SELECT distinct r.src_id FROM `object_relations_4` r join object_query_4 o on o.oo_id=r.src_id WHERE r.`dest_id` = '%d' AND r.`fieldname` = 'societe' ", $this->model->getId());
             $data = $this->db->FetchAll($sql);
         }
         foreach ($data as $key => $row) {
             $loc = \Object\Person::getById($row["src_id"]);
             if ($loc instanceof \Object\Person) {
                 $result[] = $loc;
             }
         }
     } catch (\Exception $e) {
         // something went wrong: eg. limit exceeded, wrong configuration, ...
         \Logger::err($e);
         echo $e->getMessage();
     }
     return $result;
 }
예제 #5
0
 public function personsListAction()
 {
     //get societe/location and serving
     $reponse = new Reponse();
     $societe = $this->societe;
     $persons = $societe->getPersons();
     //we check if we are in the Editor
     if ($_POST['action']) {
         //if REMOVE
         if ($_POST['action'] == "remove") {
             foreach ($_POST['id'] as $id) {
                 $person = Object_Person::getById($id, 1);
                 if ($person instanceof \Object\Person) {
                     $person->delete();
                 }
             }
             $reponse->message = 'TXT_RESERVATION_LIST';
             $reponse->success = true;
             $reponse->data = '';
         }
         //if EDIT
         if ($_POST['action'] == "edit") {
             $person = \Object\Person::getById($_POST['id']);
             if ($person instanceof Object_Person) {
                 $person->setFirstname($_POST['data']['firstname']);
                 $person->setLastname($_POST['data']['lastname']);
                 $person->setEmail($_POST['data']['email']);
                 $person->setPhone($_POST['data']['phone']);
                 $person->setPermits($_POST['data']['permits']);
                 $location = Object\Location::getById($_POST['data']['locationid'], 1);
                 $person->setLocation($location);
                 $person->setPassword(md5($_POST['data']['password']));
                 $person->save();
             }
             $data = $_POST['data'];
             $data['DT_RowId'] = "row_" . $_POST['data']['id'];
             $reponse->message = 'TXT_RESERVATION_LIST';
             $reponse->success = true;
             $reponse->row = $data;
         }
         //if CREATE
         if ($_POST['action'] == "create") {
             $row['firstname'] = $_POST['data']['firstname'];
             $row['lastname'] = $_POST['data']['lastname'];
             $row['email'] = $_POST['data']['email'];
             $row['phone'] = $_POST['data']['phone'];
             $row['permits'] = $_POST['data']['permits'];
             $location = Object\Location::getById($_POST['data']['locationid'], 1);
             $row['location'] = $location;
             $row['password'] = md5($_POST['data']['password']);
             $current = Object\Person::getByEmail($row['email'], 1);
             if ($current instanceof Object\Person) {
                 $error['name'] = "email";
                 $error['status'] = "Email already exists";
                 $reponse->fieldErrors = array($error);
             } else {
                 $result = $societe->createPerson($row);
                 if ($result instanceof \Object\Person) {
                     $row['DT_RowId'] = $result->getId();
                     $row['id'] = $result->getId();
                     $row['locationid'] = $result->getLocation()->getId();
                     $row['locationname'] = $result->getLocation()->getName();
                     $reponse->success = true;
                     $reponse->message = "TXT_CREATE_OK";
                     $reponse->row = $row;
                     $reponse->debug = $data;
                 } else {
                     $reponse->success = false;
                     $reponse->message = "TXT_CREATE_ERROR";
                     $reponse->row = $result;
                     $reponse->debug = $result;
                 }
             }
         }
     } else {
         $data = array();
         foreach ($persons as $key => $person) {
             $i++;
             $array = array();
             $array = $person->toArray();
             $array['id'] = $person->getId();
             $array['DT_RowId'] = $person->getId();
             array_push($data, $array);
         }
         $reponse->message = 'TXT_RESERVATION_LIST';
         $reponse->success = true;
         $reponse->data = $data;
     }
     $this->render($reponse);
 }
예제 #6
0
 public function setPositionAction()
 {
     $reponse = new Reponse();
     $personId = $this->getParam("personId");
     $positionId = $this->getParam("positionId");
     $value = $this->getParam("value", 0);
     $person = \Object\Person::getById($personId);
     if ($person instanceof \Object\Person and $positionId > 0) {
         $person->setPosition($positionId, $value);
         $person->save();
         $reponse->data = $person->getPositions();
     }
     $reponse->message = 'TXT_PERSON_UPDATED';
     $reponse->success = true;
     $this->render($reponse);
 }
예제 #7
0
 /**
  * create
  */
 public function create()
 {
     $res = new Reponse();
     $data = $this->requete->params;
     if ($this->person) {
         $data['person'] = $this->person;
     } else {
         $person = \Object\Person::getById(248);
     }
     $rec = new \Object\Reservation();
     $formattedData = \Object\Reservation::formatData($data);
     $result = $rec->updateData($formattedData);
     if ($result instanceof \Object\Reservation) {
         $res->success = true;
         $res->message = "TXT_CREATE_OK";
         $res->data = $result->toArray();
         $res->debug = $formattedData;
     } else {
         $res->message = "TXT_CREATE_ERROR";
         $res->data = $result;
         $res->debug = $formattedData;
     }
     return $res;
 }
예제 #8
0
 public function mynewpassAction()
 {
     $email = $this->getParam('email');
     $person = \Object\Person::getByEmail($email, 1);
     if ($person instanceof \Object\Person) {
         $realpass = $person->getPassword();
         $userpass = $this->getParam('password');
         if ($userpass == $realpass) {
             $newPassword = $this->getParam('newpassword');
             if ($newPassword) {
                 $person->setPassword($newPassword);
                 $person->save();
             }
             $this->view->person = $this->person = $person;
             $this->forward("login", "login", null, array("email" => $email, "password" => $newPassword, "error" => 'TXT_PASSWORD_CHANGED_MESSAGE'));
         } else {
             $this->forward("form-login", "login", null, array("email" => $email, "password" => $userpass, "error" => 'TXT_PASSWORD_INCORRECT'));
         }
     } else {
         $this->forward("form-login", "login", null, array("email" => $email, "error" => 'TXT_EMAIL_UNKNOWN'));
     }
 }