Merge branch 'master' of github.com:internetee/registry

This commit is contained in:
Andres Keskküla 2014-09-26 12:07:01 +03:00
commit c6a93a3acd
8 changed files with 67 additions and 12 deletions

View file

@ -15,6 +15,8 @@ class Admin::DomainsController < AdminController
end end
def update def update
add_prefix_to_statuses
if @domain.update(domain_params) if @domain.update(domain_params)
flash[:notice] = I18n.t('shared.domain_updated') flash[:notice] = I18n.t('shared.domain_updated')
redirect_to [:admin, @domain] redirect_to [:admin, @domain]
@ -36,4 +38,10 @@ class Admin::DomainsController < AdminController
domain_statuses_attributes: [:id, :value, :description, :_destroy] domain_statuses_attributes: [:id, :value, :description, :_destroy]
) )
end end
def add_prefix_to_statuses
domain_params[:domain_statuses_attributes].each do |_k, hash|
hash[:value] = hash[:value].prepend('server')
end
end
end end

View file

@ -3,6 +3,12 @@ class ApplicationController < ActionController::Base
# For APIs, you may want to use :null_session instead. # For APIs, you may want to use :null_session instead.
protect_from_forgery with: :exception protect_from_forgery with: :exception
before_action do
resource = controller_name.singularize.to_sym
method = "#{resource}_params"
params[resource] &&= send(method) if respond_to?(method, true)
end
def after_sign_in_path_for(resource) def after_sign_in_path_for(resource)
if resource.admin? if resource.admin?
(session[:user_return_to].nil?) ? admin_root_path : session[:user_return_to].to_s (session[:user_return_to].nil?) ? admin_root_path : session[:user_return_to].to_s

View file

@ -1,7 +1,7 @@
class Client::DomainsController < ClientController class Client::DomainsController < ClientController
load_and_authorize_resource load_and_authorize_resource
before_action :set_domain, only: [:show, :edit, :update, :destroy] before_action :set_domain, only: [:show, :edit, :update, :destroy]
before_action :verify_deletion, only: [:destroy] before_action :verify_deletion, only: [:destroy]
def index def index
@q = Domain.search(params[:q]) if current_user.admin? @q = Domain.search(params[:q]) if current_user.admin?
@ -18,6 +18,8 @@ class Client::DomainsController < ClientController
end end
def create def create
add_prefix_to_statuses
@domain = Domain.new(domain_params) @domain = Domain.new(domain_params)
@domain.registrar = current_user.registrar @domain.registrar = current_user.registrar
@ -36,6 +38,8 @@ class Client::DomainsController < ClientController
end end
def update def update
add_prefix_to_statuses
if @domain.update(domain_params) if @domain.update(domain_params)
flash[:notice] = I18n.t('shared.domain_updated') flash[:notice] = I18n.t('shared.domain_updated')
redirect_to [:client, @domain] redirect_to [:client, @domain]
@ -46,6 +50,16 @@ class Client::DomainsController < ClientController
end end
end end
def destroy
if @domain.destroy
flash[:notice] = I18n.t('shared.domain_deleted')
redirect_to client_domains_path
else
flash[:alert] = I18n.t('shared.failed_to_delete_domain')
redirect_to [:client, @domain]
end
end
private private
def domain_params def domain_params
@ -61,6 +75,12 @@ class Client::DomainsController < ClientController
) )
end end
def add_prefix_to_statuses
domain_params[:domain_statuses_attributes].each do |_k, hash|
hash[:value] = hash[:value].prepend('client')
end
end
def set_domain def set_domain
@domain = Domain.find(params[:id]) @domain = Domain.find(params[:id])
end end
@ -74,6 +94,6 @@ class Client::DomainsController < ClientController
def verify_deletion def verify_deletion
return if @domain.can_be_deleted? return if @domain.can_be_deleted?
flash[:alert] = I18n.t('shared.domain_status_prohibits_deleting') flash[:alert] = I18n.t('shared.domain_status_prohibits_deleting')
redirect_to [:admin, @domain] redirect_to [:client, @domain]
end end
end end

