module SharkApps::InstanceMethods
Public Instance Methods
check_admin()
click to toggle source
# File lib/sharkapps.rb, line 108 def check_admin #check that we have a Facebook user. if not, redirect. @oauth = Koala::Facebook::OAuth.new(Facebooker2.app_id, Facebooker2.secret) #returning from the oauth server if params[:code] and session[:access_token].nil? @access_token = @oauth.get_access_token(params[:code], :redirect_uri => session[:redirect_uri]) session[:redirect_uri] = nil session[:access_token] = @access_token end #no access token stored - do a redirect unless session[:access_token] session[:redirect_uri] = request.url redirect_to @oauth.url_for_oauth_code(:permissions => "publish_stream, manage_pages, email", :redirect_uri => request.url) and return end #validate that the access token that we have is good. if not, request a new one. begin fb = current_fb_user rescue Exception session[:redirect_uri] = request.url session[:access_token] = nil redirect_to @oauth.url_for_oauth_code(:permissions => "publish_stream, manage_pages, email", :redirect_uri => request.url) and return end #we have an access token, we can do the is_admin check now unless session[:access_token].nil? redirect_to not_authorized_url(:id => @account.acc_hash) unless is_admin end end
current_fb_user()
click to toggle source
# File lib/sharkapps.rb, line 176 def current_fb_user return @current_fb_user if @current_fb_user @current_fb_user = Koala::Facebook::API.new(session[:access_token]).get_object("me") if session[:access_token] @current_fb_user end
is_admin()
click to toggle source
# File lib/sharkapps.rb, line 140 def is_admin return true if SharkApps.debug_mode if fb_load_facebook_params['page'] fb_load_facebook_params['page']['admin'] else #go by the facebook user ID and make an API call. might need to store it in the session sym = ("auth_admin_" + @account.fbid).to_sym puts "symbol: #{sym}" puts "symbol value: #{session[sym]}" puts "symbol checking for false: #{session[sym] == false}" need_check = (session[sym].nil? or session[sym] == false) puts "need check: = #{need_check}" if need_check #need_check return false if current_fb_user.nil? session[sym] = AppformaAccount.check_admin_authorized(@account, current_fb_user['id']) end return session[sym] end end
set_tab_current_account()
click to toggle source
# File lib/sharkapps.rb, line 88 def set_tab_current_account if params[:wib_fbid] @account = Account.find_or_create_by_fbid(params[:wib_fbid]) @isliked = true @external = true @wibiya_mode = true else #hack for fbml temp = fb_load_facebook_params page_id = temp["page"]["id"] @account = Account.find_or_create_by_fbid(page_id) #set the default locale if supported, and if the account doesn't have a locale set if @account.respond_to? :locale and @account.locale.blank? @account.locale = "il" @account.save end @isliked = temp["page"]["liked"] end end