Campustream 1.0
A social network MQP for WPI
application/controllers/facebook.php
Go to the documentation of this file.
00001 <?
00002 
00007 class Facebook_Controller extends Controller {
00008         public $enable_session = true;
00009         
00014         public function authorize() {
00015                 sess::require_login();
00016                 $active_user = sess::getUser();
00017                 
00018                 $facebook = new Facebook(array(
00019                         'appId' => FACEBOOK_APP_ID,
00020                         'secret' => FACEBOOK_SECRET,
00021                         'cookie' => true
00022                 ));
00023                 
00024                 $session = $facebook->getSession();
00025 
00026                 $user = null;
00027                 if ($session) {
00028                         try {
00029                                 $user = $facebook->api('/me');
00030                         } catch (FacebookApiException $e) {
00031                                 Logger::debug("FB Error: {$e->getMessage()}");
00032                         }
00033                 }
00034 
00035                 $fbuser = new Userfacebook_Model();
00036                 $fbuser->user_id = $active_user->id;
00037                 $fbuser->fb_id = $user['id'];
00038                 $fbuser->username = $facebook->getUser();
00039                 $fbuser->access_token = $facebook->getAccessToken();
00040                 $fbuser->name = $user['name'];
00041                 $fbuser->link = $user['link'];
00042                 $fbuser->about = $user['about'];
00043                 $fbuser->gender = $user['gender'];
00044                 $fbuser->import_enabled = 0;
00045                 $fbuser->export_enabled = 0;
00046                 $fbuser->last_status_id = 0;
00047                 $fbuser->save();
00048                 
00049                 Hub::redirect('/settings/services');
00050         }
00051         
00056         public function deauthorize() {
00057                 sess::require_login();
00058                 $active_user = sess::getUser();
00059 
00060                 if (!isset($_GET['s']) || $_GET['s'] != md5('zOmg4tehcoolz!' . $active_user->username) || !$active_user->has_facebook()) {
00061                         return Hub::redirect('/settings/services');
00062                 }
00063 
00064                 $fbuser = ActiveRecord::find('Userfacebook_Model', "SELECT * FROM userfacebook WHERE user_id = {$active_user->id} LIMIT 1");
00065                 
00066                 if ($fbuser->is_loaded()) {
00067                         $fbuser->delete();
00068                 }
00069                 
00070                 return Hub::redirect('/settings/services');
00071         }
00072 }