optimacms 0.1.60 → 0.2.1

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
  SHA1:
3
- metadata.gz: b4861e647ada267722d67aa45679626457ebc454
4
- data.tar.gz: b8baf6d6bc098d55094df0508155a01385b5850d
3
+ metadata.gz: bf64180dc36b5fa4e9f0a965d4876c3e60f1fcae
4
+ data.tar.gz: e39f18d55e0174be134dd5e2f2a5c1b9e721c551
5
5
  SHA512:
6
- metadata.gz: 00640f6c5a4a861dec892a7095994ecf4b90b9a3a4117bc43e58a296cb3302c25db2b84145f522ebeb51ac214f831a6b01b6c254142a17b2471ca26035015cb5
7
- data.tar.gz: 8fbe2270703698e0e3c0f0d824f16f18ce31b9d182edb126a603c0eac9c3fb796d347ab57c4fb483a9a3539de98ede091c73f12e04878c7deeb97bbb66569f34
6
+ metadata.gz: df4dd642f28cab6fe0d854709362d6be529489d671669cb4e64ac771c626811f8920b1f87024a7a918f4370522f82da2f7c2c2d3bd8f523edb6277cd60f72e7d
7
+ data.tar.gz: df03a2f62ed057ed1a5727650df97b5224d4a981e0b5551a9a702a4724158f85d98036d5185670219fadaa851f93c71a74cdaaad4b155c7cf3ccd5e5f597946f
@@ -24,38 +24,13 @@ module Optimacms
24
24
  end
25
25
 
26
26
  def addadminuser
27
- #return
27
+ return
28
28
 
29
- row = Optimacms::CmsAdminUser.where(email: 'admin@example.com').first || Optimacms::CmsAdminUser.new
29
+ row = Optimacms::CmsAdminUser.new
30
30
  row.email = 'admin@example.com'
31
31
  row.password = 'password'
32
- row.password_confirmation = row.password
33
32
 
