Exemple #1
0
 public function applications()
 {
     JRequest::setVar('view', 'applications');
     $mainframe = JFactory::getApplication();
     $apps = new Applications();
     // this is for auto installation method
     $redirectUri = JRequest::getVar('redirect_uri');
     $clientId = JRequest::getVar('client_id');
     $clientSecret = JRequest::getVar('client_secret');
     $deviceId = JRequest::getVar('deviceId');
     // if this is a request for grant/revoke
     if ($_POST && $deviceId) {
         switch (JRequest::getVar('deviceAction')) {
             case 'grant':
                 $apps->grantAccess($deviceId);
                 break;
             case 'revoke':
                 $apps->revokeAccess($deviceId);
                 break;
         }
     } else {
         if ($clientId && $clientSecret && $redirectUri) {
             header("Content-Type: application/json");
             header("Cache-Control: no-store");
             JRequest::setVar('installing', true);
             if ($_POST || JRequest::getVar('silent')) {
                 $model = OauthFactory::getModel('Application');
                 // use library for the OAuth to standardize
                 require_once JPATH_ROOT . DS . 'components' . DS . 'com_oauth' . DS . 'libraries' . DS . 'PDOOAuth2.inc';
                 $oauth = new PDOOAuth2();
                 if ($oauth->addClient($clientId, $clientSecret, $redirectUri)) {
                     $authData = array('client_id' => $clientId, 'response_type' => 'code', 'redirect_uri' => $redirectUri);
                     $oauth->finishClientAuthorization(true, $authData);
                     /* if this is a silent request, give a silent feedback */
                     if (JRequest::getVar('silent')) {
                         echo json_encode(array('success' => 'true'));
                         exit;
                     }
                     JRequest::setVar('authorize', true);
                     JRequest::setVar('appName', $clientId);
                     $mainframe->enqueueMessage(JText::_('COM_OAUTH_LABEL_APPLICATION_INSTALL'));
                 } else {
                     if (JRequest::getVar('silent')) {
                         echo json_encode(array('success' => false, 'error' => JText::_('COM_OAUTH_LABEL_FAILED_TO_REGISTER')));
                         exit;
                     }
                     $mainframe->enqueueMessage(JText::_('COM_OAUTH_LABEL_FAILED_TO_REGISTER'), 'Error');
                 }
             }
         }
     }
     parent::display();
 }