fradium 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7ce71d5bd193a02708e7df237def67eaea5c5f9be61b550af5a65ca834ede942
4
- data.tar.gz: 7d72e9d9c41dc3f96988a3bba3ae7474e4f783c318e7a65ffb6dc130d86aa947
3
+ metadata.gz: 7ac78d78887194303b1eb5146c87e0a2ed739cc4ebc7436302a1f03fa010df86
4
+ data.tar.gz: 0bdd1b2862746b1f27fce9b6627d8762a697c6ba73f4f8f7b5298d3af25cec5e
5
5
  SHA512:
6
- metadata.gz: 3fe0709bfb196128e913d4225967735bb67ae4c2763d4bc6137ed9ea30c0875edc11291a6168c42f5a9a9b1fa01590260e8f100fc8ab173f0cf01a00f7510122
7
- data.tar.gz: 2f7c921c15bf3a55ab5f5f26a5786448de55c628c9d78c12689146919fcea32bf139e0fd8e39804a8bb5f593b3dbc882ccd75940d482c20ebc6c5595aca0537f
6
+ metadata.gz: b612f965e45f3f213aadb8636034c88c8f058175865c2e01d6192084833af4a32baee6dfd66ce670e37e938ce635f68da7bf8c8ad7de7e7085d7162d9cac4d28
7
+ data.tar.gz: e7709e202d1fc585cce9597554e5a79bfe700ec443ca7909308f74bd5a2569a38d9378b17be04f2945d993d1c94079cb8610b1ef71fd5a09418fede51838b735
data/Gemfile.lock CHANGED
@@ -1,8 +1,9 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- fradium (0.1.2)
4
+ fradium (0.1.3)
5
5
  mysql2 (~> 0.5)
6
+ pg (~> 1.1)
6
7
  sequel (~> 5.23)
7
8
  sqlite3 (~> 1.4)
8
9
 
@@ -13,6 +14,7 @@ GEM
13
14
  diff-lcs (1.3)
14
15
  method_source (0.9.2)
15
16
  mysql2 (0.5.2)
17
+ pg (1.1.4)
16
18
  pry (0.12.2)
17
19
  coderay (~> 1.1.0)
18
20
  method_source (~> 0.9.0)
data/README.md CHANGED
@@ -15,7 +15,7 @@ This software is licensed under the MIT license.
15
15
 
16
16
  First of all, create a confiuration file called `.fradium.yaml` in your home directory and specify information needed to your RADIUS database. You can define multiple configuration sets called *profile*.
17
17
 
18
- Supported databases are MySQL and MariaDB via `mysql2` adapter so far. It should be work with SQLite or PostgreSQL but still experimental.
18
+ Supported databases are MySQL and MariaDB via `mysql2` adapter so far. It should be work with SQLite 3 or PostgreSQL but still experimental.
19
19
 
20
20
  ```
21
21
  default: # default profile
@@ -31,9 +31,11 @@ staging:
31
31
  username: root
32
32
  password:
33
33
  database: radius_staging
34
+
35
+ sqlite: "sqlite:///path/to/sqlite_database.sqlite"
34
36
  ```
35
37
 
