/** * 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); }
/** * 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; }