1
0
مراية لـ https://github.com/postalserver/postal.git تم المزامنة 2025-11-30 21:32:30 +00:00

UI for admins to assign ip pools to servers

هذا الالتزام موجود في:
Adam Cooke
2017-04-21 11:26:19 +01:00
الأصل 79f7707d09
التزام 2def9c0fb9
6 ملفات معدلة مع 49 إضافات و27 حذوفات

عرض الملف

@@ -1,9 +1,16 @@
class OrganizationIPPoolsController < ApplicationController
include WithinOrganization
before_action :admin_required, :only => [:assignments]
def index
@ip_pools = organization.ip_pools.dedicated.order(:name)
end
def assignments
organization.ip_pool_ids = params[:ip_pools]
organization.save!
redirect_to [organization, :ip_pools], :notice => "Organization IP pools have been updated successfully"
end
end

عرض الملف

@@ -42,7 +42,7 @@ class ServersController < ApplicationController
def update
extra_params = [:spam_threshold, :spam_failure_threshold, :postmaster_address]
extra_params += [:send_limit, :allow_sender, :log_smtp_data, :outbound_spam_threshold, :message_retention_days, :raw_message_retention_days, :raw_message_retention_size, :ip_pool_id] if current_user.admin?
extra_params += [:send_limit, :allow_sender, :log_smtp_data, :outbound_spam_threshold, :message_retention_days, :raw_message_retention_days, :raw_message_retention_size] if current_user.admin?
if @server.update(safe_params(*extra_params))
redirect_to_with_json organization_server_path(organization, @server), :notice => "Server settings have been updated"
else
@@ -84,7 +84,7 @@ class ServersController < ApplicationController
private
def safe_params(*extras)
params.require(:server).permit(:name, :mode, :ip_pool_id, *extras)
params.require(:server).permit(:name, :mode, *extras)
end
end

عرض الملف

@@ -10,7 +10,22 @@
= render 'organizations/nav', :active_nav => :ips
= render 'nav', :active_nav => :ips
.pageContent.pageContent--compact
- if current_user.admin?
%p.pageContent__intro.u-margin
Choose which IP pools this organization will have access to send mail using. Organization
users will be able to choose from any of the pools chosen below. Admins can override on a per
server basis if required.
= form_tag [:assignments, @organization, :ip_pools], :method => :put do
%ul.checkboxList.u-margin
- for ip_pool in IPPool.order(:name)
%li.checkboxList__item
.checkboxList__checkbox= check_box_tag "ip_pools[]", ip_pool.id, @organization.ip_pools.include?(ip_pool), :id => "ip_pool_#{ip_pool.id}"
.checkboxList__label
= label_tag "ip_pool_#{ip_pool.id}", ip_pool.name, :class => 'checkboxList__actualLabel'
%p= submit_tag "Save IP pool assignment", :class => 'button button--positive'
- else
- if @ip_pools.empty?
.noData.noData--koala.noData--clean
- if @server.nil?

عرض الملف

@@ -20,6 +20,7 @@
e-mail will be routed normally to the intended recipients. When in <b>Development</b> mode,
outgoing & incoming mail will be held and only visible in the web interface and will not be
sent to any recipients or HTTP endpoints.
.fieldSet__field
= f.label :ip_pool_id, :class => 'fieldSet__label'
.fieldSet__input

عرض الملف

@@ -30,9 +30,6 @@
.fieldSet__field
= f.label :raw_message_retention_size, :class => 'fieldSet__label'
.fieldSet__input= f.text_field :raw_message_retention_size, :class => 'input input--text'
.fieldSet__field
= f.label :ip_pool_id, :class => 'fieldSet__label'
.fieldSet__input= f.collection_select :ip_pool_id, IPPool.order(:name), :id, :name, {}, :class => 'input input--select'
.fieldSetSubmit.fieldSetSubmit--wide.buttonSet
= f.submit "Save server", :class => 'button button--positive js-form-submit'

عرض الملف

@@ -60,7 +60,9 @@ Rails.application.routes.draw do
post :make_owner, :on => :member
end
resources :ip_pool_rules
resources :ip_pools, :controller => 'organization_ip_pools'
resources :ip_pools, :controller => 'organization_ip_pools' do
put :assignments, :on => :collection
end
root 'servers#index'
get 'settings' => 'organizations#edit'
patch 'settings' => 'organizations#update'