مراية لـ
https://github.com/postalserver/postal.git
تم المزامنة 2025-12-01 05:43:04 +00:00
style(rubocop): Lint/IneffectiveAccessModifier
هذا الالتزام موجود في:
@@ -68,18 +68,22 @@ class IPPoolRule < ApplicationRecord
|
|||||||
errors.add :ip_pool_id, "must belong to the organization"
|
errors.add :ip_pool_id, "must belong to the organization"
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.address_matches?(condition, address)
|
class << self
|
||||||
address = Postal::Helpers.strip_name_from_address(address)
|
|
||||||
if condition =~ /@/
|
def address_matches?(condition, address)
|
||||||
parts = address.split("@")
|
address = Postal::Helpers.strip_name_from_address(address)
|
||||||
domain = parts.pop
|
if condition =~ /@/
|
||||||
uname = parts.join("@")
|
parts = address.split("@")
|
||||||
uname, = uname.split("+", 2)
|
domain = parts.pop
|
||||||
condition == "#{uname}@#{domain}"
|
uname = parts.join("@")
|
||||||
else
|
uname, = uname.split("+", 2)
|
||||||
# Match as a domain
|
condition == "#{uname}@#{domain}"
|
||||||
condition == address.split("@").last
|
else
|
||||||
|
# Match as a domain
|
||||||
|
condition == address.split("@").last
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -219,12 +219,16 @@ class Route < ApplicationRecord
|
|||||||
errors.add :base, "Additional routes are not permitted unless the primary route is an actual endpoint"
|
errors.add :base, "Additional routes are not permitted unless the primary route is an actual endpoint"
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.find_by_name_and_domain(name, domain)
|
class << self
|
||||||
route = Route.includes(:domain).where(name: name, domains: { name: domain }).first
|
|
||||||
if route.nil?
|
def find_by_name_and_domain(name, domain)
|
||||||
route = Route.includes(:domain).where(name: "*", domains: { name: domain }).first
|
route = Route.includes(:domain).where(name: name, domains: { name: domain }).first
|
||||||
|
if route.nil?
|
||||||
|
route = Route.includes(:domain).where(name: "*", domains: { name: domain }).first
|
||||||
|
end
|
||||||
|
route
|
||||||
end
|
end
|
||||||
route
|
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -252,39 +252,43 @@ module Postal
|
|||||||
records.first&.address&.to_s&.downcase
|
records.first&.address&.to_s&.downcase
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.ssl_context_with_verify
|
class << self
|
||||||
@ssl_context_with_verify ||= begin
|
|
||||||
c = OpenSSL::SSL::SSLContext.new
|
def ssl_context_with_verify
|
||||||
c.verify_mode = OpenSSL::SSL::VERIFY_PEER
|
@ssl_context_with_verify ||= begin
|
||||||
c.cert_store = OpenSSL::X509::Store.new
|
c = OpenSSL::SSL::SSLContext.new
|
||||||
c.cert_store.set_default_paths
|
c.verify_mode = OpenSSL::SSL::VERIFY_PEER
|
||||||
c
|
c.cert_store = OpenSSL::X509::Store.new
|
||||||
|
c.cert_store.set_default_paths
|
||||||
|
c
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
|
||||||
|
|
||||||
def self.ssl_context_without_verify
|
def ssl_context_without_verify
|
||||||
@ssl_context_without_verify ||= begin
|
@ssl_context_without_verify ||= begin
|
||||||
c = OpenSSL::SSL::SSLContext.new
|
c = OpenSSL::SSL::SSLContext.new
|
||||||
c.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
c.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
||||||
c
|
c
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
|
||||||
|
|
||||||
def self.default_helo_hostname
|
def default_helo_hostname
|
||||||
Postal.config.dns.helo_hostname || Postal.config.dns.smtp_server_hostname || "localhost"
|
Postal.config.dns.helo_hostname || Postal.config.dns.smtp_server_hostname || "localhost"
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.relay_hosts
|
def relay_hosts
|
||||||
hosts = Postal.config.smtp_relays.map do |relay|
|
hosts = Postal.config.smtp_relays.map do |relay|
|
||||||
next unless relay.hostname.present?
|
next unless relay.hostname.present?
|
||||||
|
|
||||||
|
{
|
||||||
|
hostname: relay.hostname,
|
||||||
|
port: relay.port,
|
||||||
|
ssl_mode: relay.ssl_mode
|
||||||
|
}
|
||||||
|
end.compact
|
||||||
|
hosts.empty? ? nil : hosts
|
||||||
|
end
|
||||||
|
|
||||||
{
|
|
||||||
hostname: relay.hostname,
|
|
||||||
port: relay.port,
|
|
||||||
ssl_mode: relay.ssl_mode
|
|
||||||
}
|
|
||||||
end.compact
|
|
||||||
hosts.empty? ? nil : hosts
|
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -195,21 +195,25 @@ module Postal
|
|||||||
self.class.logger
|
self.class.logger
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.logger
|
class << self
|
||||||
Postal.logger_for(:worker)
|
|
||||||
end
|
|
||||||
|
|
||||||
def self.job_channel
|
def logger
|
||||||
@channel ||= Postal::RabbitMQ.create_channel
|
Postal.logger_for(:worker)
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.job_queue(name)
|
def job_channel
|
||||||
@job_queues ||= {}
|
@channel ||= Postal::RabbitMQ.create_channel
|
||||||
@job_queues[name] ||= job_channel.queue("deliver-jobs-#{name}", durable: true, arguments: { "x-message-ttl" => 60_000 })
|
end
|
||||||
end
|
|
||||||
|
def job_queue(name)
|
||||||
|
@job_queues ||= {}
|
||||||
|
@job_queues[name] ||= job_channel.queue("deliver-jobs-#{name}", durable: true, arguments: { "x-message-ttl" => 60_000 })
|
||||||
|
end
|
||||||
|
|
||||||
|
def local_ip?(ip)
|
||||||
|
!!(ip =~ /\A(127\.|fe80:|::)/)
|
||||||
|
end
|
||||||
|
|
||||||
def self.local_ip?(ip)
|
|
||||||
!!(ip =~ /\A(127\.|fe80:|::)/)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|||||||
المرجع في مشكلة جديدة
حظر مستخدم