X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/52e5fa6ad78f375cec5a207a123a4aa3939c8ddf..34e3e51456774127d43408b7ab65c24f41373f62:/app/models/client_application.rb diff --git a/app/models/client_application.rb b/app/models/client_application.rb index 55f34e6e2..fd382629a 100644 --- a/app/models/client_application.rb +++ b/app/models/client_application.rb @@ -2,7 +2,7 @@ require 'oauth' class ClientApplication < ActiveRecord::Base belongs_to :user - has_many :tokens, :class_name => "OauthToken" + has_many :tokens, :class_name => "OauthToken", :dependent => :delete_all has_many :access_tokens has_many :oauth2_verifiers has_many :oauth_tokens @@ -16,7 +16,7 @@ class ClientApplication < ActiveRecord::Base before_validation :generate_keys, :on => :create attr_accessor :token_callback_url - + def self.find_token(token_key) token = OauthToken.find_by_token(token_key, :include => :client_application) if token && token.authorized? @@ -36,7 +36,7 @@ class ClientApplication < ActiveRecord::Base false end end - + def self.all_permissions PERMISSIONS end @@ -44,11 +44,11 @@ class ClientApplication < ActiveRecord::Base def oauth_server @oauth_server ||= OAuth::Server.new("http://" + SERVER_URL) end - + def credentials @oauth_client ||= OAuth::Consumer.new(key, secret) end - + def create_request_token(params={}) params = { :client_application => self, :callback_url => self.token_callback_url } permissions.each do |p| @@ -67,7 +67,7 @@ class ClientApplication < ActiveRecord::Base token = access_tokens.create(params) end - + token end @@ -77,12 +77,13 @@ class ClientApplication < ActiveRecord::Base end protected - + # this is the set of permissions that the client can ask for. clients # have to say up-front what permissions they want and when users sign up they # can agree or not agree to each of them. PERMISSIONS = [:allow_read_prefs, :allow_write_prefs, :allow_write_diary, - :allow_write_api, :allow_read_gpx, :allow_write_gpx ] + :allow_write_api, :allow_read_gpx, :allow_write_gpx, + :allow_write_notes] def generate_keys self.key = OAuth::Helper.generate_key(40)[0,40]