36
- Profiles can be choose by `--profile` option. Specify like `--profile=targetprofile`. If not specified, profile named `default` will be refered by default.
38
+ Profiles can be chosen by `--profile` option. Specify like `--profile=targetprofile`. If not specified, profile named `default` will be refered by default. Parameters defined in this config file are passed to [Sequel#connect](https://www.rubydoc.info/github/evanfarrar/opensprints/Sequel.connect) method as-is.
37
39
 
38
40
  ### Further usage
39
41
 
@@ -41,7 +43,7 @@ It would be easy to use. Running `fradium` without any options will show the usa
41
43
 
42
44
  ```
43
45
  usage:
44
- exe/fradium [--profile=profile] subcommand ...
46
+ fradium [--profile=profile] subcommand ...
45
47
 
46
48
  subcommands as follows:
47
49
  create <username> # create new user with password
@@ -49,6 +51,7 @@ subcommands as follows:
49
51
  showall # show all users
50
52
  showvalid # show valid(not expired) users
51
53
  showexpired # show expired users
54
+ showexpiry # show expiry inforrmation
52
55
  expire <username> # expire the user right now
53
56
  unexpire <username> # unexpire the user
54
57
  setexpire <username> <expiry date> # set expiry date (date must be parseable by Time#parse)
data/exe/fradium CHANGED
@@ -42,6 +42,7 @@ subcommands as follows:
42
42
  showall # show all users
43
43
  showvalid # show valid(not expired) users
44
44
  showexpired # show expired users
45
+ showexpiry # show expiry inforrmation
45
46
  expire <username> # expire the user right now
46
47
  unexpire <username> # unexpire the user
47
48
  setexpire <username> <expiry date> # set expiry date (date must be parseable by Time#parse)
@@ -99,6 +100,18 @@ when 'showexpired'
99
100
  puts e
100
101
  end
101
102
 
103
+ when 'showexpiry'
104
+ @f.expiry.each do |e|
105
+ now = Time.now
106
+ expiry = Time.parse(e[:value])
107
+
108
+ print e[:username]
109
+ print "\t"
110
+ print expiry.iso8601
111
+ print "\tEXPIRED" if now > expiry
112
+ print "\n"
113
+ end
114
+
102
115
  when 'expire'
103
116
  @f.expire_user(ARGV[1])
104
117
 
data/fradium.gemspec CHANGED
@@ -39,5 +39,6 @@ Gem::Specification.new do |spec|
39
39
 
40
40
  spec.add_dependency 'mysql2', '~> 0.5'
41
41
  spec.add_dependency 'sqlite3', '~> 1.4'
42
+ spec.add_dependency 'pg', '~> 1.1'
42
43
  spec.add_dependency 'sequel', '~> 5.23'
43
44
  end
@@ -1,3 +1,3 @@
1
1
  class Fradium
2
- VERSION = "0.1.2"
2
+ VERSION = "0.1.3"
3
3
  end
data/lib/fradium.rb CHANGED
@@ -11,13 +11,7 @@ class Fradium
11
11
 
12
12
  def initialize(params)
13
13
  @params = params
14
-
15
- case @params['adapter']
16
- when 'sqlite'
17
- @sequel = Sequel.connect("sqlite://#{@params['file']}")
18
- else
19
- @sequel = Sequel.connect(@params)
20
- end
14
+ @sequel = Sequel.connect(@params)
21
15
  end
22
16
 
23
17
  def user_exists?(username)
@@ -54,6 +48,10 @@ class Fradium
54
48
  target.update(value: password, attribute: 'Cleartext-Password')
55
49
  end
56
50
 
51
+ def expiry
52
+ @sequel[:radcheck].where(attribute: 'Expiration')
53
+ end
54
+
57
55
  def expired_users
58
56
  now = Time.now
59
57
  # a little bit redundant but for consistency
@@ -98,13 +96,24 @@ class Fradium
98
96
  end
99
97
 
100
98
  def dbconsole
101
- # I know this is not safe.
102
- Kernel.exec({'MYSQL_PWD' => @params['password']},
103
- 'mysql',
104
- "--pager=less -SF",
105
- "--user=#{@params['username']}",
106
- "--host=#{@params['host']}" ,
107
- "#{@params['database']}")
99
+ case @sequel.adapter_scheme
100
+ when :mysql2
101
+ # I know this is not safe.
102
+ Kernel.exec({'MYSQL_PWD' => @params['password']},
103
+ 'mysql',
104
+ "--pager=less -SF",
105
+ "--user=#{@params['username']}",
106
+ "--host=#{@params['host']}" ,
107
+ "#{@params['database']}")
108
+ when :postgres
109
+ Kernel.exec({'PGPASSWORD' => @params['password']},
110
+ 'psql',
111
+ "--username=#{@params['username']}",
112
+ "--dbname=#{@params['database']}",
113
+ "--host=#{@params['host']}")
114
+ when :sqlite
115
+ Kernel.exec('sqlite3', @params)
116
+ end
108
117
  end
109
118
 
110
119
  def self.generate_random_password(length=10)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fradium
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Koichiro IWAO
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-09-02 00:00:00.000000000 Z
11
+ date: 2019-09-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -94,6 +94,20 @@ dependencies:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
96
  version: '1.4'
97
+ - !ruby/object:Gem::Dependency
98
+ name: pg
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '1.1'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '1.1'
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: sequel
99
113
  requirement: !ruby/object:Gem::Requirement