Esempio n. 1
0
 public function __construct($key = null, $secret = null, $redirect_uri = null)
 {
     $this->key = $key ? $key : Helper_Config::get('instagram_oauth_key');
     $this->secret = $secret ? $secret : Helper_Config::get('instagram_oauth_secret');
     if (!$redirect_uri) {
         $redirect_uri = WM_Router::create(JO_Request::getInstance()->getBaseUrl() . '?controller=modules_instagram_login');
     }
     parent::__construct(array('client_id' => $this->key, 'client_secret' => $this->secret, 'grant_type' => 'authorization_code', 'redirect_uri' => $redirect_uri));
 }
Esempio n. 2
0
 public function instagram_connectAction()
 {
     $request = $this->getRequest();
     if (!JO_Session::get('user[user_id]')) {
         if (!$request->isXmlHttpRequest()) {
             $this->redirect(WM_Router::create($this->getRequest()->getBaseUrl() . '?controller=settings'));
         }
         exit('[]');
     }
     if ($request->getQuery('state') && $request->getQuery('state') == JO_Session::get('state')) {
         $state = JO_Session::get('state');
     } else {
         $state = md5(uniqid(rand(), TRUE));
         JO_Session::set('state', $state);
     }
     $config = array('client_id' => JO_Registry::get('oauth_in_key'), 'client_secret' => JO_Registry::get('oauth_in_secret'), 'grant_type' => 'authorization_code', 'redirect_uri' => WM_Router::create($this->getRequest()->getBaseUrl() . '?controller=instagram&next=' . urlencode(WM_Router::create($request->getBaseUrl() . '?controller=settings&action=instagram_connect&state=' . $state))));
     $instagram = new WM_Instagram($config);
     $InstagramAccessToken = $instagram->getAccessToken();
     $user_data = JO_Json::decode($instagram->getUser(), true);
     if (isset($user_data['meta']['code']) && $user_data['meta']['code'] == 200) {
         JO_Session::set('InstagramAccessToken', $InstagramAccessToken);
     } elseif ($InstagramAccessToken) {
         JO_Session::set('InstagramAccessToken', $InstagramAccessToken);
         $instagram->setAccessToken($InstagramAccessToken);
     } elseif (JO_Session::get('InstagramAccessToken')) {
         $instagram->setAccessToken(JO_Session::get('InstagramAccessToken'));
     } elseif (JO_Session::get('user[instagram_token]')) {
         JO_Session::set('InstagramAccessToken', JO_Session::get('user[instagram_token]'));
         $instagram->setAccessToken(JO_Session::get('user[instagram_token]'));
     }
     if (!isset($user_data['meta']['code']) || $user_data['meta']['code'] != 200) {
         $user_data = JO_Json::decode($instagram->getUser(), true);
     }
     if ($request->getQuery('state') && $request->getQuery('state') == JO_Session::get('state') && isset($user_data['meta']['code']) && $user_data['meta']['code'] == 200) {
         JO_Session::clear('state');
         Model_Users::edit2(JO_Session::get('user[user_id]'), array('instagram_connect' => '1', 'instagram_profile_id' => $user_data['data']['id'], 'instagram_token' => (string) JO_Session::get('InstagramAccessToken')));
         $this->redirect(WM_Router::create($this->getRequest()->getBaseUrl() . '?controller=settings'));
         exit;
     }
     if ($request->getPost('instagram_connect') == 'on') {
         if (isset($user_data['meta']['code']) && $user_data['meta']['code'] == 200) {
             Model_Users::edit2(JO_Session::get('user[user_id]'), array('instagram_connect' => '1', 'instagram_profile_id' => $user_data['data']['id'], 'instagram_token' => (string) JO_Session::get('InstagramAccessToken')));
         } else {
             JO_Session::set('InstagramAccessToken', false);
             JO_Session::set('user[instagram_token]', array_merge((array) JO_Session::get('user'), array('instagram_token' => null)));
             $this->view->login = WM_Router::create($this->getRequest()->getBaseUrl() . '?controller=instagram&next=' . urlencode(WM_Router::create($request->getBaseUrl() . '?controller=settings&action=instagram_connect&state=' . $state)));
         }
     } else {
         Model_Users::edit2(JO_Session::get('user[user_id]'), array('instagram_connect' => '0', 'instagram_profile_id' => '0', 'instagram_token' => ''));
     }
     if (!$this->view->login) {
         $ud = Model_Users::getUser(JO_Session::get('user[user_id]'), true);
         if ($ud) {
             $this->view->connected = $ud['instagram_connect'] ? 'on' : 'off';
         } else {
             JO_Session::set('InstagramAccessToken', false);
             JO_Session::set('user[instagram_token]', array_merge((array) JO_Session::get('user'), array('instagram_token' => null)));
             $this->view->connected = 'off';
         }
     }
     if (!$request->isXmlHttpRequest()) {
         $this->redirect(WM_Router::create($this->getRequest()->getBaseUrl() . '?controller=settings'));
         exit;
     }
     echo $this->renderScript('json');
 }
