mirror of
https://github.com/internetee/registry.git
synced 2025-07-20 09:46:09 +02:00
parent
ba341ee411
commit
940613ae34
8 changed files with 13 additions and 57 deletions
2
.reek
2
.reek
|
@ -538,7 +538,6 @@ IrresponsibleModule:
|
||||||
- DomainStatus
|
- DomainStatus
|
||||||
- DomainTransfer
|
- DomainTransfer
|
||||||
- Epp::Contact
|
- Epp::Contact
|
||||||
- EppSession
|
|
||||||
- Invoice
|
- Invoice
|
||||||
- InvoiceItem
|
- InvoiceItem
|
||||||
- Keyrelay
|
- Keyrelay
|
||||||
|
@ -1027,7 +1026,6 @@ PrimaDonnaMethod:
|
||||||
- Contact
|
- Contact
|
||||||
- Domain
|
- Domain
|
||||||
- Epp::Domain
|
- Epp::Domain
|
||||||
- EppSession
|
|
||||||
- RegistrantVerification
|
- RegistrantVerification
|
||||||
- Registrar
|
- Registrar
|
||||||
BooleanParameter:
|
BooleanParameter:
|
||||||
|
|
|
@ -655,11 +655,6 @@ Performance/StringReplacement:
|
||||||
- 'app/models/directo.rb'
|
- 'app/models/directo.rb'
|
||||||
- 'app/models/dnskey.rb'
|
- 'app/models/dnskey.rb'
|
||||||
|
|
||||||
# Offense count: 1
|
|
||||||
Security/MarshalLoad:
|
|
||||||
Exclude:
|
|
||||||
- 'app/models/epp_session.rb'
|
|
||||||
|
|
||||||
# Offense count: 4
|
# Offense count: 4
|
||||||
# Cop supports --auto-correct.
|
# Cop supports --auto-correct.
|
||||||
# Configuration parameters: EnforcedStyle, SupportedStyles.
|
# Configuration parameters: EnforcedStyle, SupportedStyles.
|
||||||
|
|
|
@ -91,7 +91,7 @@ class Epp::SessionsController < EppController
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
epp_session[:api_user_id] = @api_user.id
|
epp_session.user = @api_user
|
||||||
epp_session.update_column(:registrar_id, @api_user.registrar_id)
|
epp_session.update_column(:registrar_id, @api_user.registrar_id)
|
||||||
render_epp_response('login_success')
|
render_epp_response('login_success')
|
||||||
else
|
else
|
||||||
|
|
|
@ -115,7 +115,7 @@ class EppController < ApplicationController
|
||||||
end
|
end
|
||||||
|
|
||||||
def current_user
|
def current_user
|
||||||
@current_user ||= ApiUser.find_by_id(epp_session[:api_user_id])
|
@current_user ||= epp_session.user
|
||||||
# by default PaperTrail uses before filter and at that
|
# by default PaperTrail uses before filter and at that
|
||||||
# time current_user is not yet present
|
# time current_user is not yet present
|
||||||
::PaperTrail.whodunnit = user_log_str(@current_user)
|
::PaperTrail.whodunnit = user_log_str(@current_user)
|
||||||
|
|
|
@ -1,38 +1,6 @@
|
||||||
class EppSession < ActiveRecord::Base
|
class EppSession < ActiveRecord::Base
|
||||||
before_save :marshal_data!
|
belongs_to :user, required: true
|
||||||
|
belongs_to :registrar
|
||||||
|
|
||||||
validates :session_id, presence: true
|
validates :session_id, presence: true
|
||||||
|
|
||||||
belongs_to :registrar
|
|
||||||
# rubocop: disable Rails/ReadWriteAttribute
|
|
||||||
# Turned back to read_attribute, thus in Rails 4
|
|
||||||
# there is differences between self[:data] and read_attribute.
|
|
||||||
def data
|
|
||||||
@data ||= self.class.unmarshal(read_attribute(:data)) || {}
|
|
||||||
end
|
|
||||||
# rubocop: enable Rails/ReadWriteAttribute
|
|
||||||
|
|
||||||
def [](key)
|
|
||||||
data[key.to_sym]
|
|
||||||
end
|
|
||||||
|
|
||||||
def []=(key, value)
|
|
||||||
data[key.to_sym] = value
|
|
||||||
save!
|
|
||||||
end
|
|
||||||
|
|
||||||
def marshal_data!
|
|
||||||
self.data = self.class.marshal(data)
|
|
||||||
end
|
|
||||||
|
|
||||||
class << self
|
|
||||||
def marshal(data)
|
|
||||||
::Base64.encode64(Marshal.dump(data)) if data
|
|
||||||
end
|
|
||||||
|
|
||||||
def unmarshal(data)
|
|
||||||
return data unless data.is_a? String
|
|
||||||
Marshal.load(::Base64.decode64(data)) if data
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -52,7 +52,7 @@ namespace :dev do
|
||||||
epp_session = EppSession.new
|
epp_session = EppSession.new
|
||||||
epp_session.session_id = 'test'
|
epp_session.session_id = 'test'
|
||||||
epp_session.registrar = registrar
|
epp_session.registrar = registrar
|
||||||
epp_session[:api_user_id] = api_user.id
|
epp_session.user = api_user
|
||||||
epp_session.save!
|
epp_session.save!
|
||||||
|
|
||||||
domain_counter = 1.step
|
domain_counter = 1.step
|
||||||
|
|
4
test/fixtures/epp_sessions.yml
vendored
4
test/fixtures/epp_sessions.yml
vendored
|
@ -1,9 +1,9 @@
|
||||||
api_bestnames:
|
api_bestnames:
|
||||||
session_id: 1
|
session_id: 1
|
||||||
|
user: api_bestnames
|
||||||
registrar: bestnames
|
registrar: bestnames
|
||||||
data: <%= Base64.encode64(Marshal.dump({api_user_id: ActiveRecord::Fixtures.identify(:api_bestnames)})) %>
|
|
||||||
|
|
||||||
api_goodnames:
|
api_goodnames:
|
||||||
session_id: 2
|
session_id: 2
|
||||||
|
user: api_goodnames
|
||||||
registrar: goodnames
|
registrar: goodnames
|
||||||
data: <%= Base64.encode64(Marshal.dump({api_user_id: ActiveRecord::Fixtures.identify(:api_goodnames)})) %>
|
|
||||||
|
|
|
@ -9,20 +9,15 @@ class EppSessionTest < ActiveSupport::TestCase
|
||||||
assert @epp_session.valid?
|
assert @epp_session.valid?
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_api_user_id_serialization
|
|
||||||
epp_session = EppSession.new
|
|
||||||
epp_session.session_id = 'test'
|
|
||||||
epp_session.registrar = registrars(:bestnames)
|
|
||||||
epp_session[:api_user_id] = ActiveRecord::Fixtures.identify(:api_bestnames)
|
|
||||||
epp_session.save!
|
|
||||||
epp_session.reload
|
|
||||||
|
|
||||||
assert_equal ActiveRecord::Fixtures.identify(:api_bestnames), epp_session[:api_user_id]
|
|
||||||
end
|
|
||||||
|
|
||||||
def test_session_id_presence_validation
|
def test_session_id_presence_validation
|
||||||
@epp_session.session_id = nil
|
@epp_session.session_id = nil
|
||||||
@epp_session.validate
|
@epp_session.validate
|
||||||
assert @epp_session.invalid?
|
assert @epp_session.invalid?
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_user_presence_validation
|
||||||
|
@epp_session.user = nil
|
||||||
|
@epp_session.validate
|
||||||
|
assert @epp_session.invalid?
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue