mirror of
https://github.com/internetee/registry.git
synced 2025-08-04 00:42:04 +02:00
Merge branch 'master' into update-ruby-to-2-4
This commit is contained in:
commit
08c15f095f
118 changed files with 976 additions and 726 deletions
|
@ -31,8 +31,6 @@ class Ability
|
|||
end
|
||||
|
||||
def epp # Registrar/api_user dynamic role
|
||||
can :view, :registrar_dashboard
|
||||
|
||||
if @user.registrar.api_ip_white?(@ip)
|
||||
can :manage, :poll
|
||||
can :manage, Depp::Contact
|
||||
|
@ -71,7 +69,6 @@ class Ability
|
|||
end
|
||||
|
||||
def billing # Registrar/api_user dynamic role
|
||||
can :view, :registrar_dashboard
|
||||
can(:manage, Invoice) { |i| i.buyer_id == @user.registrar_id }
|
||||
can :manage, :deposit
|
||||
can :read, AccountActivity
|
||||
|
|
|
@ -9,7 +9,8 @@ class AdminUser < User
|
|||
|
||||
ROLES = %w(user customer_service admin) # should not match to api_users roles
|
||||
|
||||
devise :database_authenticatable, :rememberable, :trackable, :validatable, :lockable
|
||||
devise :database_authenticatable, :trackable, :validatable, :timeoutable,
|
||||
authentication_keys: [:username]
|
||||
|
||||
def self.min_password_length
|
||||
Devise.password_length.min
|
||||
|
|
|
@ -2,11 +2,12 @@ require 'open3'
|
|||
|
||||
class ApiUser < User
|
||||
include EppErrors
|
||||
devise :database_authenticatable, :trackable, :timeoutable, authentication_keys: [:username]
|
||||
|
||||
def epp_code_map
|
||||
{
|
||||
'2306' => [ # Parameter policy error
|
||||
[:password, :blank]
|
||||
%i[plain_text_password blank]
|
||||
]
|
||||
}
|
||||
end
|
||||
|
@ -19,8 +20,8 @@ class ApiUser < User
|
|||
belongs_to :registrar
|
||||
has_many :certificates
|
||||
|
||||
validates :username, :password, :registrar, :roles, presence: true
|
||||
validates :password, length: { minimum: min_password_length }
|
||||
validates :username, :plain_text_password, :registrar, :roles, presence: true
|
||||
validates :plain_text_password, length: { minimum: min_password_length }
|
||||
validates :username, uniqueness: true
|
||||
|
||||
delegate :code, :name, to: :registrar, prefix: true
|
||||
|
@ -30,6 +31,7 @@ class ApiUser < User
|
|||
|
||||
SUPER = 'super'
|
||||
EPP = 'epp'
|
||||
BILLING = 'billing'
|
||||
|
||||
ROLES = %w(super epp billing) # should not match to admin roles
|
||||
|
||||
|
|
|
@ -1,30 +1,50 @@
|
|||
module Concerns::Domain::ForceDelete
|
||||
extend ActiveSupport::Concern
|
||||
|
||||
included do
|
||||
alias_attribute :force_delete_time, :force_delete_at
|
||||
end
|
||||
|
||||
def force_delete_scheduled?
|
||||
statuses.include?(DomainStatus::FORCE_DELETE)
|
||||
end
|
||||
|
||||
def schedule_force_delete
|
||||
self.statuses_backup = statuses
|
||||
statuses.delete(DomainStatus::CLIENT_DELETE_PROHIBITED)
|
||||
statuses.delete(DomainStatus::SERVER_DELETE_PROHIBITED)
|
||||
if discarded?
|
||||
raise StandardError, 'Force delete procedure cannot be scheduled while a domain is discarded'
|
||||
end
|
||||
|
||||
preserve_current_statuses_for_force_delete
|
||||
add_force_delete_statuses
|
||||
self.force_delete_at = (Time.zone.now + (Setting.redemption_grace_period.days + 1.day)).utc
|
||||
.beginning_of_day
|
||||
stop_all_pending_actions
|
||||
allow_deletion
|
||||
save(validate: false)
|
||||
end
|
||||
|
||||
def cancel_force_delete
|
||||
restore_statuses_before_force_delete
|
||||
remove_force_delete_statuses
|
||||
self.force_delete_at = nil
|
||||
save(validate: false)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def stop_all_pending_actions
|
||||
statuses.delete(DomainStatus::PENDING_UPDATE)
|
||||
statuses.delete(DomainStatus::PENDING_TRANSFER)
|
||||
statuses.delete(DomainStatus::PENDING_RENEW)
|
||||
statuses.delete(DomainStatus::PENDING_CREATE)
|
||||
end
|
||||
|
||||
statuses.delete(DomainStatus::FORCE_DELETE)
|
||||
statuses.delete(DomainStatus::SERVER_RENEW_PROHIBITED)
|
||||
statuses.delete(DomainStatus::SERVER_TRANSFER_PROHIBITED)
|
||||
statuses.delete(DomainStatus::SERVER_UPDATE_PROHIBITED)
|
||||
statuses.delete(DomainStatus::SERVER_MANUAL_INZONE)
|
||||
statuses.delete(DomainStatus::PENDING_DELETE)
|
||||
def preserve_current_statuses_for_force_delete
|
||||
self.statuses_before_force_delete = statuses
|
||||
end
|
||||
|
||||
def restore_statuses_before_force_delete
|
||||
self.statuses = statuses_before_force_delete
|
||||
self.statuses_before_force_delete = nil
|
||||
end
|
||||
|
||||
def add_force_delete_statuses
|
||||
statuses << DomainStatus::FORCE_DELETE
|
||||
statuses << DomainStatus::SERVER_RENEW_PROHIBITED
|
||||
statuses << DomainStatus::SERVER_TRANSFER_PROHIBITED
|
||||
|
@ -34,21 +54,19 @@ module Concerns::Domain::ForceDelete
|
|||
if (statuses & [DomainStatus::SERVER_HOLD, DomainStatus::CLIENT_HOLD]).empty?
|
||||
statuses << DomainStatus::SERVER_MANUAL_INZONE
|
||||
end
|
||||
|
||||
self.force_delete_at = (Time.zone.now + (Setting.redemption_grace_period.days + 1.day)).utc.beginning_of_day unless force_delete_at
|
||||
save!(validate: false)
|
||||
end
|
||||
|
||||
def cancel_force_delete
|
||||
s = []
|
||||
s << DomainStatus::EXPIRED if statuses.include?(DomainStatus::EXPIRED)
|
||||
s << DomainStatus::SERVER_HOLD if statuses.include?(DomainStatus::SERVER_HOLD)
|
||||
s << DomainStatus::DELETE_CANDIDATE if statuses.include?(DomainStatus::DELETE_CANDIDATE)
|
||||
def remove_force_delete_statuses
|
||||
statuses.delete(DomainStatus::FORCE_DELETE)
|
||||
statuses.delete(DomainStatus::SERVER_RENEW_PROHIBITED)
|
||||
statuses.delete(DomainStatus::SERVER_TRANSFER_PROHIBITED)
|
||||
statuses.delete(DomainStatus::SERVER_UPDATE_PROHIBITED)
|
||||
statuses.delete(DomainStatus::PENDING_DELETE)
|
||||
statuses.delete(DomainStatus::SERVER_MANUAL_INZONE)
|
||||
end
|
||||
|
||||
self.statuses = (statuses_backup + s).uniq
|
||||
|
||||
self.force_delete_at = nil
|
||||
self.statuses_backup = []
|
||||
save(validate: false)
|
||||
def allow_deletion
|
||||
statuses.delete(DomainStatus::CLIENT_DELETE_PROHIBITED)
|
||||
statuses.delete(DomainStatus::SERVER_DELETE_PROHIBITED)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -583,6 +583,7 @@ class Domain < ActiveRecord::Base
|
|||
hash = super
|
||||
hash['auth_info'] = hash.delete('transfer_code') # API v1 requirement
|
||||
hash['valid_from'] = hash['registered_at'] # API v1 requirement
|
||||
hash.delete('statuses_before_force_delete')
|
||||
hash
|
||||
end
|
||||
|
||||
|
|
|
@ -2,6 +2,8 @@ class RegistrantUser < User
|
|||
ACCEPTED_ISSUER = 'AS Sertifitseerimiskeskus'
|
||||
attr_accessor :idc_data
|
||||
|
||||
devise :database_authenticatable, :trackable, :timeoutable
|
||||
|
||||
def ability
|
||||
@ability ||= Ability.new(self)
|
||||
end
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
class User < ActiveRecord::Base
|
||||
include Versions # version/user_version.rb
|
||||
devise :trackable, :timeoutable
|
||||
|
||||
attr_accessor :phone
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue