X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/23f568cf3a0f4a5f102952ebe68d6d2636e82b1b..3893fd72a953beba360fd205ca9fcc2abf623024:/app/controllers/amf_controller.rb diff --git a/app/controllers/amf_controller.rb b/app/controllers/amf_controller.rb index fb50b6aad..51db8296d 100644 --- a/app/controllers/amf_controller.rb +++ b/app/controllers/amf_controller.rb @@ -46,7 +46,7 @@ class AmfController < ApplicationController def amf_read self.status = :ok - self.content_type = Mime::AMF + self.content_type = Mime[:amf] self.response_body = Dispatcher.new(request.raw_post) do |message, *args| logger.info("Executing AMF #{message}(#{args.join(',')})") @@ -74,7 +74,7 @@ class AmfController < ApplicationController err = false # Abort batch on error self.status = :ok - self.content_type = Mime::AMF + self.content_type = Mime[:amf] self.response_body = Dispatcher.new(request.raw_post) do |message, *args| logger.info("Executing AMF #{message}") @@ -86,19 +86,19 @@ class AmfController < ApplicationController orn = renumberednodes.dup result = putway(renumberednodes, *args) result[4] = renumberednodes.reject { |k, _v| orn.key?(k) } - renumberedways[result[2]] = result[3] if result[0] == 0 && result[2] != result[3] + renumberedways[result[2]] = result[3] if result[0].zero? && result[2] != result[3] when "putrelation" then result = putrelation(renumberednodes, renumberedways, *args) when "deleteway" then result = deleteway(*args) when "putpoi" then result = putpoi(*args) - renumberednodes[result[2]] = result[3] if result[0] == 0 && result[2] != result[3] + renumberednodes[result[2]] = result[3] if result[0].zero? && result[2] != result[3] when "startchangeset" then result = startchangeset(*args) end - err = true if result[0] == -3 # If a conflict is detected, don't execute any more writes + err = true if result[0] == -3 # If a conflict is detected, don't execute any more writes end result @@ -151,7 +151,7 @@ class AmfController < ApplicationController cs = Changeset.find(closeid.to_i) cs.set_closed_time_now if cs.user_id != user.id - fail OSM::APIUserChangesetMismatchError.new + raise OSM::APIUserChangesetMismatchError.new elsif closecomment.empty? cs.save! else @@ -163,7 +163,7 @@ class AmfController < ApplicationController end # open a new changeset - if opennew != 0 + if opennew.nonzero? cs = Changeset.new cs.tags = cstags cs.user_id = user.id @@ -189,12 +189,14 @@ class AmfController < ApplicationController def getpresets(usertoken, lang) #:doc: user = getuser(usertoken) - if user && !user.languages.empty? - http_accept_language.user_preferred_languages = user.languages - end + langs = if user && !user.languages.empty? + Locale.list(user.languages) + else + Locale.list(http_accept_language.user_preferred_languages) + end - lang = http_accept_language.compatible_language_from(getlocales) - (real_lang, localised) = getlocalized(lang) + lang = getlocales.preferred(langs) + (real_lang, localised) = getlocalized(lang.to_s) # Tell Potlatch what language it's using localised["__potlatch_locale"] = real_lang @@ -218,14 +220,14 @@ class AmfController < ApplicationController loaded_lang = "en" # Load English defaults - en = YAML.load(File.open("#{Rails.root}/config/potlatch/locales/en.yml"))["en"] + en = YAML.safe_load(File.open(Rails.root.join("config", "potlatch", "locales", "en.yml")))["en"] if lang == "en" return [loaded_lang, en] else # Use English as a fallback begin - other = YAML.load(File.open("#{Rails.root}/config/potlatch/locales/#{lang}.yml"))[lang] + other = YAML.safe_load(File.open(Rails.root.join("config", "potlatch", "locales", "#{lang}.yml")))[lang] loaded_lang = lang rescue other = en @@ -469,11 +471,11 @@ class AmfController < ApplicationController return -1, t("application.setup_user_auth.blocked") if user.blocks.active.exists? query = Trace.visible_to(user) - if searchterm.to_i > 0 - query = query.where(:id => searchterm.to_i) - else - query = query.where("MATCH(name) AGAINST (?)", searchterm).limit(21) - end + query = if searchterm.to_i > 0 + query.where(:id => searchterm.to_i) + else + query.where("MATCH(name) AGAINST (?)", searchterm).limit(21) + end gpxs = query.collect do |gpx| [gpx.id, gpx.name, gpx.description] end @@ -527,7 +529,7 @@ class AmfController < ApplicationController # 3. version. def putrelation(renumberednodes, renumberedways, usertoken, changeset_id, version, relid, tags, members, visible) #:doc: - amf_handle_error("'putrelation' #{relid}", "relation", relid) do + amf_handle_error("'putrelation' #{relid}", "relation", relid) do user = getuser(usertoken) return -1, "You are not logged in, so the relation could not be saved." unless user @@ -538,7 +540,7 @@ class AmfController < ApplicationController tags = strip_non_xml_chars tags relid = relid.to_i - visible = (visible.to_i != 0) + visible = visible.to_i.nonzero? new_relation = nil relation = nil @@ -642,10 +644,10 @@ class AmfController < ApplicationController id = a[2].to_i version = a[3].to_i - return -2, "Server error - node with id 0 found in way #{originalway}." if id == 0 + return -2, "Server error - node with id 0 found in way #{originalway}." if id.zero? return -2, "Server error - node with latitude -90 found in way #{originalway}." if lat == 90 - id = renumberednodes[id] if renumberednodes[id] + id = renumberednodes[id] if renumberednodes[id] node = Node.new node.changeset_id = changeset_id @@ -675,7 +677,7 @@ class AmfController < ApplicationController # -- Save revised way - pointlist.collect! do|a| + pointlist.collect! do |a| renumberednodes[a] ? renumberednodes[a] : a end # renumber nodes new_way = Way.new @@ -866,15 +868,14 @@ class AmfController < ApplicationController def getuser(token) #:doc: if token =~ /^(.+)\:(.+)$/ - user = User.authenticate(:username => $1, :password => $2) + User.authenticate(:username => Regexp.last_match(1), :password => Regexp.last_match(2)) else - user = User.authenticate(:token => token) + User.authenticate(:token => token) end - user end def getlocales - Dir.glob("#{Rails.root}/config/potlatch/locales/*").collect { |f| File.basename(f, ".yml") } + @locales ||= Locale.list(Dir.glob(Rails.root.join("config", "potlatch", "locales", "*")).collect { |f| File.basename(f, ".yml") }) end ## @@ -913,7 +914,7 @@ class AmfController < ApplicationController INNER JOIN current_ways ON current_ways.id =current_way_nodes.id WHERE current_nodes.visible=TRUE AND current_ways.visible=TRUE - AND #{OSM.sql_for_area(bbox, "current_nodes.")} + AND #{OSM.sql_for_area(bbox, 'current_nodes.')} EOF ActiveRecord::Base.connection.select_all(sql).collect { |a| [a["wayid"].to_i, a["version"].to_i] } end @@ -926,7 +927,7 @@ class AmfController < ApplicationController LEFT OUTER JOIN current_way_nodes cwn ON cwn.node_id=current_nodes.id WHERE current_nodes.visible=TRUE AND cwn.id IS NULL - AND #{OSM.sql_for_area(bbox, "current_nodes.")} + AND #{OSM.sql_for_area(bbox, 'current_nodes.')} EOF ActiveRecord::Base.connection.select_all(sql).each do |row| poitags = {} @@ -946,7 +947,7 @@ class AmfController < ApplicationController FROM current_relations cr INNER JOIN current_relation_members crm ON crm.id=cr.id INNER JOIN current_nodes cn ON crm.member_id=cn.id AND crm.member_type='Node' - WHERE #{OSM.sql_for_area(bbox, "cn.")} + WHERE #{OSM.sql_for_area(bbox, 'cn.')} EOF unless way_ids.empty? sql += <<-EOF