Esempio n. 3
0
 public function registerAction()
 {
     $request = $this->getRequest();
     if (JO_Session::get('user[user_id]')) {
         $this->redirect(WM_Router::create($request->getBaseUrl() . '?controller=users&action=profile&user_id=' . JO_Session::get('user[user_id]')));
     }
     $this->initInstagram(array('redirect_uri' => WM_Router::create($request->getBaseUrl() . '?controller=instagram&next=' . urlencode(WM_Router::create($request->getBaseUrl() . '?controller=instagram&action=register')))));
     if ($this->user_data) {
         $this->loginInit($this->user_data['id']);
         $this->view->baseUrl = $request->getBaseUrl();
         if ($request->issetPost('email')) {
             $this->view->email = $request->getPost('email');
         } else {
             if (isset($this->user_data['email'])) {
                 $this->view->email = $this->user_data['email'];
             } else {
                 $this->view->email = '';
             }
         }
         if ($request->issetPost('username')) {
             $this->view->username = $request->getPost('username');
         } else {
             if (isset($this->user_data['username'])) {
                 $this->view->username = $this->user_data['username'];
             } else {
                 $this->view->username = '';
             }
         }
         $this->view->profile_picture = $this->user_data['profile_picture'];
         $this->view->password = $request->getPost('password');
         $this->view->error = false;
         if ($request->isPost()) {
             $validate = new Helper_Validate();
             $validate->_set_rules($request->getPost('username'), $this->translate('Username'), 'not_empty;min_length[3];max_length[100];username');
             $validate->_set_rules($request->getPost('email'), $this->translate('Email'), 'not_empty;min_length[5];max_length[100];email');
             $validate->_set_rules($request->getPost('password'), $this->translate('Password'), 'not_empty;min_length[4];max_length[30]');
             if ($validate->_valid_form()) {
                 if (Model_Users::isExistEmail($request->getPost('email'))) {
                     $validate->_set_form_errors($this->translate('This e-mail address is already used'));
                     $validate->_set_valid_form(false);
                 }
                 if (Model_Users::isExistUsername($request->getPost('username'))) {
                     $validate->_set_form_errors($this->translate('This username is already used'));
                     $validate->_set_valid_form(false);
                 }
             }
             if ($validate->_valid_form()) {
                 $image = '';
                 if (@getimagesize($this->user_data['profile_picture'])) {
                     $image = $this->user_data['profile_picture'];
                 }
                 $name_arr = explode(' ', $this->user_data['full_name']);
                 $first_name = array_shift($name_arr);
                 $last_name = implode(' ', $name_arr);
                 $result = Model_Users::create(array('instagram_profile_id' => $this->user_data['id'], 'gender' => isset($this->user_data['gender']) ? $this->user_data['gender'] : '', 'avatar' => $image ? $image : '', 'website' => isset($this->user_data['website']) ? $this->user_data['website'] : '', 'username' => $request->getPost('username'), 'firstname' => $first_name, 'lastname' => $last_name, 'email' => $request->getPost('email'), 'password' => $request->getPost('password'), 'instagram_connect' => 1, 'instagram_token' => $this->instagram->getAccessToken()));
                 if ($result) {
                     $this->loginInit($this->user_data['id']);
                 } else {
                     $this->view->error = $this->translate('There was a problem with the record. Please try again!');
                 }
             } else {
                 $this->view->error = $validate->_get_error_messages();
             }
         }
         if ($this->getLayout()->meta_title) {
             $this->getLayout()->placeholder('title', $this->getLayout()->meta_title . ' - ' . JO_Registry::get('meta_title'));
         } else {
             $this->getLayout()->placeholder('title', JO_Registry::get('meta_title'));
         }
         if ($this->getLayout()->meta_description) {
             $this->getLayout()->placeholder('description', $this->getLayout()->meta_description);
         } else {
             $this->getLayout()->placeholder('description', JO_Registry::get('meta_description'));
         }
         if ($this->getLayout()->meta_keywords) {
             $this->getLayout()->placeholder('keywords', $this->getLayout()->meta_keywords);
         } else {
             $this->getLayout()->placeholder('keywords', JO_Registry::get('meta_keywords'));
         }
         $this->getLayout()->placeholder('site_name', JO_Registry::get('site_name'));
         $this->view->site_name = JO_Registry::get('site_name');
         $this->view->meta_title = JO_Registry::get('meta_title');
         $this->getLayout()->placeholder('google_analytics', html_entity_decode(JO_Registry::get('google_analytics'), ENT_QUOTES, 'utf-8'));
         $this->view->baseUrl = $request->getBaseUrl();
         $this->view->site_logo = $request->getBaseUrl() . 'data/images/logo.png';
         if (JO_Registry::get('site_logo') && file_exists(BASE_PATH . '/uploads' . JO_Registry::get('site_logo'))) {
             $this->view->site_logo = $request->getBaseUrl() . 'uploads' . JO_Registry::get('site_logo');
         }
         $this->view->login = WM_Router::create($request->getBaseUrl() . '?controller=users&action=login');
         $this->view->check_username = WM_Router::create($request->getBaseUrl() . '?controller=instagram&action=check_username');
         $this->view->check_email = WM_Router::create($request->getBaseUrl() . '?controller=instagram&action=check_email');
         $this->view->children = array('header_part' => 'layout/header_part', 'footer_part' => 'layout/footer_part');
     } else {
         if (JO_Session::get('check_login_instagram')) {
             $this->setViewChange('error_login');
             $page_login_trouble = Model_Pages::getPage(JO_Registry::get('page_login_trouble'));
             if ($page_login_trouble) {
                 $this->view->page_login_trouble = array('title' => $page_login_trouble['title'], 'href' => WM_Router::create($this->getRequest()->getBaseUrl() . '?controller=pages&action=read&page_id=' . $page_login_trouble['page_id']));
             }
             $this->view->children = array('header_part' => 'layout/header_part', 'footer_part' => 'layout/footer_part');
             JO_Session::clear('check_login_instagram');
         } else {
             JO_Session::set('check_login_instagram', 1);
             $this->instagram->openAuthorizationUrl();
         }
     }
 }