]> git.openstreetmap.org Git - rails.git/blobdiff - app/controllers/application.rb
lots of rails gpx stuff
[rails.git] / app / controllers / application.rb
index 6cd6dac06b5703ab0e78ba2037c9af435719bc46..0c8b4f17a8d369d9dbfa802c64ec449d63276042 100644 (file)
@@ -2,31 +2,41 @@
 # Likewise, all the methods added will be available for all controllers.
 class ApplicationController < ActionController::Base
 
+  def authorize_web
+    @user = User.find_by_token(session[:token])
+  end
 
-
-  # HTTP AUTH stuff for the API
-  
   def authorize(realm='Web Password', errormessage="Could't authenticate you") 
     username, passwd = get_auth_data 
     # check if authorized 
     # try to get user 
-    if user = User.authenticate(username, passwd) 
+    if @user = User.authenticate(username, passwd) 
       # user exists and password is correct ... horray! 
-      if user.methods.include? 'lastlogin' 
+      if @user.methods.include? 'lastlogin' 
         # note last login 
         @session['lastlogin'] = user.lastlogin 
-        user.last.login = Time.now 
-        user.save() 
-        @session["User.id"] = user.id 
+        @user.last.login = Time.now 
+        @user.save() 
+        @session["User.id"] = @user.id 
       end             
     else 
       # the user does not exist or the password was wrong 
       @response.headers["Status"] = "Unauthorized" 
       @response.headers["WWW-Authenticate"] = "Basic realm=\"#{realm}\"" 
-      render_text(errormessage, 401)       
+      render_text(errormessage, 401)
     end 
   end 
 
+  def get_xml_doc
+    doc = XML::Document.new
+    doc.encoding = 'UTF-8' 
+    root = XML::Node.new 'osm'
+    root['version'] = API_VERSION
+    root['generator'] = 'OpenStreetMap server'
+    doc.root = root
+    return doc
+  end
+
   private 
   def get_auth_data 
     user, pass = '', ''