34
- row.save!
35
- end
36
-
37
- def url1
38
- v = '[a-z\d\_]+'
39
-
40
- p = '(:pg)'
41
- p.gsub! /(\(\:#{v}\))([-\.]|$)/, '([^/]+|)\2'
42
-
43
- x = 0
44
-
45
- end
46
-
47
- def url2
48
- u = "news/3"
49
- r = /^news\/([^\/]+|)$/
50
-
51
- if u =~ /^news(\/.*|)$/
52
-
53
- x = $1
54
- y = $2
55
-
56
- z=0
57
-
58
- end
33
+ row.save
59
34
  end
60
35
  end
61
36
 
@@ -37,7 +37,6 @@ module Optimacms
37
37
  c.response = ActionDispatch::Response.new
38
38
 
39
39
  c.send 'my_set_render'
40
- c.send 'optimacms_set_pagedata', @pagedata
41
40
  c.send 'my_set_render_template', tpl_view, tpl_layout
42
41
  c.send 'my_set_meta', @pagedata.meta
43
42
 
@@ -57,7 +56,6 @@ module Optimacms
57
56
  #app.response.body
58
57
  end
59
58
 
60
-
61
59
  def show
62
60
  @path = params[:url]
63
61
  @pagedata = PageServices::PageRouteService.find_page_by_url(@path, current_lang)
@@ -79,7 +77,6 @@ module Optimacms
79
77
  #@content = @pagedata.get_content(@page)
80
78
  #@content = @page.content
81
79
 
82
- optimacms_set_pagedata @pagedata
83
80
  my_set_render_template @pagedata.template.path, @pagedata.layout.basename
84
81
  my_set_meta @pagedata.meta
85
82
 
@@ -23,32 +23,10 @@ module Optimacms
23
23
  s.gsub /"/, '\"'
24
24
  end
25
25
 
26
- def url_for(options = nil)
27
- #url_for
28
- # page processed by CMS
29
- if options.present? && options.kind_of?(Hash) && options[:controller]=='optimacms/pages' && options[:action]=='show'
30
-
31
- # get current page name
32
- page_name = options[:page_name] || controller.optimacms_pagedata.page.name
33
- if page_name.present?
34
- u = site_page_path(page_name, options)
35
-
36
- if u.present?
37
- return u
38
- end
39
- end
40
- end
41
-
42
- #
43
- return super(options)
44
- end
45
-
46
-
47
-
48
26
  def meta_tags(title=nil, keywords=nil, desc=nil)
49
- #s = 'news "11"'
50
- #s1 = s.gsub /"/, '\"'
51
- #s2 = eval('"'+s1+'"')
27
+ s = 'news "11"'
28
+ s1 = s.gsub /"/, '\"'
29
+ s2 = eval('"'+s1+'"')
52
30
  title ||= eval_meta_string(fix_quotes(@optimacms_meta_title))
53
31
  keywords ||= eval_meta_string(@optimacms_meta_keywords)
54
32
  desc ||= eval_meta_string(@optimacms_meta_description)
data/config/routes.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  Optimacms::Engine.routes.draw do
2
2
 
3
3
  # admin
4
- scope '/'+Optimacms.admin_namespace, module: "admin" do
4
+ scope '/cmsadmin', module: "admin" do
5
5
  #devise_for :users, { class_name: "Optimacms::User", module: :devise }
6
6
 
7
7
  get '/' => 'dashboard#index', as: :dashboard
@@ -0,0 +1,11 @@
1
+ class AddAttachmentPhotoToMediafiles < ActiveRecord::Migration
2
+ def self.up
3
+ change_table :cms_mediafiles do |t|
4
+ t.attachment :photo
5
+ end
6
+ end
7
+
8
+ def self.down
9
+ remove_attachment :cms_mediafiles, :photo
10
+ end
11
+ end
@@ -0,0 +1,42 @@
1
+ class DeviseCreateOptimacmsCmsUsers < ActiveRecord::Migration
2
+ def change
3
+ create_table(:optimacms_cms_users) do |t|
4
+ ## Database authenticatable
5
+ t.string :email, null: false, default: ""
6
+ t.string :encrypted_password, null: false, default: ""
7
+
8
+ ## Recoverable
9
+ t.string :reset_password_token
10
+ t.datetime :reset_password_sent_at
11
+
12
+ ## Rememberable
13
+ t.datetime :remember_created_at
14
+
15
+ ## Trackable
16
+ t.integer :sign_in_count, default: 0, null: false
17
+ t.datetime :current_sign_in_at
18
+ t.datetime :last_sign_in_at
19
+ t.string :current_sign_in_ip
20
+ t.string :last_sign_in_ip
21
+
22
+ ## Confirmable
23
+ # t.string :confirmation_token
24
+ # t.datetime :confirmed_at
25
+ # t.datetime :confirmation_sent_at
26
+ # t.string :unconfirmed_email # Only if using reconfirmable
27
+
28
+ ## Lockable
29
+ # t.integer :failed_attempts, default: 0, null: false # Only if lock strategy is :failed_attempts
30
+ # t.string :unlock_token # Only if unlock strategy is :email or :both
31
+ # t.datetime :locked_at
32
+
33
+
34
+ t.timestamps
35
+ end
36
+
37
+ add_index :optimacms_cms_users, :email, unique: true
38
+ add_index :optimacms_cms_users, :reset_password_token, unique: true
39
+ # add_index :optimacms_cms_users, :confirmation_token, unique: true
40
+ # add_index :optimacms_cms_users, :unlock_token, unique: true
41
+ end
42
+ end
@@ -0,0 +1,13 @@
1
+ class ChangeMetaDescriptionForPages < ActiveRecord::Migration
2
+ def up
3
+ change_table :cms_pages_translation do |t|
4
+ t.change :meta_description, :text
5
+ end
6
+ end
7
+
8
+ def down
9
+ change_table :cms_pages_translation do |t|
10
+ t.change :meta_description, :string
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,11 @@
1
+ class AddIndexNameToPages < ActiveRecord::Migration
2
+
3
+ def up
4
+ add_index :cms_pages, :name
5
+
6
+ end
7
+
8
+ def down
9
+ remove_index :cms_pages, :name
10
+ end
11
+ end
@@ -7,8 +7,7 @@ module Optimacms
7
7
  def self.config
8
8
  {
9
9
  class_name: "Optimacms::CmsAdminUser",
10
- #path: '/cmsadmin',
11
- path: '/'+Optimacms.main_namespace+'/'+Optimacms.admin_namespace,
10
+ path: '/cmsadmin',
12
11
  #path: ActiveAdmin.application.default_namespace || "/",
13
12
  controllers: Optimacms::Devise.controllers,
14
13
  path_names: { sign_in: 'login', sign_out: "logout" },
@@ -12,10 +12,6 @@ module Optimacms
12
12
 
13
13
  end
14
14
 
15
- def is_optimacms
16
- @is_optimacms
17
- end
18
-
19
15
  def default_render(*args)
20
16
  if self.controller_name!='pages' && !@optimacms_tpl.nil? && @is_optimacms
21
17
  render @optimacms_tpl, :layout=>@optimacms_layout and return
@@ -31,15 +27,6 @@ module Optimacms
31
27
  super
32
28
  end
33
29
 
34
- def optimacms_pagedata
35
- @pagedata
36
- end
37
-
38
- def optimacms_set_pagedata(_pagedata)
39
- @pagedata = _pagedata
40
-
41
- end
42
-
43
30
  def my_set_render_template(tpl_view, tpl_layout)
44
31
  @optimacms_tpl = tpl_view
45
32
  @optimacms_layout = tpl_layout
@@ -74,8 +61,6 @@ module Optimacms
74
61
  #
75
62
  res = PageServices::PageRouteService.make_url url, p
76
63
 
77
- return nil if res.nil?
78
-
79
64
  '/'+res
80
65
  end
81
66
 
@@ -63,15 +63,7 @@ module Optimacms
63
63
 
64
64
  url_parts = url.split '/'
65
65
  a = []
66
- i_part = 0
67
- n_parts = url_parts.count
68
- is_last_optional = false
69
-
70
66
  url_parts.each do |part|
71
- i_part+=1
72
- is_last_optional = false
73
-
74
-
75
67
  # check for brackets inside brackets
76
68
  return nil if part =~ /\{[^{}]*[{}][^{}]*\}/
77
69
 
@@ -80,28 +72,6 @@ module Optimacms
80
72
 
81
73
  p = part
82
74
 
83
-
84
- # variables inside (...) - optional
85
-
86
- # last optional varible
87
- if i_part==n_parts
88
- # /^(:name)..$
89
- # include last / as optional
90
- p_before = p.clone
91
- p.gsub! /^(\(\:#{REGEX_VARIABLE}\))([-\.]|$)/, '\/?([^/]+)*\2'
92
- is_last_optional = true if p!=p_before
93
- end
94
-
95
- p.gsub! /(\(\:#{REGEX_VARIABLE}\))([-\.]|$)/, '([^/]+)*\2'
96
-
97
- #if i_part>1
98
- # add / to the beginning - / is optional too
99
- #p.gsub! /(\(\:#{REGEX_VARIABLE}\))([-\.]|$)/, '([^/]+)*\2'
100
- #else
101
- # the first param
102
- #p.gsub! /(\(\:#{REGEX_VARIABLE}\))([-\.]|$)/, '([^/]+)*\2'
103
- #end
104
-
105
75
  # variables
106
76
  #p.gsub! /\{\$[^}]+\}/, '([^/]+)'
107
77
  p.gsub! /(\:#{REGEX_VARIABLE})([-\.]|$)/, '([^/]+)\2'
@@ -111,17 +81,11 @@ module Optimacms
111
81
  # replace '.'
112
82
  p.sub! '.', '[.]'
113
83
 
114
- #
115
- if i_part>1 && !is_last_optional
116
- p = '/'+p
117
- end
118
-
119
-
120
84
 
121
85
  a << p
122
86
  end
123
87
 
124
- return '^'+a.join('')+'$'
88
+ return '^'+url_parts.join('\/')+'$'
125
89
  end
126
90
 
127
91
  def self.count_url_parts(url)
@@ -144,8 +108,7 @@ module Optimacms
144
108
  return {} if page_row.nil?
145
109
  return {} if url.blank?
146
110
 
147
- #parsed_url = page_row.parsed_url.sub '/', '\/'
148
- parsed_url = page_row.parsed_url
111
+ parsed_url = page_row.parsed_url.sub '/', '\/'
149
112
 
150
113
  #if (preg_match('/' . $parsed_url . '/', $url, $values_matches)) {
151
114
  m_params_in_url = url.scan /#{parsed_url}/
@@ -181,35 +144,13 @@ module Optimacms
181
144
 
182
145
  end
183
146
 
184
- def self.make_url(u, params_extra={})
185
- p = params_extra.keys.map{|x| x.to_sym}
186
-
187
- p_used = []
188
- res = u.gsub(/\:#{REGEX_VARIABLE}/) do |name|
189
- p_used << name[1..-1].to_sym
190
- (params_extra[name[1..-1].to_sym] || '')
147
+ def self.make_url(u, p={})
148
+ res = u.gsub(/\:#{REGEX_VARIABLE}/) do
149
+ |name| (p[name[1..-1].to_sym] || '')
191
150
  end
192
-
193
- # remove ()
194
- res.gsub! /[\(\)]/, ''
195
-
196
- # add extra params
197
- p_not_used = p - p_used - [:controller, :action, :only_path, :url]
198
-
199
- #
200
- a_extra = []
201
- p_not_used.each do |name|
202
- a_extra << "#{name}=#{(params_extra[name] || '')}"
203
- end
204
- if a_extra.length>0
205
- res = res + '?'+a_extra.join('&')
206
- end
207
-
208
- #
209
- #res.gsub! /\?$/, ''
210
151
  res
211
152
  end
212
153
  end
213
154
 
214
155
  end
215
- end
156
+ end
@@ -1,3 +1,3 @@
1
1
  module Optimacms
2
- VERSION = "0.1.60"
2
+ VERSION = "0.2.1"
3
3
  end
data/lib/optimacms.rb CHANGED
@@ -2,24 +2,11 @@ require 'devise'
2
2
  require "optimacms/engine"
3
3
 
4
4
  module Optimacms
5
- #
6
5
  mattr_accessor :files_dir_path
6
+
7
7
  def files_dir_path
8
8
  @@files_dir_path || 'uploads'
9
9
  end
10
10
 
11
11
 
12
- #
13
- mattr_accessor :main_namespace
14
- def main_namespace
15
- @@main_namespace || ''
16
- end
17
-
18
-
19
- #
20
- mattr_accessor :admin_namespace
21
- def admin_namespace
22
- @@admin_namespace || 'admin'
23
- end
24
-
25
12
  end
@@ -4,8 +4,6 @@ class NewsController < ApplicationController
4
4
 
5
5
  def index
6
6
 
7
- x = params[:pg]
8
-
9
7
  @items = News.all
10
8
 
11
9
 
@@ -1,6 +1,6 @@
1
1
  %h2 Admin
2
2
  %ul
3
- %li= link_to 'admin area', '/'+Optimacms.main_namespace+'/'+Optimacms.admin_namespace
3
+ %li= link_to '/cmsadmin', '/cmsadmin'
4
4
 
5
5
  %h2 Users
6
6
  %ul
@@ -16,4 +16,4 @@
16
16
  %li= link_to '/newsitem-1.html', '/newsitem-1.html'
17
17
  %li= link_to '/services.html', '/services.html'
18
18
  %li= link_to '/service-education.html', '/service-education.html'
19
- %li= link_to '/service-hosting.html', '/service-hosting.html'
19
+ %li= link_to '/service-hosting.html', '/service-hosting.html'
@@ -19,11 +19,7 @@ default: &default
19
19
 
20
20
  development:
21
21
  <<: *default
22
- host: <%= Rails.application.secrets.db_host %>
23
- database: <%= Rails.application.secrets.db %>
24
- username: <%= Rails.application.secrets.db_user %>
25
- password: <%= Rails.application.secrets.db_password %>
26
-
22
+ database: my_cms
27
23
 
28
24
  # Warning: The database defined as "test" will be erased and
29
25
  # re-generated from your development database when you run "rake".
@@ -1,4 +1 @@
1
- Optimacms.main_namespace = '' # blank or any like 'cms'
2
- Optimacms.admin_namespace = 'admin'
3
-
4
- Optimacms.files_dir_path = 'img'
1
+ Optimacms.files_dir_path = 'img'
@@ -11,7 +11,7 @@ Rails.application.routes.draw do
11
11
 
12
12
 
13
13
  # extend admin area
14
- scope '/'+Optimacms.main_namespace+'/'+Optimacms.admin_namespace, module: "optimacms" do
14
+ scope '/cmsadmin', module: "optimacms" do
15
15
  namespace :admin do
16
16
  resources :news do
17
17
  collection do
@@ -23,7 +23,7 @@ Rails.application.routes.draw do
23
23
 
24
24
 
25
25
  # the last!!!
26
- mount Optimacms::Engine => '/'+Optimacms.main_namespace
26
+ mount Optimacms::Engine => "/"
27
27
 
28
28
  #
29
29
  root to: 'home#index'
@@ -13,12 +13,6 @@
13
13
  development:
14
14
  secret_key_base: e135e2b53ab10b0afff68c3f7f0d96e491146342113ab6e1c38409af772139d5317e3da8946ef9f6e6474eb937bc86c11ffe8406c2f9c2369fb6ec1a5b9c4d3b
15
15
 
16
- db: my_cms
17
- db_host: devapi.gex
18
- db_user: dev_gex
19
- db_password: Galactic1
20
-
21
-
22
16
  test:
23
17
  secret_key_base: 8ab08b04db9f09047e4333306df25eab59472443ee5574b8fd0feb8873b17f97afe924e3380ad50f6197718707d8c474cd7578bd9deb6f708b83072e5e89226f
24
18
 
@@ -0,0 +1,42 @@
1
+ class DeviseCreateUsers < ActiveRecord::Migration
2
+ def change
3
+ create_table(:users) do |t|
4
+ ## Database authenticatable
5
+ t.string :email, null: false, default: ""
6
+ t.string :encrypted_password, null: false, default: ""
7
+
8
+ ## Recoverable
9
+ t.string :reset_password_token
10
+ t.datetime :reset_password_sent_at
11
+
12
+ ## Rememberable
13
+ t.datetime :remember_created_at
14
+
15
+ ## Trackable
16
+ t.integer :sign_in_count, default: 0, null: false
17
+ t.datetime :current_sign_in_at
18
+ t.datetime :last_sign_in_at
19
+ t.string :current_sign_in_ip
20
+ t.string :last_sign_in_ip
21
+
22
+ ## Confirmable
23
+ # t.string :confirmation_token
24
+ # t.datetime :confirmed_at
25
+ # t.datetime :confirmation_sent_at
26
+ # t.string :unconfirmed_email # Only if using reconfirmable
27
+
28
+ ## Lockable
29
+ # t.integer :failed_attempts, default: 0, null: false # Only if lock strategy is :failed_attempts
30
+ # t.string :unlock_token # Only if unlock strategy is :email or :both
31
+ # t.datetime :locked_at
32
+
33
+
34
+ t.timestamps
35
+ end
36
+
37
+ add_index :users, :email, unique: true
38
+ add_index :users, :reset_password_token, unique: true
39
+ # add_index :users, :confirmation_token, unique: true
40
+ # add_index :users, :unlock_token, unique: true
41
+ end
42
+ end
@@ -11,12 +11,12 @@
11
11
  #
12
12
  # It's strongly recommended that you check this file into your version control system.
13
13
 
14
- ActiveRecord::Schema.define(version: 20150513224341) do
14
+ ActiveRecord::Schema.define(version: 20150610225422) do
15
15
 
16
16
  create_table "cms_languages", force: :cascade do |t|
17
17
  t.string "title", limit: 250
18
18
  t.string "lang", limit: 4
19
- t.boolean "enabled", default: true, null: false
19
+ t.boolean "enabled", limit: 1, default: true, null: false
20
20
  t.string "charset", limit: 15, default: "utf8_unicode_ci", null: false
21
21
  t.string "locale", limit: 255, null: false
22
22
  t.string "lang_html", limit: 10, null: false
@@ -44,30 +44,31 @@ ActiveRecord::Schema.define(version: 20150513224341) do
44
44
  t.string "parsed_url", limit: 255
45
45
  t.integer "parent_id", limit: 4, default: 0, null: false
46
46
  t.string "view_path", limit: 255
47
- t.boolean "is_translated", default: false, null: false
47
+ t.boolean "is_translated", limit: 1, default: false, null: false
48
48
  t.integer "status", limit: 4, default: 0, null: false
49
49
  t.integer "pos", limit: 4, default: 0, null: false
50
50
  t.string "redir_url", limit: 255
51
51
  t.integer "template_id", limit: 4
52
52
  t.integer "layout_id", limit: 4
53
53
  t.integer "owner", limit: 4
54
- t.boolean "is_folder", default: false, null: false
54
+ t.boolean "is_folder", limit: 1, default: false, null: false
55
55
  t.string "controller_action", limit: 255
56
56
  t.datetime "created_at", null: false
57
57
  t.datetime "updated_at", null: false
58
58
  t.integer "enabled", limit: 1, default: 1, null: false
59
59
  end
60
60
 
61
+ add_index "cms_pages", ["name"], name: "index_cms_pages_on_name", using: :btree
61
62
  add_index "cms_pages", ["parent_id"], name: "parent_id", using: :btree
62
63
  add_index "cms_pages", ["status"], name: "status", using: :btree
63
64
  add_index "cms_pages", ["url"], name: "url", using: :btree
64
65
 
65
66
  create_table "cms_pages_translation", force: :cascade do |t|
66
- t.integer "item_id", limit: 4, default: 0, null: false
67
+ t.integer "item_id", limit: 4, default: 0, null: false
67
68
  t.integer "page_id", limit: 4
68
- t.string "lang", limit: 5, null: false
69
+ t.string "lang", limit: 5, null: false
69
70
  t.string "meta_title", limit: 255
70
- t.string "meta_description", limit: 255
71
+ t.text "meta_description", limit: 65535
71
72
  t.string "meta_keywords", limit: 255
72
73
  t.string "template_filename", limit: 255
73
74
  end
@@ -85,11 +86,11 @@ ActiveRecord::Schema.define(version: 20150513224341) do
85
86
  t.integer "type_id", limit: 1
86
87
  t.string "tpl_format", limit: 255
87
88
  t.integer "pos", limit: 4
88
- t.boolean "is_translated", default: false, null: false
89
+ t.boolean "is_translated", limit: 1, default: false, null: false
89
90
  t.datetime "created_at", null: false
90
91
  t.datetime "updated_at", null: false
91
- t.boolean "is_folder", default: false, null: false
92
- t.boolean "enabled", default: true, null: false
92
+ t.boolean "is_folder", limit: 1, default: false, null: false
93
+ t.boolean "enabled", limit: 1, default: true, null: false
93
94
  t.string "ancestry", limit: 255
94
95
  end
95
96
 
@@ -128,6 +129,13 @@ ActiveRecord::Schema.define(version: 20150513224341) do
128
129
  add_index "cms_users", ["email"], name: "index_optimacms_cms_users_on_email", unique: true, using: :btree
129
130
  add_index "cms_users", ["reset_password_token"], name: "index_optimacms_cms_users_on_reset_password_token", unique: true, using: :btree
130
131
 
132
+ create_table "news", force: :cascade do |t|
133
+ t.string "title", limit: 255
134
+ t.text "description", limit: 65535
135
+ t.datetime "created_at", null: false
136
+ t.datetime "updated_at", null: false
137
+ end
138
+
131
139
  create_table "optimacms_articles", force: :cascade do |t|
132
140
  t.string "title", limit: 255
133
141
  t.text "text", limit: 65535
@@ -135,24 +143,6 @@ ActiveRecord::Schema.define(version: 20150513224341) do
135
143
  t.datetime "updated_at", null: false
136
144
  end
137
145
 
138
- create_table "optimacms_cms_users", force: :cascade do |t|
139
- t.string "email", limit: 255, default: "", null: false
140
- t.string "encrypted_password", limit: 255, default: "", null: false
141
- t.string "reset_password_token", limit: 255
142
- t.datetime "reset_password_sent_at"
143
- t.datetime "remember_created_at"
144
- t.integer "sign_in_count", limit: 4, default: 0, null: false
145
- t.datetime "current_sign_in_at"
146
- t.datetime "last_sign_in_at"
147
- t.string "current_sign_in_ip", limit: 255
148
- t.string "last_sign_in_ip", limit: 255
149
- t.datetime "created_at"
150
- t.datetime "updated_at"
151
- end
152
-
153
- add_index "optimacms_cms_users", ["email"], name: "index_optimacms_cms_users_on_email", unique: true, using: :btree
154
- add_index "optimacms_cms_users", ["reset_password_token"], name: "index_optimacms_cms_users_on_reset_password_token", unique: true, using: :btree
155
-
156
146
  create_table "users", force: :cascade do |t|
157
147
  t.string "email", limit: 255, default: "", null: false
158
148
  t.string "encrypted_password", limit: 255, default: "", null: false