Sha256: c022b0eca8ef9ecc521b2dd64fd95710e1357c152515233e14515edf5cb4aaf7

Contents?: true

Size: 1.6 KB

Versions: 1

Compression:

Stored size: 1.6 KB

Contents

module OnlinegamesInfoConnect
	module AuthenticatedSystem
		mattr_accessor :my_user, :roles

		protected

		def current_user
			return false if session[:user_id].nil?
			begin
				@my_user = User.where(:id => session[:user_id]).first if @my_user.nil?
				return @my_user
			rescue
				return false
			end
		end

		def logged_in?
			(current_user.nil? or current_user.class != User) ? false : true
		end

		def authorized?

		end

		def require_no_user
			if logged_in? then
				redirect_to game_path
				return false
			end

			return true
		end

		def require_user
			if not logged_in? then
				store_location

				respond_to do |format|
					format.html { redirect_to login_path }
					format.json { render :json => {status: 'not_authenticated'} }
				end

				return false
			end

			return init_user
		end

		def has_permission(role_type)
			return false if not logged_in?
			return current_user.has_right(role_type)
		end

		def check_user_role(role_type)
			@roles = {} if @roles.nil?
			if @roles[role_type].nil?
				role = UserRole.where(:user_id => current_user.id, :role => role_type).first
				@roles[role_type] = role.nil? ? false : true
			end

			return @roles[role_type]
		end

		def check_permission(role_type)
			if not has_permission(role_type) then
				redirect_to game_path
				return false
			end

			return true
		end


		def check_user
			if not logged_in? then
				return true
			end

			return init_user
		end

		def store_location
			session[:return_to] = request.fullpath
		end

		def redirect_back_or_default(default)
			redirect_to(session[:return_to] || default)
			session[:return_to] = nil
		end
	end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
onlinegames_info_connect-0.0.1 lib/onlinegames_info_connect/authenticated_system.rb