View file

@ -3,10 +3,10 @@ class Ability
def initialize(user) def initialize(user)
# user ||= EppUser.last user ||= User.new
if user.admin? if user.admin?
can :manage, Domain can :manage, Domain
else elsif user.persisted?
can :manage, Domain, registrar_id: user.registrar.id can :manage, Domain, registrar_id: user.registrar.id
can :read, DomainTransfer, transfer_to_id: user.registrar.id can :read, DomainTransfer, transfer_to_id: user.registrar.id
can :approve_as_client, DomainTransfer, transfer_from_id: user.registrar.id, status: DomainTransfer::PENDING can :approve_as_client, DomainTransfer, transfer_from_id: user.registrar.id, status: DomainTransfer::PENDING

View file

@ -40,4 +40,24 @@ class DomainStatus < ActiveRecord::Base
] ]
} }
end end
class << self
def statuses_for_client
ret = []
STATUSES.each do |x|
next unless x.start_with?('client')
ret << x.sub('client', '')
end
ret
end
def statuses_for_admin
ret = []
STATUSES.each do |x|
next unless x.start_with?('server')
ret << x.sub('server', '')
end
ret
end
end
end end

View file

@ -15,7 +15,7 @@
.col-md-6 .col-md-6
.form-group .form-group
= status_fields.label :value = status_fields.label :value
= status_fields.select :value, options_for_select(DomainStatus::STATUSES, status_fields.object.value), {include_blank: true}, {class: 'form-control'} = status_fields.select :value, options_for_select(DomainStatus.statuses_for_admin, status_fields.object.value.sub('server', '')), {include_blank: true}, {class: 'form-control'}
.col-md-6 .col-md-6
.form-group .form-group
= status_fields.label :description = status_fields.label :description

View file

@ -15,7 +15,7 @@
.col-md-6 .col-md-6
.form-group .form-group
= status_fields.label :value = status_fields.label :value
= status_fields.select :value, options_for_select(DomainStatus::STATUSES, status_fields.object.value), {include_blank: true}, {class: 'form-control'} = status_fields.select :value, options_for_select(DomainStatus.statuses_for_client, status_fields.object.value.sub('client', '')), {include_blank: true}, {class: 'form-control'}
.col-md-6 .col-md-6
.form-group .form-group
= status_fields.label :description = status_fields.label :description

View file

@ -9,7 +9,7 @@
= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true = stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true
= javascript_include_tag 'application', 'data-turbolinks-track' => true = javascript_include_tag 'application', 'data-turbolinks-track' => true
%link{href: "../../favicon.ico", rel: "icon"}/ %link{href: "../../favicon.ico", rel: "icon"}/
%title EPP Client %title= t('shared.eedirekt')
%body %body
/ Static navbar / Static navbar
.navbar.navbar-inverse.navbar-static-top{role: "navigation"} .navbar.navbar-inverse.navbar-static-top{role: "navigation"}
@ -20,7 +20,7 @@
%span.icon-bar %span.icon-bar
%span.icon-bar %span.icon-bar
%span.icon-bar %span.icon-bar
= link_to 'EPP Client', client_domains_path, class: 'navbar-brand' = link_to t('shared.eedirekt'), client_domains_path, class: 'navbar-brand'
.navbar-collapse.collapse .navbar-collapse.collapse
%ul.nav.navbar-nav %ul.nav.navbar-nav
%li.dropdown.active %li.dropdown.active
@ -44,8 +44,9 @@
= link_to t('shared.check'), '#' = link_to t('shared.check'), '#'
%li %li
= link_to t('shared.register'), '#' = link_to t('shared.register'), '#'
%li - if current_user.admin?
= link_to 'Admin', '/' %li
= link_to 'Admin', admin_root_path
%ul.nav.navbar-nav.navbar-right %ul.nav.navbar-nav.navbar-right
%li= link_to t('shared.log_out'), '/logout' %li= link_to t('shared.log_out'), '/logout'
/ /.nav-collapse / /.nav-collapse