postfix_admin 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -24,36 +24,41 @@ module PostfixAdmin
24
24
  runner { puts PostfixAdmin::Doveadm.schemes.join(' ') }
25
25
  end
26
26
 
27
- desc "show [example.com | admin@example.com | user@example.com]", "Show domains or admins or mailboxes"
27
+ desc "show [example.com | admin@example.com | user@example.com]",
28
+ "Display details about domains, admins, or accounts"
28
29
  def show(name = nil)
29
30
  runner { @cli.show(name) }
30
31
  end
31
32
 
32
- desc "setup example.com password", "Setup a domain"
33
+ desc "setup example.com password", "Set up a domain"
33
34
  def setup(domain_name, password)
34
35
  runner { @cli.setup_domain(domain_name, password) }
35
36
  end
36
37
 
37
- desc "admin_passwd admin@example.com new_password", "Change password of admin"
38
+ desc "admin_passwd admin@example.com new_password",
39
+ "Change the password of an admin user"
38
40
  def admin_passwd(user_name, password)
39
41
  runner { @cli.change_admin_password(user_name, password) }
40
42
  end
41
43
 
42
- desc "account_passwd user@example.com new_password", "Change password of account"
44
+ desc "account_passwd user@example.com new_password",
45
+ "Change the password of an account"
43
46
  def account_passwd(user_name, password)
44
47
  runner { @cli.change_account_password(user_name, password) }
45
48
  end
46
49
 
47
- desc "add_domain example.com", "Add a domain"
50
+ desc "add_domain example.com", "Add a new domain"
51
+ method_option :description, type: :string, aliases: "-d", desc: "description"
48
52
  def add_domain(domain_name)
49
- runner { @cli.add_domain(domain_name) }
53
+ runner { @cli.add_domain(domain_name, description: options[:description]) }
50
54
  end
51
55
 
52
- desc "edit_domain example.com", "Edit a domain limitation"
56
+ desc "edit_domain example.com", "Edit a domain"
53
57
  method_option :aliases, type: :numeric, aliases: "-a", desc: "Edit aliases limitation"
54
58
  method_option :mailboxes, type: :numeric, aliases: "-m", desc: "Edit mailboxes limitation"
55
59
  method_option :maxquota, type: :numeric, aliases: "-q", desc: "Edit max quota limitation"
56
60
  method_option :active, type: :boolean, desc: "Update active status"
61
+ method_option :description, type: :string, aliases: "-d", desc: "Edit description"
57
62
  def edit_domain(domain_name)
58
63
  runner do
59
64
  if options.size == 0
@@ -70,7 +75,7 @@ module PostfixAdmin
70
75
  runner { @cli.delete_domain(domain_name) }
71
76
  end
72
77
 
73
- desc "delete_admin admin@example.com", "Delete an admin"
78
+ desc "delete_admin admin@example.com", "Delete an admin user"
74
79
  def delete_admin(user_name)
75
80
  runner { @cli.delete_admin(user_name) }
76
81
  end
@@ -80,7 +85,7 @@ module PostfixAdmin
80
85
  runner { @cli.delete_account(address) }
81
86
  end
82
87
 
83
- desc "add_account user@example.com password", "Add an account"
88
+ desc "add_account user@example.com password", "Add a new account"
84
89
  method_option :scheme, type: :string, aliases: "-s", desc: "password scheme"
85
90
  method_option :name, type: :string, aliases: "-n", desc: "full name"
86
91
  def add_account(address, password)
@@ -100,10 +105,14 @@ module PostfixAdmin
100
105
  end
101
106
 
102
107
  desc "edit_account user@example.com", "Edit an account"
103
- method_option :goto, type: :string, aliases: "-g", desc: "mailboxes, addresses e-mails are delivered to"
104
- method_option :quota, type: :numeric, aliases: "-q", desc: "quota limitation (MB)"
105
- method_option :name, type: :string, aliases: "-n", desc: "full name"
106
- method_option :active, type: :boolean, desc: "Update active status"
108
+ method_option :goto, type: :string, aliases: "-g",
109
+ desc: "mailboxes, addresses e-mails are delivered to"
110
+ method_option :quota, type: :numeric, aliases: "-q",
111
+ desc: "quota limitation (MB)"
112
+ method_option :name, type: :string, aliases: "-n",
113
+ desc: "full name"
114
+ method_option :active, type: :boolean,
115
+ desc: "Update active status"
107
116
  def edit_account(address)
108
117
  runner do
109
118
  if options.size == 0
@@ -134,7 +143,7 @@ module PostfixAdmin
134
143
  end
135
144
  end
136
145
 
137
- desc "add_admin admin@example.com password", "Add an admin user"
146
+ desc "add_admin admin@example.com password", "Add a new admin user"
138
147
  method_option :super, type: :boolean, aliases: "-S", desc: "register as a super admin"
139
148
  method_option :scheme, type: :string, aliases: "-s", desc: "password scheme"
140
149
  def add_admin(user_name, password)
@@ -148,12 +157,14 @@ module PostfixAdmin
148
157
  end
149
158
  end
150
159
 
