ezframe 0.0.4 → 0.4.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.
- checksums.yaml +4 -4
- data/Gemfile +2 -0
- data/README.md +1 -1
- data/asset/css/materialize.min.css +13 -0
- data/asset/css/style.css +3 -0
- data/asset/html/index.html +1 -0
- data/{app_template/asset/image/favicon.ico → asset/image/c_e.ico} +0 -0
- data/asset/js/ezframe.js +387 -0
- data/exe/check_column_yml +64 -0
- data/exe/console +2 -2
- data/exe/{create_table.rb → create_table} +7 -4
- data/exe/dbmigrate +174 -0
- data/exe/html2ruby +61 -0
- data/ezframe.gemspec +10 -8
- data/lib/ezframe.rb +9 -3
- data/lib/ezframe/auth.rb +50 -31
- data/lib/ezframe/column_set.rb +314 -103
- data/lib/ezframe/column_type.rb +456 -99
- data/lib/ezframe/config.rb +27 -6
- data/lib/ezframe/controller.rb +41 -38
- data/lib/ezframe/database.rb +171 -52
- data/lib/ezframe/editor_common.rb +74 -0
- data/lib/ezframe/email.rb +34 -0
- data/lib/ezframe/ezlog.rb +40 -0
- data/lib/ezframe/ht.rb +42 -17
- data/lib/ezframe/html.rb +47 -31
- data/lib/ezframe/japanese_utils.rb +15 -0
- data/lib/ezframe/jquery-ui.rb +29 -0
- data/lib/ezframe/loader.rb +4 -4
- data/lib/ezframe/main_editor.rb +19 -0
- data/lib/ezframe/main_page_kit.rb +226 -0
- data/lib/ezframe/materialize.rb +10 -14
- data/lib/ezframe/message.rb +46 -0
- data/lib/ezframe/page_base.rb +59 -71
- data/lib/ezframe/route.rb +126 -0
- data/lib/ezframe/server.rb +16 -5
- data/lib/ezframe/single_page_editor.rb +22 -0
- data/lib/ezframe/single_page_kit.rb +199 -0
- data/lib/ezframe/sub_editor.rb +25 -0
- data/lib/ezframe/sub_page_kit.rb +213 -0
- data/lib/ezframe/template.rb +5 -4
- data/lib/ezframe/util.rb +45 -23
- data/lib/ezframe/version.rb +1 -1
- metadata +74 -34
- data/.rubocop.yml +0 -44
- data/app_template/asset/js/ezframe.js +0 -288
- data/app_template/config.ru +0 -10
- data/app_template/config/generic.yml +0 -3
- data/app_template/config/materialize.yml +0 -5
- data/app_template/pages/basic.rb +0 -5
- data/exe/setup.rb +0 -15
- data/lib/ezframe/editor.rb +0 -188
- data/lib/ezframe/model.rb +0 -52
- data/lib/ezframe/page_kit.rb +0 -63
@@ -0,0 +1,64 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#codnig: utf-8
|
3
|
+
|
4
|
+
=begin
|
5
|
+
|
6
|
+
column/*.ymlのチェックをする。
|
7
|
+
|
8
|
+
=end
|
9
|
+
require "ezframe"
|
10
|
+
|
11
|
+
# https://stackoverflow.com/questions/4911105/in-ruby-how-to-be-warned-of-duplicate-keys-in-hashes-when-loading-a-yaml-docume
|
12
|
+
def duplicate_keys(file_or_content)
|
13
|
+
yaml = file_or_content.is_a?(File) ? file_or_content.read : file_or_content
|
14
|
+
duplicate_keys = []
|
15
|
+
|
16
|
+
validator = ->(node, parent_path) do
|
17
|
+
if node.is_a?(Psych::Nodes::Mapping)
|
18
|
+
children = node.children.each_slice(2) # In a Mapping, every other child is the key node, the other is the value node.
|
19
|
+
duplicates = children.map { |key_node, _value_node| key_node }.group_by(&:value).select { |_value, nodes| nodes.size > 1 }
|
20
|
+
|
21
|
+
duplicates.each do |key, nodes|
|
22
|
+
duplicate_key = {
|
23
|
+
file: (file_or_content.path if file_or_content.is_a?(File)),
|
24
|
+
key: parent_path + [key],
|
25
|
+
occurrences: nodes.map { |occurrence| "line: #{occurrence.start_line + 1}" },
|
26
|
+
}.compact
|
27
|
+
|
28
|
+
duplicate_keys << duplicate_key
|
29
|
+
end
|
30
|
+
|
31
|
+
children.each { |key_node, value_node| validator.call(value_node, parent_path + [key_node ? key_node.value : nil].compact) }
|
32
|
+
else
|
33
|
+
node.children.to_a.each { |child| validator.call(child, parent_path) }
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
ast = Psych.parse_stream(yaml)
|
38
|
+
validator.call(ast, [])
|
39
|
+
|
40
|
+
duplicate_keys
|
41
|
+
end
|
42
|
+
|
43
|
+
Ezframe::Config.init
|
44
|
+
Dir["column/*.yml"].each do |file|
|
45
|
+
instr = File.read(file)
|
46
|
+
dup = duplicate_keys(instr)
|
47
|
+
if dup && dup.length > 0
|
48
|
+
puts "#{file}\n#{dup}"
|
49
|
+
end
|
50
|
+
yaml = YAML.load(File.open(file), symbolize_names: true)
|
51
|
+
upper = Object.const_get("Ezframe")
|
52
|
+
yaml.each do |column|
|
53
|
+
type = column["type"]
|
54
|
+
unless type
|
55
|
+
puts "#{file}: type is not defined: key=#{column['key']}"
|
56
|
+
next
|
57
|
+
end
|
58
|
+
klass = "Ezframe::#{type.to_camel}Type"
|
59
|
+
unless upper.const_defined?(klass)
|
60
|
+
puts "#{file}: unknown type: key=#{column['key']}, type=#{type}"
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
data/exe/console
CHANGED
@@ -6,7 +6,10 @@ $:.push("lib")
|
|
6
6
|
require 'ezframe'
|
7
7
|
require 'sequel'
|
8
8
|
|
9
|
-
Ezframe
|
10
|
-
|
11
|
-
|
12
|
-
|
9
|
+
include Ezframe
|
10
|
+
|
11
|
+
Config.init
|
12
|
+
DB.init
|
13
|
+
ColumnSets.init
|
14
|
+
|
15
|
+
ColumnSets.create_tables
|
data/exe/dbmigrate
ADDED
@@ -0,0 +1,174 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#coding: utf-8
|
3
|
+
require "ezframe"
|
4
|
+
include Ezframe
|
5
|
+
|
6
|
+
module Ezframe
|
7
|
+
module Model
|
8
|
+
class DBInfo
|
9
|
+
def initialize
|
10
|
+
@db_columns = {}
|
11
|
+
@db_typ = get_database_type(Config[:database])
|
12
|
+
case @db_typ
|
13
|
+
when "postgresql"
|
14
|
+
get_info_from_postgres
|
15
|
+
when "sqlite"
|
16
|
+
get_info_from_sqlite
|
17
|
+
else
|
18
|
+
raise "unknown database system"
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def get_db_info(table_name)
|
23
|
+
return @db_columns[table_name.to_sym]
|
24
|
+
end
|
25
|
+
|
26
|
+
def get_info_from_postgres
|
27
|
+
sql = "SELECT * FROM information_schema.columns"
|
28
|
+
begin
|
29
|
+
data_a = DB.sequel[sql].all
|
30
|
+
rescue => e
|
31
|
+
EzLog.error("get_info_from_postgres: #{e}")
|
32
|
+
return nil
|
33
|
+
end
|
34
|
+
data_a.each do |row|
|
35
|
+
table_name, col_name = row[:table_name], row[:column_name]
|
36
|
+
next if col_name.nil? || table_name.nil?
|
37
|
+
next unless ColumnSets.refer(table_name)
|
38
|
+
@db_columns[table_name.to_sym] ||= {}
|
39
|
+
@db_columns[table_name.to_sym][col_name.to_sym] = normalize_dbtype(row[:data_type])
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def get_info_from_sqlite
|
44
|
+
sql = "SELECT * from sqlite_master;"
|
45
|
+
data_a = DB.sequel[sql].all
|
46
|
+
return nil unless data_a
|
47
|
+
data_a.each do |data|
|
48
|
+
sql = data[:sql]
|
49
|
+
parse_create_sql(sql)
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
def parse_create_sql(sql)
|
54
|
+
# EzLog.debug("parse_create_sql: #{sql}")
|
55
|
+
if sql =~ /CREATE TABLE \`(\w+)\` \(/i
|
56
|
+
table_name = $1
|
57
|
+
else
|
58
|
+
return
|
59
|
+
end
|
60
|
+
@db_columns[table_name.to_sym] ||= {}
|
61
|
+
column_a = sql.split(", ")
|
62
|
+
column_a.each do |line|
|
63
|
+
if line =~ /\`(\w+)\`\s(\w+)/
|
64
|
+
colkey, dbtype = $1, $2
|
65
|
+
@db_columns[table_name.to_sym][colkey.to_sym] = dbtype
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
def get_database_type(config)
|
71
|
+
return config.split("://")[0]
|
72
|
+
end
|
73
|
+
|
74
|
+
def exec_sql(sql)
|
75
|
+
begin
|
76
|
+
DB.sequel.run(sql)
|
77
|
+
rescue => e
|
78
|
+
EzLog.error("dbmigrate: exec_sql: #{e}")
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
def normalize_dbtype(dbtype)
|
83
|
+
return nil unless dbtype
|
84
|
+
return "int" if dbtype == "integer"
|
85
|
+
return "timestamp" if dbtype.index("timestamp")
|
86
|
+
return dbtype
|
87
|
+
end
|
88
|
+
|
89
|
+
def set_default(column)
|
90
|
+
default_value = column.attribute[:default]
|
91
|
+
if default_value
|
92
|
+
unless %w[int].include?(column.db_type)
|
93
|
+
default_value = "'#{default_value}'"
|
94
|
+
end
|
95
|
+
exec_sql("ALTER TABLE #{column.parent.name} ALTER #{column.key} SET DEFAULT #{default_value}")
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
def check_diff(column_set)
|
100
|
+
table_name = column_set.name
|
101
|
+
dbcols = get_db_info(table_name)
|
102
|
+
unless dbcols
|
103
|
+
ColumnSets.create_one_table(table_name, ColumnSets.get(table_name.to_sym))
|
104
|
+
return
|
105
|
+
end
|
106
|
+
column_set.each do |column|
|
107
|
+
next if %w[id updated_at created_at deleted_at].include?(column.key.to_s)
|
108
|
+
dbtype = dbcols[column.key]
|
109
|
+
new_type = column.db_type
|
110
|
+
if !new_type || new_type.empty?
|
111
|
+
EzLog.error("check_diff: no db_type: table=#{table_name}:key=#{column.key}")
|
112
|
+
next
|
113
|
+
end
|
114
|
+
unless dbtype
|
115
|
+
exec_sql("ALTER TABLE #{table_name} ADD #{column.key} #{new_type};")
|
116
|
+
set_default(column)
|
117
|
+
next
|
118
|
+
end
|
119
|
+
if dbtype != new_type
|
120
|
+
exec_sql("ALTER TABLE #{table_name} ALTER COLUMN #{column.key} DROP DEFAULT;")
|
121
|
+
unless change_type(table, column.key, new_type)
|
122
|
+
# 失敗したときは名前を変更してカラム追加
|
123
|
+
rename_column(table_name, column.key, "#{column.key}_bak")
|
124
|
+
add_column(table, column.key, new_type)
|
125
|
+
end
|
126
|
+
set_default(column)
|
127
|
+
end
|
128
|
+
end
|
129
|
+
end
|
130
|
+
|
131
|
+
# カラム追加
|
132
|
+
def add_column(table_name, key, typ)
|
133
|
+
begin
|
134
|
+
exec_sql("ALTER TABLE #{table_name} ADD #{key} #{typ};")
|
135
|
+
rescue => e
|
136
|
+
EzLog.error("change_type: error: #{e.class}:#{e}:#{e.backtrace}")
|
137
|
+
return nil
|
138
|
+
end
|
139
|
+
return true
|
140
|
+
end
|
141
|
+
|
142
|
+
# カラムの型変更
|
143
|
+
def change_type(table_name, key, typ)
|
144
|
+
begin
|
145
|
+
exec_sql("ALTER TABLE #{table_name} ALTER #{key} TYPE #{typ};")
|
146
|
+
rescue => e
|
147
|
+
EzLog.error("change_type: error: #{e.class}:#{e}:#{e.backtrace}")
|
148
|
+
return nil
|
149
|
+
end
|
150
|
+
return true
|
151
|
+
end
|
152
|
+
|
153
|
+
# カラムの名前変更
|
154
|
+
def rename_column(table_name, old_key, new_key)
|
155
|
+
begin
|
156
|
+
exec_sql("ALTER TABLE #{table_name} RENAME #{old_key} TO #{new_key};")
|
157
|
+
rescue => e
|
158
|
+
EzLog.error("rename_column: error: #{e.class}:#{e}:#{e.backtrace}")
|
159
|
+
return nil
|
160
|
+
end
|
161
|
+
return true
|
162
|
+
end
|
163
|
+
end
|
164
|
+
end
|
165
|
+
end
|
166
|
+
|
167
|
+
Config.init
|
168
|
+
DB.init
|
169
|
+
ColumnSets.init
|
170
|
+
dbinfo = Model::DBInfo.new
|
171
|
+
|
172
|
+
ColumnSets.each do |table_name, column_set|
|
173
|
+
dbinfo.check_diff(column_set)
|
174
|
+
end
|
data/exe/html2ruby
ADDED
@@ -0,0 +1,61 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#coding: utf-8
|
3
|
+
=begin
|
4
|
+
|
5
|
+
HTMLから、hthash生成するrubyプログラムを生成する
|
6
|
+
|
7
|
+
=end
|
8
|
+
require "nokogiri"
|
9
|
+
|
10
|
+
class Html2Ruby
|
11
|
+
def show_leaves(node, depth=0)
|
12
|
+
res = []
|
13
|
+
indent = " "*depth
|
14
|
+
node.children.each do |child|
|
15
|
+
next if child.name == "comment"
|
16
|
+
if child.name == "text"
|
17
|
+
if child.content.strip.empty?
|
18
|
+
next
|
19
|
+
else
|
20
|
+
res.push "#{indent}\"#{child.content}\""
|
21
|
+
end
|
22
|
+
else
|
23
|
+
attrs = child.attributes.map do |k, v|
|
24
|
+
if k.index("-")
|
25
|
+
key_s = "\"#{k}\""
|
26
|
+
else
|
27
|
+
key_s = k
|
28
|
+
if k == "class"
|
29
|
+
if v =~/\s/
|
30
|
+
cls_a = v.split(/\s+/)
|
31
|
+
v = "%w[#{cls_a.join(' ')}]"
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
"#{key_s}: \"#{v}\""
|
36
|
+
end
|
37
|
+
descendant = show_leaves(child, depth+1)
|
38
|
+
if descendant && descendant.strip.length > 10
|
39
|
+
attrs.push("child: \n#{descendant}\n")
|
40
|
+
res.push "#{indent}Ht.#{child.name}(#{attrs.join(', ')}#{indent})"
|
41
|
+
else
|
42
|
+
res.push "#{indent}Ht.#{child.name}(#{attrs.join(', ')})"
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
if res.length > 1
|
47
|
+
res_s = res.join(",\n")
|
48
|
+
return "[ #{res_s} ]"
|
49
|
+
else
|
50
|
+
return res[0]
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
def show_all(file)
|
55
|
+
doc = Nokogiri::HTML(File.open(file))
|
56
|
+
puts show_leaves(doc.root)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
node = Html2Ruby.new
|
61
|
+
node.show_all(ARGV[0])
|
data/ezframe.gemspec
CHANGED
@@ -30,13 +30,15 @@ Gem::Specification.new do |spec|
|
|
30
30
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
31
31
|
spec.require_paths = ["lib"]
|
32
32
|
|
33
|
-
spec.add_development_dependency "bundler",
|
34
|
-
spec.add_development_dependency "minitest", '
|
35
|
-
spec.add_development_dependency "nokogiri", '
|
36
|
-
spec.add_development_dependency "rack-test", '
|
33
|
+
spec.add_development_dependency "bundler", '>= 1.16'
|
34
|
+
spec.add_development_dependency "minitest", '>= 5.13.0'
|
35
|
+
spec.add_development_dependency "nokogiri", '>= 1.10.7'
|
36
|
+
spec.add_development_dependency "rack-test", '>= 1.1.0'
|
37
|
+
spec.add_development_dependency "pry", '>= 0.12.2'
|
37
38
|
|
38
|
-
spec.add_runtime_dependency "rake",
|
39
|
-
spec.add_runtime_dependency 'rack', '
|
40
|
-
spec.add_runtime_dependency 'sequel', '
|
41
|
-
spec.add_runtime_dependency 'sqlite3', '
|
39
|
+
spec.add_runtime_dependency "rake", '>= 13.0'
|
40
|
+
spec.add_runtime_dependency 'rack', '>= 2.0.6'
|
41
|
+
spec.add_runtime_dependency 'sequel', '>= 5.27.0'
|
42
|
+
spec.add_runtime_dependency 'sqlite3', '>= 1.4.0'
|
43
|
+
spec.add_runtime_dependency 'bcrypt', '>= 3.1.13'
|
42
44
|
end
|
data/lib/ezframe.rb
CHANGED
@@ -4,9 +4,12 @@ require 'yaml'
|
|
4
4
|
require "sequel"
|
5
5
|
require "json"
|
6
6
|
require "nkf"
|
7
|
+
require "date"
|
8
|
+
require "bcrypt"
|
7
9
|
|
8
10
|
require_relative 'ezframe/version'
|
9
11
|
require_relative 'ezframe/util'
|
12
|
+
require_relative 'ezframe/ezlog'
|
10
13
|
require_relative 'ezframe/config'
|
11
14
|
require_relative 'ezframe/controller'
|
12
15
|
require_relative 'ezframe/japanese_utils'
|
@@ -16,14 +19,17 @@ require_relative 'ezframe/database'
|
|
16
19
|
require_relative 'ezframe/ht'
|
17
20
|
require_relative 'ezframe/html'
|
18
21
|
require_relative 'ezframe/materialize'
|
19
|
-
require_relative 'ezframe/model'
|
20
|
-
require_relative 'ezframe/page_kit'
|
21
22
|
require_relative 'ezframe/page_base'
|
23
|
+
require_relative 'ezframe/editor_common'
|
24
|
+
require_relative 'ezframe/main_editor'
|
25
|
+
require_relative 'ezframe/sub_editor'
|
26
|
+
require_relative 'ezframe/single_page_editor'
|
22
27
|
require_relative 'ezframe/template'
|
23
28
|
require_relative 'ezframe/server'
|
29
|
+
require_relative 'ezframe/message'
|
24
30
|
require_relative 'ezframe/auth.rb'
|
25
|
-
require_relative 'ezframe/editor.rb'
|
26
31
|
require_relative 'ezframe/loader'
|
32
|
+
require_relative 'ezframe/route'
|
27
33
|
|
28
34
|
|
29
35
|
|
data/lib/ezframe/auth.rb
CHANGED
@@ -1,71 +1,90 @@
|
|
1
1
|
module Ezframe
|
2
2
|
class Auth
|
3
3
|
class << self
|
4
|
-
attr_accessor :
|
4
|
+
attr_accessor :user
|
5
5
|
|
6
|
-
def
|
6
|
+
def init
|
7
7
|
Warden::Manager.serialize_into_session do |auth|
|
8
|
-
|
8
|
+
# EzLog.info "serialize_into: #{auth.inspect}"
|
9
9
|
auth.user[:id]
|
10
10
|
end
|
11
11
|
Warden::Manager.serialize_from_session do |account|
|
12
|
-
|
13
|
-
inst = Auth.get(
|
14
|
-
|
12
|
+
# EzLog.info "serialize_from: account = #{account}"
|
13
|
+
inst = Auth.get(account)
|
14
|
+
# EzLog.info "inst = #{inst.inspect}"
|
15
15
|
inst
|
16
16
|
end
|
17
17
|
Warden::Strategies.add(:mystrategy) do
|
18
18
|
def valid?
|
19
|
-
#
|
19
|
+
# EzLog.info "valid?"
|
20
20
|
params["account"] || params["password"]
|
21
21
|
end
|
22
22
|
|
23
23
|
def authenticate!
|
24
|
-
|
24
|
+
EzLog.info "mystrategy.authenticate!: user=#{user}, params=#{params}"
|
25
25
|
if Auth.authenticate(env, params["account"], params["password"])
|
26
|
-
|
26
|
+
EzLog.info "mystrategy.authenticate!: success: user=#{user}"
|
27
|
+
success!(Auth.get(params["account"]))
|
27
28
|
else
|
28
|
-
|
29
|
-
fail!(
|
29
|
+
EzLog.info "mystrategy.authenticate!: failed: user=#{user}"
|
30
|
+
fail!(Message[:login_failure])
|
30
31
|
end
|
31
32
|
end
|
32
33
|
end
|
33
34
|
end
|
34
35
|
|
35
|
-
def get(
|
36
|
-
new(
|
36
|
+
def get(account)
|
37
|
+
new(account)
|
37
38
|
end
|
38
39
|
|
39
40
|
def authenticate(env, account, pass)
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
41
|
+
return nil if !pass || pass.strip.empty?
|
42
|
+
EzLog.debug("Auth.self.authenticate: account=#{account}, pass=#{pass}")
|
43
|
+
auth_conf = Config[:auth]
|
44
|
+
user_data = DB.dataset(auth_conf[:table]).where(auth_conf[:user].to_sym => account ).first
|
45
|
+
if user_data
|
46
|
+
EzLog.info "Auth: self.authenticate: has user: #{@user}"
|
45
47
|
else
|
46
|
-
|
48
|
+
EzLog.info "Auth.self.authenticate: this user does not exist: #{account}"
|
47
49
|
return nil
|
48
50
|
end
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
51
|
+
db_pass = user_data[auth_conf[:password].to_sym]
|
52
|
+
user_data.delete(:password)
|
53
|
+
return nil if !db_pass || db_pass.strip.length < 8
|
54
|
+
bcrypt = BCrypt::Password.new(db_pass)
|
55
|
+
if bcrypt == pass
|
56
|
+
env['rack.session'][:user] = user_data[:id]
|
57
|
+
@user = user_data
|
58
|
+
EzLog.debug("Auth.self.authenticate: success: password match!")
|
59
|
+
return true
|
60
|
+
else
|
61
|
+
EzLog.debug("Auth.self.authenticate: failure: password mismatch")
|
62
|
+
end
|
63
|
+
return nil
|
56
64
|
end
|
57
65
|
end
|
58
66
|
|
59
|
-
attr_accessor :account, :password, :
|
67
|
+
attr_accessor :account, :password, :user, :id
|
60
68
|
|
61
|
-
def initialize(
|
69
|
+
def initialize(account)
|
62
70
|
self.account = account
|
63
|
-
|
71
|
+
auth_conf = Config[:auth]
|
72
|
+
dataset = DB.dataset(auth_conf[:table])
|
73
|
+
if account.is_a?(Integer)
|
74
|
+
@user = dataset.where(id: account).first
|
75
|
+
else
|
76
|
+
@user = dataset.where(auth_conf[:user].to_sym => account).first
|
77
|
+
end
|
64
78
|
unless @user
|
65
|
-
|
79
|
+
EzLog.error "Auth.initialize: This user does not exist: #{account}"
|
80
|
+
return
|
66
81
|
end
|
67
|
-
self.password = @user[:password]
|
82
|
+
self.password = @user[auth_conf[:password].to_sym]
|
68
83
|
@user.delete(:password)
|
69
84
|
end
|
85
|
+
|
86
|
+
def inspect
|
87
|
+
"account=#{@account}, user=#{@user}, id=#{@id}"
|
88
|
+
end
|
70
89
|
end
|
71
90
|
end
|