Added postmaster@ and abuse@ to virtuals when you create a domain. Hard coded at the moment.
This commit is contained in:
parent
e3d0e72a38
commit
1ac47de706
6
Gemfile
6
Gemfile
@ -1,10 +1,10 @@
|
|||||||
source "https://rubygems.org"
|
source "https://rubygems.org"
|
||||||
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
|
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
|
||||||
|
|
||||||
ruby "3.2.3"
|
ruby "3.3.0"
|
||||||
|
|
||||||
# Bundle edge Rails instead: gem "rails", github: "rails/rails", branch: "main"
|
# Bundle edge Rails instead: gem "rails", github: "rails/rails", branch: "main"
|
||||||
gem "rails", "7.1.3"
|
gem "rails", "7.1.3.2"
|
||||||
|
|
||||||
gem 'devise'
|
gem 'devise'
|
||||||
|
|
||||||
@ -15,7 +15,7 @@ gem "sprockets-rails"
|
|||||||
gem "mysql2", "~> 0.5"
|
gem "mysql2", "~> 0.5"
|
||||||
|
|
||||||
# Use the Puma web server [https://github.com/puma/puma]
|
# Use the Puma web server [https://github.com/puma/puma]
|
||||||
gem "puma", "~> 5.0"
|
gem "puma", "~> 6.0"
|
||||||
|
|
||||||
# Use JavaScript with ESM import maps [https://github.com/rails/importmap-rails]
|
# Use JavaScript with ESM import maps [https://github.com/rails/importmap-rails]
|
||||||
gem "importmap-rails"
|
gem "importmap-rails"
|
||||||
|
|||||||
166
Gemfile.lock
166
Gemfile.lock
@ -1,35 +1,35 @@
|
|||||||
GEM
|
GEM
|
||||||
remote: https://rubygems.org/
|
remote: https://rubygems.org/
|
||||||
specs:
|
specs:
|
||||||
actioncable (7.1.3)
|
actioncable (7.1.3.2)
|
||||||
actionpack (= 7.1.3)
|
actionpack (= 7.1.3.2)
|
||||||
activesupport (= 7.1.3)
|
activesupport (= 7.1.3.2)
|
||||||
nio4r (~> 2.0)
|
nio4r (~> 2.0)
|
||||||
websocket-driver (>= 0.6.1)
|
websocket-driver (>= 0.6.1)
|
||||||
zeitwerk (~> 2.6)
|
zeitwerk (~> 2.6)
|
||||||
actionmailbox (7.1.3)
|
actionmailbox (7.1.3.2)
|
||||||
actionpack (= 7.1.3)
|
actionpack (= 7.1.3.2)
|
||||||
activejob (= 7.1.3)
|
activejob (= 7.1.3.2)
|
||||||
activerecord (= 7.1.3)
|
activerecord (= 7.1.3.2)
|
||||||
activestorage (= 7.1.3)
|
activestorage (= 7.1.3.2)
|
||||||
activesupport (= 7.1.3)
|
activesupport (= 7.1.3.2)
|
||||||
mail (>= 2.7.1)
|
mail (>= 2.7.1)
|
||||||
net-imap
|
net-imap
|
||||||
net-pop
|
net-pop
|
||||||
net-smtp
|
net-smtp
|
||||||
actionmailer (7.1.3)
|
actionmailer (7.1.3.2)
|
||||||
actionpack (= 7.1.3)
|
actionpack (= 7.1.3.2)
|
||||||
actionview (= 7.1.3)
|
actionview (= 7.1.3.2)
|
||||||
activejob (= 7.1.3)
|
activejob (= 7.1.3.2)
|
||||||
activesupport (= 7.1.3)
|
activesupport (= 7.1.3.2)
|
||||||
mail (~> 2.5, >= 2.5.4)
|
mail (~> 2.5, >= 2.5.4)
|
||||||
net-imap
|
net-imap
|
||||||
net-pop
|
net-pop
|
||||||
net-smtp
|
net-smtp
|
||||||
rails-dom-testing (~> 2.2)
|
rails-dom-testing (~> 2.2)
|
||||||
actionpack (7.1.3)
|
actionpack (7.1.3.2)
|
||||||
actionview (= 7.1.3)
|
actionview (= 7.1.3.2)
|
||||||
activesupport (= 7.1.3)
|
activesupport (= 7.1.3.2)
|
||||||
nokogiri (>= 1.8.5)
|
nokogiri (>= 1.8.5)
|
||||||
racc
|
racc
|
||||||
rack (>= 2.2.4)
|
rack (>= 2.2.4)
|
||||||
@ -37,35 +37,35 @@ GEM
|
|||||||
rack-test (>= 0.6.3)
|
rack-test (>= 0.6.3)
|
||||||
rails-dom-testing (~> 2.2)
|
rails-dom-testing (~> 2.2)
|
||||||
rails-html-sanitizer (~> 1.6)
|
rails-html-sanitizer (~> 1.6)
|
||||||
actiontext (7.1.3)
|
actiontext (7.1.3.2)
|
||||||
actionpack (= 7.1.3)
|
actionpack (= 7.1.3.2)
|
||||||
activerecord (= 7.1.3)
|
activerecord (= 7.1.3.2)
|
||||||
activestorage (= 7.1.3)
|
activestorage (= 7.1.3.2)
|
||||||
activesupport (= 7.1.3)
|
activesupport (= 7.1.3.2)
|
||||||
globalid (>= 0.6.0)
|
globalid (>= 0.6.0)
|
||||||
nokogiri (>= 1.8.5)
|
nokogiri (>= 1.8.5)
|
||||||
actionview (7.1.3)
|
actionview (7.1.3.2)
|
||||||
activesupport (= 7.1.3)
|
activesupport (= 7.1.3.2)
|
||||||
builder (~> 3.1)
|
builder (~> 3.1)
|
||||||
erubi (~> 1.11)
|
erubi (~> 1.11)
|
||||||
rails-dom-testing (~> 2.2)
|
rails-dom-testing (~> 2.2)
|
||||||
rails-html-sanitizer (~> 1.6)
|
rails-html-sanitizer (~> 1.6)
|
||||||
activejob (7.1.3)
|
activejob (7.1.3.2)
|
||||||
activesupport (= 7.1.3)
|
activesupport (= 7.1.3.2)
|
||||||
globalid (>= 0.3.6)
|
globalid (>= 0.3.6)
|
||||||
activemodel (7.1.3)
|
activemodel (7.1.3.2)
|
||||||
activesupport (= 7.1.3)
|
activesupport (= 7.1.3.2)
|
||||||
activerecord (7.1.3)
|
activerecord (7.1.3.2)
|
||||||
activemodel (= 7.1.3)
|
activemodel (= 7.1.3.2)
|
||||||
activesupport (= 7.1.3)
|
activesupport (= 7.1.3.2)
|
||||||
timeout (>= 0.4.0)
|
timeout (>= 0.4.0)
|
||||||
activestorage (7.1.3)
|
activestorage (7.1.3.2)
|
||||||
actionpack (= 7.1.3)
|
actionpack (= 7.1.3.2)
|
||||||
activejob (= 7.1.3)
|
activejob (= 7.1.3.2)
|
||||||
activerecord (= 7.1.3)
|
activerecord (= 7.1.3.2)
|
||||||
activesupport (= 7.1.3)
|
activesupport (= 7.1.3.2)
|
||||||
marcel (~> 1.0)
|
marcel (~> 1.0)
|
||||||
activesupport (7.1.3)
|
activesupport (7.1.3.2)
|
||||||
base64
|
base64
|
||||||
bigdecimal
|
bigdecimal
|
||||||
concurrent-ruby (~> 1.0, >= 1.0.2)
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
||||||
@ -79,7 +79,7 @@ GEM
|
|||||||
public_suffix (>= 2.0.2, < 6.0)
|
public_suffix (>= 2.0.2, < 6.0)
|
||||||
base64 (0.2.0)
|
base64 (0.2.0)
|
||||||
bcrypt (3.1.20)
|
bcrypt (3.1.20)
|
||||||
bigdecimal (3.1.6)
|
bigdecimal (3.1.8)
|
||||||
bindex (0.8.1)
|
bindex (0.8.1)
|
||||||
bootsnap (1.18.3)
|
bootsnap (1.18.3)
|
||||||
msgpack (~> 1.2)
|
msgpack (~> 1.2)
|
||||||
@ -97,31 +97,30 @@ GEM
|
|||||||
connection_pool (2.4.1)
|
connection_pool (2.4.1)
|
||||||
crass (1.0.6)
|
crass (1.0.6)
|
||||||
date (3.3.4)
|
date (3.3.4)
|
||||||
debug (1.9.1)
|
debug (1.9.2)
|
||||||
irb (~> 1.10)
|
irb (~> 1.10)
|
||||||
reline (>= 0.3.8)
|
reline (>= 0.3.8)
|
||||||
devise (4.9.3)
|
devise (4.9.4)
|
||||||
bcrypt (~> 3.0)
|
bcrypt (~> 3.0)
|
||||||
orm_adapter (~> 0.1)
|
orm_adapter (~> 0.1)
|
||||||
railties (>= 4.1.0)
|
railties (>= 4.1.0)
|
||||||
responders
|
responders
|
||||||
warden (~> 1.2.3)
|
warden (~> 1.2.3)
|
||||||
drb (2.2.0)
|
drb (2.2.1)
|
||||||
ruby2_keywords
|
|
||||||
erubi (1.12.0)
|
erubi (1.12.0)
|
||||||
globalid (1.2.1)
|
globalid (1.2.1)
|
||||||
activesupport (>= 6.1)
|
activesupport (>= 6.1)
|
||||||
i18n (1.14.1)
|
i18n (1.14.5)
|
||||||
concurrent-ruby (~> 1.0)
|
concurrent-ruby (~> 1.0)
|
||||||
importmap-rails (2.0.1)
|
importmap-rails (2.0.1)
|
||||||
actionpack (>= 6.0.0)
|
actionpack (>= 6.0.0)
|
||||||
activesupport (>= 6.0.0)
|
activesupport (>= 6.0.0)
|
||||||
railties (>= 6.0.0)
|
railties (>= 6.0.0)
|
||||||
io-console (0.7.2)
|
io-console (0.7.2)
|
||||||
irb (1.11.1)
|
irb (1.13.1)
|
||||||
rdoc
|
rdoc (>= 4.0.0)
|
||||||
reline (>= 0.4.2)
|
reline (>= 0.4.2)
|
||||||
jbuilder (2.11.5)
|
jbuilder (2.12.0)
|
||||||
actionview (>= 5.0.0)
|
actionview (>= 5.0.0)
|
||||||
activesupport (>= 5.0.0)
|
activesupport (>= 5.0.0)
|
||||||
loofah (2.22.0)
|
loofah (2.22.0)
|
||||||
@ -132,35 +131,35 @@ GEM
|
|||||||
net-imap
|
net-imap
|
||||||
net-pop
|
net-pop
|
||||||
net-smtp
|
net-smtp
|
||||||
marcel (1.0.2)
|
marcel (1.0.4)
|
||||||
matrix (0.4.2)
|
matrix (0.4.2)
|
||||||
mini_mime (1.1.5)
|
mini_mime (1.1.5)
|
||||||
mini_portile2 (2.8.5)
|
mini_portile2 (2.8.6)
|
||||||
minitest (5.21.2)
|
minitest (5.22.3)
|
||||||
msgpack (1.7.2)
|
msgpack (1.7.2)
|
||||||
mutex_m (0.2.0)
|
mutex_m (0.2.0)
|
||||||
mysql2 (0.5.5)
|
mysql2 (0.5.6)
|
||||||
net-imap (0.4.9.1)
|
net-imap (0.4.11)
|
||||||
date
|
date
|
||||||
net-protocol
|
net-protocol
|
||||||
net-pop (0.1.2)
|
net-pop (0.1.2)
|
||||||
net-protocol
|
net-protocol
|
||||||
net-protocol (0.2.2)
|
net-protocol (0.2.2)
|
||||||
timeout
|
timeout
|
||||||
net-smtp (0.4.0.1)
|
net-smtp (0.5.0)
|
||||||
net-protocol
|
net-protocol
|
||||||
nio4r (2.7.0)
|
nio4r (2.7.3)
|
||||||
nokogiri (1.16.0)
|
nokogiri (1.16.4)
|
||||||
mini_portile2 (~> 2.8.2)
|
mini_portile2 (~> 2.8.2)
|
||||||
racc (~> 1.4)
|
racc (~> 1.4)
|
||||||
orm_adapter (0.5.0)
|
orm_adapter (0.5.0)
|
||||||
psych (5.1.2)
|
psych (5.1.2)
|
||||||
stringio
|
stringio
|
||||||
public_suffix (5.0.4)
|
public_suffix (5.0.5)
|
||||||
puma (5.6.8)
|
puma (6.4.2)
|
||||||
nio4r (~> 2.0)
|
nio4r (~> 2.0)
|
||||||
racc (1.7.3)
|
racc (1.7.3)
|
||||||
rack (3.0.9)
|
rack (3.0.10)
|
||||||
rack-session (2.0.0)
|
rack-session (2.0.0)
|
||||||
rack (>= 3.0.0)
|
rack (>= 3.0.0)
|
||||||
rack-test (2.1.0)
|
rack-test (2.1.0)
|
||||||
@ -168,20 +167,20 @@ GEM
|
|||||||
rackup (2.1.0)
|
rackup (2.1.0)
|
||||||
rack (>= 3)
|
rack (>= 3)
|
||||||
webrick (~> 1.8)
|
webrick (~> 1.8)
|
||||||
rails (7.1.3)
|
rails (7.1.3.2)
|
||||||
actioncable (= 7.1.3)
|
actioncable (= 7.1.3.2)
|
||||||
actionmailbox (= 7.1.3)
|
actionmailbox (= 7.1.3.2)
|
||||||
actionmailer (= 7.1.3)
|
actionmailer (= 7.1.3.2)
|
||||||
actionpack (= 7.1.3)
|
actionpack (= 7.1.3.2)
|
||||||
actiontext (= 7.1.3)
|
actiontext (= 7.1.3.2)
|
||||||
actionview (= 7.1.3)
|
actionview (= 7.1.3.2)
|
||||||
activejob (= 7.1.3)
|
activejob (= 7.1.3.2)
|
||||||
activemodel (= 7.1.3)
|
activemodel (= 7.1.3.2)
|
||||||
activerecord (= 7.1.3)
|
activerecord (= 7.1.3.2)
|
||||||
activestorage (= 7.1.3)
|
activestorage (= 7.1.3.2)
|
||||||
activesupport (= 7.1.3)
|
activesupport (= 7.1.3.2)
|
||||||
bundler (>= 1.15.0)
|
bundler (>= 1.15.0)
|
||||||
railties (= 7.1.3)
|
railties (= 7.1.3.2)
|
||||||
rails-dom-testing (2.2.0)
|
rails-dom-testing (2.2.0)
|
||||||
activesupport (>= 5.0.0)
|
activesupport (>= 5.0.0)
|
||||||
minitest
|
minitest
|
||||||
@ -189,27 +188,26 @@ GEM
|
|||||||
rails-html-sanitizer (1.6.0)
|
rails-html-sanitizer (1.6.0)
|
||||||
loofah (~> 2.21)
|
loofah (~> 2.21)
|
||||||
nokogiri (~> 1.14)
|
nokogiri (~> 1.14)
|
||||||
railties (7.1.3)
|
railties (7.1.3.2)
|
||||||
actionpack (= 7.1.3)
|
actionpack (= 7.1.3.2)
|
||||||
activesupport (= 7.1.3)
|
activesupport (= 7.1.3.2)
|
||||||
irb
|
irb
|
||||||
rackup (>= 1.0.0)
|
rackup (>= 1.0.0)
|
||||||
rake (>= 12.2)
|
rake (>= 12.2)
|
||||||
thor (~> 1.0, >= 1.2.2)
|
thor (~> 1.0, >= 1.2.2)
|
||||||
zeitwerk (~> 2.6)
|
zeitwerk (~> 2.6)
|
||||||
rake (13.1.0)
|
rake (13.2.1)
|
||||||
rdoc (6.6.2)
|
rdoc (6.6.3.1)
|
||||||
psych (>= 4.0.0)
|
psych (>= 4.0.0)
|
||||||
regexp_parser (2.9.0)
|
regexp_parser (2.9.0)
|
||||||
reline (0.4.2)
|
reline (0.5.6)
|
||||||
io-console (~> 0.5)
|
io-console (~> 0.5)
|
||||||
responders (3.1.1)
|
responders (3.1.1)
|
||||||
actionpack (>= 5.2)
|
actionpack (>= 5.2)
|
||||||
railties (>= 5.2)
|
railties (>= 5.2)
|
||||||
rexml (3.2.6)
|
rexml (3.2.6)
|
||||||
ruby2_keywords (0.0.5)
|
|
||||||
rubyzip (2.3.2)
|
rubyzip (2.3.2)
|
||||||
selenium-webdriver (4.17.0)
|
selenium-webdriver (4.20.1)
|
||||||
base64 (~> 0.2)
|
base64 (~> 0.2)
|
||||||
rexml (~> 3.2, >= 3.2.5)
|
rexml (~> 3.2, >= 3.2.5)
|
||||||
rubyzip (>= 1.2.2, < 3.0)
|
rubyzip (>= 1.2.2, < 3.0)
|
||||||
@ -224,9 +222,9 @@ GEM
|
|||||||
stimulus-rails (1.3.3)
|
stimulus-rails (1.3.3)
|
||||||
railties (>= 6.0.0)
|
railties (>= 6.0.0)
|
||||||
stringio (3.1.0)
|
stringio (3.1.0)
|
||||||
thor (1.3.0)
|
thor (1.3.1)
|
||||||
timeout (0.4.1)
|
timeout (0.4.1)
|
||||||
turbo-rails (1.5.0)
|
turbo-rails (2.0.5)
|
||||||
actionpack (>= 6.0.0)
|
actionpack (>= 6.0.0)
|
||||||
activejob (>= 6.0.0)
|
activejob (>= 6.0.0)
|
||||||
railties (>= 6.0.0)
|
railties (>= 6.0.0)
|
||||||
@ -250,7 +248,7 @@ GEM
|
|||||||
websocket-extensions (0.1.5)
|
websocket-extensions (0.1.5)
|
||||||
xpath (3.2.0)
|
xpath (3.2.0)
|
||||||
nokogiri (~> 1.8)
|
nokogiri (~> 1.8)
|
||||||
zeitwerk (2.6.12)
|
zeitwerk (2.6.13)
|
||||||
|
|
||||||
PLATFORMS
|
PLATFORMS
|
||||||
x86_64-openbsd
|
x86_64-openbsd
|
||||||
@ -263,8 +261,8 @@ DEPENDENCIES
|
|||||||
importmap-rails
|
importmap-rails
|
||||||
jbuilder
|
jbuilder
|
||||||
mysql2 (~> 0.5)
|
mysql2 (~> 0.5)
|
||||||
puma (~> 5.0)
|
puma (~> 6.0)
|
||||||
rails (= 7.1.3)
|
rails (= 7.1.3.2)
|
||||||
selenium-webdriver
|
selenium-webdriver
|
||||||
sprockets-rails
|
sprockets-rails
|
||||||
stimulus-rails
|
stimulus-rails
|
||||||
@ -274,7 +272,7 @@ DEPENDENCIES
|
|||||||
webdrivers
|
webdrivers
|
||||||
|
|
||||||
RUBY VERSION
|
RUBY VERSION
|
||||||
ruby 3.2.3p157
|
ruby 3.3.0p0
|
||||||
|
|
||||||
BUNDLED WITH
|
BUNDLED WITH
|
||||||
2.3.26
|
2.3.26
|
||||||
|
|||||||
@ -12,8 +12,9 @@ Is derived from https://github.com/OpenSMTPD/OpenSMTPD-extras/blob/master/extras
|
|||||||
|
|
||||||
## Prerequisites
|
## Prerequisites
|
||||||
|
|
||||||
* Ruby version - 3.2.2p53
|
* Ruby version - 3.2.3
|
||||||
* Rails 7.0.5.1
|
|
||||||
|
* Rails 7.1.3
|
||||||
|
|
||||||
* System dependencies
|
* System dependencies
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,14 @@
|
|||||||
class Domain < ApplicationRecord
|
class Domain < ApplicationRecord
|
||||||
|
after_create :create_abuse_postmaster
|
||||||
|
|
||||||
has_many :credentials, dependent: :destroy
|
has_many :credentials, dependent: :destroy
|
||||||
has_many :virtuals, dependent: :destroy
|
has_many :virtuals, dependent: :destroy
|
||||||
validates :domain, presence: true
|
validates :domain, presence: true
|
||||||
validates :domain, uniqueness: true
|
validates :domain, uniqueness: true
|
||||||
|
|
||||||
|
private
|
||||||
|
def create_abuse_postmaster
|
||||||
|
Virtual.create(email: "abuse@#{self.domain}", destination: "jez@warwickhunt.com", domain_id: self.id)
|
||||||
|
Virtual.create(email: "postmaster@#{self.domain}", destination: "jez@warwickhunt.com", domain_id: self.id)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -41,4 +41,4 @@ pidfile ENV.fetch("PIDFILE") { "tmp/pids/server.pid" }
|
|||||||
|
|
||||||
# Allow puma to be restarted by `bin/rails restart` command.
|
# Allow puma to be restarted by `bin/rails restart` command.
|
||||||
plugin :tmp_restart
|
plugin :tmp_restart
|
||||||
bind 'tcp://0.0.0.0:3001'
|
bind 'tcp://0.0.0.0:3002'
|
||||||
|
|||||||
@ -3,7 +3,7 @@ require "test_helper"
|
|||||||
class DomainTest < ActiveSupport::TestCase
|
class DomainTest < ActiveSupport::TestCase
|
||||||
test "domain can not be blank" do
|
test "domain can not be blank" do
|
||||||
@d = Domain.new
|
@d = Domain.new
|
||||||
assert !@d.save
|
assert_not @d.save
|
||||||
end
|
end
|
||||||
|
|
||||||
test "domain can not be duplicated" do
|
test "domain can not be duplicated" do
|
||||||
@ -13,6 +13,13 @@ class DomainTest < ActiveSupport::TestCase
|
|||||||
|
|
||||||
@d2 = Domain.new
|
@d2 = Domain.new
|
||||||
@d2.domain = "example.com"
|
@d2.domain = "example.com"
|
||||||
assert !@d2.save
|
assert_not @d2.save
|
||||||
|
end
|
||||||
|
|
||||||
|
test "domain created with abuse and postmaster" do
|
||||||
|
@d = Domain.new(domain: "example.org.uk")
|
||||||
|
assert @d.save
|
||||||
|
|
||||||
|
assert_equal(@d.virtuals.count,2)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user