151
- desc "add_admin_domain admin@example.com example.com", "Add admin_domain"
160
+ desc "add_admin_domain admin@example.com example.com",
161
+ "Grant an admin user access to a specific domain"
152
162
  def add_admin_domain(user_name, domain_name)
153
163
  runner { @cli.add_admin_domain(user_name, domain_name) }
154
164
  end
155
165
 
156
- desc "delete_admin_domain admin@example.com example.com", "Delete admin_domain"
166
+ desc "delete_admin_domain admin@example.com example.com",
167
+ "Revoke an admin user's access to a specific domain"
157
168
  def delete_admin_domain(user_name, domain_name)
158
169
  runner { @cli.delete_admin_domain(user_name, domain_name) }
159
170
  end
@@ -173,7 +184,7 @@ module PostfixAdmin
173
184
  end
174
185
  end
175
186
 
176
- desc "add_alias alias@example.com goto@example.net", "Add an alias"
187
+ desc "add_alias alias@example.com goto@example.net", "Add a new alias"
177
188
  def add_alias(address, goto)
178
189
  runner { @cli.add_alias(address, goto) }
179
190
  end
@@ -183,9 +194,11 @@ module PostfixAdmin
183
194
  runner { @cli.delete_alias(address) }
184
195
  end
185
196
 
186
- desc "log", "Show action logs"
197
+ desc "log", "Display action logs"
198
+ method_option :domain, type: :string, aliases: "-d", desc: "Filter by domain"
199
+ method_option :last, type: :numeric, aliases: "-l", desc: "Display the last N lines"
187
200
  def log
188
- runner { @cli.log }
201
+ runner { @cli.log(domain: options[:domain], last: options[:last]) }
189
202
  end
190
203
 
191
204
  desc "dump", "Dump all data"
@@ -193,7 +206,7 @@ module PostfixAdmin
193
206
  runner { @cli.dump }
194
207
  end
195
208
 
196
- desc "version", "Show postfix_admin version"
209
+ desc "version", "Display the version of postfix_admin"
197
210
  def version
198
211
  require 'postfix_admin/version'
199
212
  runner { say "postfix_admin #{VERSION}" }
@@ -201,9 +214,9 @@ module PostfixAdmin
201
214
 
202
215
  private
203
216
 
204
- def runner
217
+ def runner(&block)
205
218
  @cli.db_setup
206
- yield
219
+ block.call
207
220
  rescue StandardError => e
208
221
  abort "Error: #{e.message}"
209
222
  end
@@ -1,3 +1,3 @@
1
1
  module PostfixAdmin
2
- VERSION = "0.2.0"
2
+ VERSION = "0.3.0"
3
3
  end
@@ -1,4 +1,4 @@
1
- require File.expand_path('../lib/postfix_admin/version', __FILE__)
1
+ require File.expand_path("../lib/postfix_admin/version", __FILE__)
2
2
 
3
3
  Gem::Specification.new do |gem|
4
4
  gem.name = "postfix_admin"
@@ -10,17 +10,21 @@ Gem::Specification.new do |gem|
10
10
  gem.description = %q{Command Line Tools for Postfix Admin}
11
11
  gem.homepage = "https://github.com/krhitoshi/postfix_admin"
12
12
 
13
- gem.add_dependency 'thor', '~> 1.0.1'
14
- gem.add_dependency 'activerecord', '~> 6.0.3'
15
- gem.add_dependency 'mysql2', '>= 0.5.3'
16
- gem.add_development_dependency 'pry'
17
- gem.add_development_dependency 'rake', '~> 13.0.1'
18
- gem.add_development_dependency 'rubocop'
19
- gem.add_development_dependency 'rspec', '~> 3.9.0'
13
+ gem.required_ruby_version = ">= 2.6.0"
14
+
15
+ gem.add_dependency "thor", "~> 1.3.1"
16
+ gem.add_dependency "activerecord", "~> 6.1.7"
17
+ gem.add_dependency "mysql2", "~> 0.5"
18
+ gem.add_dependency "terminal-table", "~> 3.0.2"
19
+ gem.add_development_dependency "pry"
20
+ gem.add_development_dependency "factory_bot", "~> 6.3.0"
21
+ gem.add_development_dependency "rake", "~> 13.2.1"
22
+ gem.add_development_dependency "rubocop"
23
+ gem.add_development_dependency "rspec", "~> 3.13.0"
20
24
 
21
25
  # Specify which files should be added to the gem when it is released.
