Exemplo n.º 1
0
 /**
  * Affichage de la vue par défaut
  * @see JView::display()
  */
 function display($tpl = null)
 {
     //Chargement des scripts
     $document = JFactory::getDocument();
     $document->addScript('//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js');
     $document->addScript(JUri::root() . 'media/com_owncloudconnect/js/owncloudconnect.js');
     //On récupère les variables de session
     $session = JFactory::getSession();
     //On récupère le nom du HOST pour connexion sécurisée via iFrame
     $this->ref = urlencode(OwncloudconnectHelper::stringEncrypt($_SERVER['HTTP_HOST']));
     //On récupère l'adresse de la plateforme ownCloud
     $param = JComponentHelper::getParams('com_owncloudconnect');
     $this->owncloud_platformurl = $param->get('owncloud_platformurl');
     //On va chercher si l'utilisateur connecté est enregistré dans la table du composant
     $this->oc_user = $this->get('Utilisateur');
     //Si l'utilisateur peut se connecter à ownCloud, on regarde si d'autres identifiants sont définis, sinon l'utilisateur accède à la plateforme via ses ident en session
     if (!isset($this->oc_user->forbid_public) || $this->oc_user->forbid_public == 0) {
         if ($this->oc_user && $this->oc_user->oc_login && $this->oc_user->oc_password) {
             $this->login = urlencode(OwncloudconnectHelper::stringEncrypt(json_encode(array('login' => $this->oc_user->oc_login, 'pass' => OwncloudconnectHelper::stringDecrypt($this->oc_user->oc_password)))));
         } else {
             $this->login = urlencode(OwncloudconnectHelper::stringEncrypt(json_encode(array('login' => $session->get('oc_user'), 'pass' => $session->get('oc_password')))));
         }
     }
     // Check for errors.
     if (count($errors = $this->get('Errors'))) {
         JError::raiseError(500, implode('<br />', $errors));
         return false;
     }
     parent::display($tpl);
 }
Exemplo n.º 2
0
 /**
  * Enregistre les paramètres de connexion pour un utilisateur
  * @param string $id
  */
 public function saveUtilisateur($user_id, $user)
 {
     $login = !empty($user['OC']['login']) ? $user['OC']['login'] : '';
     $password = !empty($user['OC']['password']) ? OwncloudconnectHelper::stringEncrypt($user['OC']['password']) : '';
     $data_user = new stdClass();
     // Create and populate an object.
     $db = JFactory::getDBO();
     //On check si l'utilsateur est dans la table Owncloud
     $query = $db->getQuery(true);
     $query->select('*')->from($db->quoteName('#__owncloudconnect_utilisateurs', 'a'))->where($db->quoteName('a.user_id') . ' = ' . $user_id . '');
     // Reset the query using our newly populated query object.
     $db->setQuery($query);
     $oc_user = $db->loadObject();
     //var_dump($oc_user);
     if (isset($user['OC']['login']) && $user['OC']['login'] && isset($user['OC']['password']) && $user['OC']['login']) {
         if ($_POST['data']['OC']['password'] != $_POST['data']['OC']['password_confirm']) {
             $result = false;
         } else {
             //Si l'utilisateur n'a jamais saisi d'identifiants, on insère ses identifiants en BDD sinon on met à jour
             if (!$oc_user) {
                 $data_user->user_id = $user_id;
                 $data_user->oc_login = $login;
                 $data_user->oc_password = $password;
                 $data_user->forbid_admin = 0;
                 $data_user->created = date('Y-m-d H:i:s');
                 $data_user->modified = date('Y-m-d H:i:s');
                 // Insert the object into the user profile table.
                 $result = JFactory::getDbo()->insertObject('#__owncloudconnect_utilisateurs', $data_user);
             } else {
                 $data_user->user_id = $user_id;
                 $data_user->oc_login = $login;
                 $data_user->oc_password = $password;
                 $data_user->forbid_admin = 0;
                 $data_user->modified = date('Y-m-d H:i:s');
                 // Update their details in the users table using id as the primary key.
                 $result = JFactory::getDbo()->updateObject('#__owncloudconnect_utilisateurs', $data_user, 'user_id');
             }
             $this->message = '<div class="updated below-h2" id="message"><p>Vos identifiants ont bien été enregistrés.</p></div>';
         }
     } else {
         //Si utilisateur en BDD et identifiants non définis par admin alors on supprime ses identifiants
         if ($oc_user && $oc_user->admin == 0) {
             $query = $db->getQuery(true);
             // delete all custom keys for user 1001.
             $conditions = array($db->quoteName('user_id') . ' = ' . $user_id . '');
             $query->delete($db->quoteName('#__owncloudconnect_utilisateurs'));
             $query->where($conditions);
             $db->setQuery($query);
             $result = $db->query();
         } else {
             $result = true;
         }
     }
     return $result;
 }