22
26
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
23
- gem.files = Dir.chdir(File.expand_path('..', __FILE__)) do
27
+ gem.files = Dir.chdir(File.expand_path("..", __FILE__)) do
24
28
  `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
25
29
  end
26
30
  gem.bindir = "exe"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: postfix_admin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hitoshi Kurokawa
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-07-15 00:00:00.000000000 Z
11
+ date: 2024-06-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -16,42 +16,56 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 1.0.1
19
+ version: 1.3.1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 1.0.1
26
+ version: 1.3.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: activerecord
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 6.0.3
33
+ version: 6.1.7
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 6.0.3
40
+ version: 6.1.7
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: mysql2
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 0.5.3
47
+ version: '0.5'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 0.5.3
54
+ version: '0.5'
55
+ - !ruby/object:Gem::Dependency
56
+ name: terminal-table
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 3.0.2
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 3.0.2
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: pry
57
71
  requirement: !ruby/object:Gem::Requirement
@@ -66,20 +80,34 @@ dependencies:
66
80
  - - ">="
67
81
  - !ruby/object:Gem::Version
68
82
  version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: factory_bot
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: 6.3.0
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: 6.3.0
69
97
  - !ruby/object:Gem::Dependency
70
98
  name: rake
71
99
  requirement: !ruby/object:Gem::Requirement
72
100
  requirements:
73
101
  - - "~>"
74
102
  - !ruby/object:Gem::Version
75
- version: 13.0.1
103
+ version: 13.2.1
76
104
  type: :development
77
105
  prerelease: false
78
106
  version_requirements: !ruby/object:Gem::Requirement
79
107
  requirements:
80
108
  - - "~>"
81
109
  - !ruby/object:Gem::Version
82
- version: 13.0.1
110
+ version: 13.2.1
83
111
  - !ruby/object:Gem::Dependency
84
112
  name: rubocop
85
113
  requirement: !ruby/object:Gem::Requirement
@@ -100,14 +128,14 @@ dependencies:
100
128
  requirements:
101
129
  - - "~>"
102
130
  - !ruby/object:Gem::Version
103
- version: 3.9.0
131
+ version: 3.13.0
104
132
  type: :development
105
133
  prerelease: false
106
134
  version_requirements: !ruby/object:Gem::Requirement
107
135
  requirements:
108
136
  - - "~>"
109
137
  - !ruby/object:Gem::Version
110
- version: 3.9.0
138
+ version: 3.13.0
111
139
  description: Command Line Tools for Postfix Admin
112
140
  email:
113
141
  - hitoshi@nextseed.jp
@@ -116,18 +144,24 @@ executables:
116
144
  extensions: []
117
145
  extra_rdoc_files: []
118
146
  files:
147
+ - ".github/workflows/ci.yml"
119
148
  - ".gitignore"
120
149
  - ".rubocop.yml"
121
150
  - CHANGELOG.md
122
- - Dockerfile
123
151
  - Gemfile
124
152
  - LICENSE
125
153
  - README.md
126
154
  - Rakefile
127
155
  - Thorfile
128
156
  - bin/console
157
+ - docker-admin/Dockerfile
158
+ - docker-admin/config.local.php
159
+ - docker-app/Dockerfile
160
+ - docker-app/my.cnf
129
161
  - docker-compose.yml
130
- - docker-entrypoint.sh
162
+ - docker-db/postfix.v1841.sql
163
+ - docker-db/postfix.v352.sql
164
+ - docker-db/postfix.v740.sql
131
165
  - exe/postfix_admin
132
166
  - lib/postfix_admin.rb
133
167
  - lib/postfix_admin/admin.rb
@@ -153,7 +187,7 @@ files:
153
187
  homepage: https://github.com/krhitoshi/postfix_admin
154
188
  licenses: []
155
189
  metadata: {}
156
- post_install_message:
190
+ post_install_message:
157
191
  rdoc_options: []
158
192
  require_paths:
159
193
  - lib
@@ -161,15 +195,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
161
195
  requirements:
162
196
  - - ">="
163
197
  - !ruby/object:Gem::Version
164
- version: '0'
198
+ version: 2.6.0
165
199
  required_rubygems_version: !ruby/object:Gem::Requirement
166
200
  requirements:
167
201
  - - ">="
168
202
  - !ruby/object:Gem::Version
169
203
  version: '0'
170
204
  requirements: []
171
- rubygems_version: 3.0.3
172
- signing_key:
205
+ rubygems_version: 3.5.3
206
+ signing_key:
173
207
  specification_version: 4
174
208
  summary: ''
175
209
  test_files: []
data/Dockerfile DELETED
@@ -1,24 +0,0 @@
1
- FROM centos:8
2
-
3
- RUN dnf -y module enable ruby:2.6 \
4
- && dnf -y install \
5
- ruby ruby-devel mariadb-devel sqlite-devel gcc make redhat-rpm-config \
6
- mariadb dovecot git \
7
- && dnf clean all
8
-
9
- WORKDIR /app
10
-
11
- COPY Gemfile postfix_admin.gemspec ./
12
- COPY ./lib/postfix_admin/version.rb ./lib/postfix_admin/version.rb
13
-
14
- RUN gem install bundler && bundle install
15
-
16
- COPY spec/postfix_admin.conf /root/.postfix_admin.conf
17
-
18
- COPY docker-entrypoint.sh /docker-entrypoint.sh
19
- RUN chmod +x /docker-entrypoint.sh
20
- ENTRYPOINT ["/docker-entrypoint.sh"]
21
-
22
- EXPOSE 80
23
-
24
- CMD ["/sbin/init"]
data/docker-entrypoint.sh DELETED
@@ -1,5 +0,0 @@
1
- #!/bin/bash
2
-
3
- set -eu
4
-
5
- exec "$@"