constructor-core 0.4.0 → 0.5.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.
- data/app/assets/stylesheets/constructor_core/main.css.scss +1 -0
- data/app/controllers/constructor_core/application_controller.rb +22 -0
- data/app/controllers/constructor_core/users_controller.rb +26 -0
- data/app/helpers/constructor_core/application_helper.rb +0 -20
- data/app/models/constructor_core/user.rb +1 -1
- data/app/views/constructor_core/sessions/new.html.haml +1 -0
- data/app/views/constructor_core/users/profile.haml +16 -0
- data/app/views/layouts/constructor_core/application_admin.haml +3 -8
- data/config/locales/en.yml +5 -1
- data/config/locales/ru.yml +4 -0
- data/config/routes.rb +10 -6
- data/db/migrate/1_devise_users.rb +0 -32
- data/lib/constructor_core/version.rb +1 -1
- metadata +3 -1
@@ -3,5 +3,27 @@
|
|
3
3
|
module ConstructorCore
|
4
4
|
class ApplicationController < ApplicationController
|
5
5
|
helper_method :current_user
|
6
|
+
|
7
|
+
private
|
8
|
+
|
9
|
+
def authenticate_user!
|
10
|
+
warden.authenticate!
|
11
|
+
end
|
12
|
+
|
13
|
+
def user_signed_in?
|
14
|
+
!!current_user
|
15
|
+
end
|
16
|
+
|
17
|
+
def current_user
|
18
|
+
@current_user ||= warden.authenticate
|
19
|
+
end
|
20
|
+
|
21
|
+
def user_session
|
22
|
+
current_user && warden.session
|
23
|
+
end
|
24
|
+
|
25
|
+
def warden
|
26
|
+
request.env['warden']
|
27
|
+
end
|
6
28
|
end
|
7
29
|
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module ConstructorCore
|
4
|
+
class UsersController < ApplicationController
|
5
|
+
layout 'constructor_core/application_admin'
|
6
|
+
|
7
|
+
def profile
|
8
|
+
@user = current_user
|
9
|
+
end
|
10
|
+
|
11
|
+
def update_password
|
12
|
+
@user = current_user
|
13
|
+
|
14
|
+
if params[:user][:password] == params[:user][:password_confirm]
|
15
|
+
@user.password = params[:user][:password]
|
16
|
+
|
17
|
+
if @user.save
|
18
|
+
redirect_to '/login', :notice => t(:password_changed)
|
19
|
+
return
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
redirect_to :back, :notice => t(:password_error_confirm)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -1,25 +1,5 @@
|
|
1
1
|
module ConstructorCore
|
2
2
|
module ApplicationHelper
|
3
|
-
def authenticate_user!
|
4
|
-
warden.authenticate!
|
5
|
-
end
|
6
|
-
|
7
|
-
def user_signed_in?
|
8
|
-
!!current_user
|
9
|
-
end
|
10
|
-
|
11
|
-
def current_user
|
12
|
-
@current_user ||= warden.authenticate
|
13
|
-
end
|
14
|
-
|
15
|
-
def user_session
|
16
|
-
current_user && warden.session
|
17
|
-
end
|
18
|
-
|
19
|
-
def warden
|
20
|
-
request.env['warden']
|
21
|
-
end
|
22
|
-
|
23
3
|
def gravatar_icon(user_email = '', size = 40)
|
24
4
|
gravatar_url = 'http://www.gravatar.com/avatar/%{hash}?s=%{size}&d=mm'
|
25
5
|
user_email.strip!
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
module ConstructorCore
|
4
4
|
class User < ActiveRecord::Base
|
5
|
-
devise :database_authenticatable, :recoverable, :rememberable, :trackable, :validatable, :token_authenticatable, :timeoutable
|
5
|
+
devise :database_authenticatable, :recoverable, :rememberable, :trackable, :validatable, :token_authenticatable, :timeoutable, :registerable #:confirmable, :omniauthable, :lockable, :encryptable
|
6
6
|
attr_accessible :email, :password, :password_confirmation, :remember_me
|
7
7
|
end
|
8
8
|
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
- content_for :page_title do
|
2
|
+
=t :profile
|
3
|
+
|
4
|
+
= form_for @current_user, method: :post do |f|
|
5
|
+
.form-horizontal
|
6
|
+
.control-group
|
7
|
+
= f.label :password, :class => 'control-label'
|
8
|
+
.controls
|
9
|
+
= f.password_field :password, required: true
|
10
|
+
.control-group
|
11
|
+
= f.label :password_confirmation, :class => 'control-label'
|
12
|
+
.controls
|
13
|
+
= f.password_field :password_confirm, required: true
|
14
|
+
.control-group
|
15
|
+
.controls
|
16
|
+
= f.submit t(:save_password), :class => "btn btn-primary"
|
@@ -39,20 +39,15 @@
|
|
39
39
|
= link_to '/admin/templates' do
|
40
40
|
%i.icon-film
|
41
41
|
=t :templates
|
42
|
-
/
|
43
|
-
%li
|
44
|
-
= link_to '/admin/users' do
|
45
|
-
%i.icon-group
|
46
|
-
=t :users
|
47
42
|
|
48
|
-
- if
|
43
|
+
- if current_user
|
49
44
|
%ul.nav.pull-right
|
50
45
|
%li
|
51
|
-
= link_to
|
46
|
+
= link_to core.user_path(current_user.id) do
|
52
47
|
= image_tag gravatar_icon(current_user.email, 48), width: 24, height: 24, class: 'avatar'
|
53
48
|
%span= current_user.email
|
54
49
|
%li
|
55
|
-
= link_to
|
50
|
+
= link_to core.destroy_user_session_path, method: :delete do
|
56
51
|
%i.icon-signout
|
57
52
|
=t :logout
|
58
53
|
|
data/config/locales/en.yml
CHANGED
@@ -7,4 +7,8 @@ en:
|
|
7
7
|
no: 'No'
|
8
8
|
error: 'Error'
|
9
9
|
sitemap: 'Site map'
|
10
|
-
remember_me: 'Remember me'
|
10
|
+
remember_me: 'Remember me'
|
11
|
+
profile: 'Profile'
|
12
|
+
password_error_confirm: 'Password confirmation failed'
|
13
|
+
save_password: 'Save password'
|
14
|
+
password_changed: 'Password changed'
|
data/config/locales/ru.yml
CHANGED
@@ -8,6 +8,10 @@ ru:
|
|
8
8
|
error: 'Ошибка'
|
9
9
|
sitemap: 'Карта сайта'
|
10
10
|
remember_me: 'Запомнить меня'
|
11
|
+
profile: 'Профиль'
|
12
|
+
save_password: 'Сохранить пароль'
|
13
|
+
password_changed: 'Пароль успешно изменен'
|
14
|
+
password_error_confirm: 'Пароли не совпадают'
|
11
15
|
|
12
16
|
activerecord:
|
13
17
|
attributes:
|
data/config/routes.rb
CHANGED
@@ -1,14 +1,18 @@
|
|
1
1
|
ConstructorCore::Engine.routes.draw do
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
2
|
+
scope 'admin' do
|
3
|
+
get 'profile/:id' => 'users#profile', as: :user
|
4
|
+
post 'profile/:id' => 'users#update_password'
|
5
|
+
|
6
|
+
devise_for :users, {
|
7
|
+
class_name: 'ConstructorCore::User',
|
8
|
+
module: :devise
|
9
|
+
}
|
10
|
+
end
|
7
11
|
|
8
12
|
as :user do
|
9
13
|
get '/admin' => 'sessions#new'
|
10
14
|
get '/login' => 'sessions#new'
|
11
15
|
post '/login' => 'sessions#create'
|
12
|
-
|
16
|
+
delete '/logout' => 'sessions#destroy'
|
13
17
|
end
|
14
18
|
end
|
@@ -1,56 +1,24 @@
|
|
1
1
|
class DeviseUsers < ActiveRecord::Migration
|
2
2
|
def self.up
|
3
3
|
create_table ConstructorCore::User.table_name do |t|
|
4
|
-
## Database authenticatable
|
5
4
|
t.string :email, :null => false, :default => ""
|
6
5
|
t.string :encrypted_password, :null => false, :default => ""
|
7
|
-
|
8
|
-
## Recoverable
|
9
6
|
t.string :reset_password_token
|
10
7
|
t.datetime :reset_password_sent_at
|
11
|
-
|
12
|
-
## Rememberable
|
13
8
|
t.datetime :remember_created_at
|
14
|
-
|
15
|
-
## Trackable
|
16
9
|
t.integer :sign_in_count, :default => 0
|
17
10
|
t.datetime :current_sign_in_at
|
18
11
|
t.datetime :last_sign_in_at
|
19
12
|
t.string :current_sign_in_ip
|
20
13
|
t.string :last_sign_in_ip
|
21
|
-
|
22
|
-
## Encryptable
|
23
|
-
# t.string :password_salt
|
24
|
-
|
25
|
-
## Confirmable
|
26
|
-
# t.string :confirmation_token
|
27
|
-
# t.datetime :confirmed_at
|
28
|
-
# t.datetime :confirmation_sent_at
|
29
|
-
# t.string :unconfirmed_email # Only if using reconfirmable
|
30
|
-
|
31
|
-
## Lockable
|
32
|
-
# t.integer :failed_attempts, :default => 0 # Only if lock strategy is :failed_attempts
|
33
|
-
# t.string :unlock_token # Only if unlock strategy is :email or :both
|
34
|
-
# t.datetime :locked_at
|
35
|
-
|
36
|
-
## Token authenticatable
|
37
14
|
t.string :authentication_token
|
38
|
-
|
39
|
-
|
40
|
-
# Uncomment below if timestamps were not included in your original model.
|
41
|
-
# t.timestamps
|
42
15
|
end
|
43
16
|
|
44
17
|
add_index ConstructorCore::User.table_name, :email, :unique => true
|
45
18
|
add_index ConstructorCore::User.table_name, :reset_password_token, :unique => true
|
46
|
-
# add_index :users, :confirmation_token, :unique => true
|
47
|
-
# add_index :users, :unlock_token, :unique => true
|
48
|
-
# add_index :users, :authentication_token, :unique => true
|
49
19
|
end
|
50
20
|
|
51
21
|
def self.down
|
52
|
-
# By default, we don't want to make any assumption about how to roll back a migration when your
|
53
|
-
# model already existed. Please edit below which fields you would like to remove in this migration.
|
54
22
|
drop_table ConstructorCore::User.table_name
|
55
23
|
end
|
56
24
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: constructor-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -110,6 +110,7 @@ files:
|
|
110
110
|
- app/assets/stylesheets/constructor_core/main.css.scss
|
111
111
|
- app/controllers/constructor_core/application_controller.rb
|
112
112
|
- app/controllers/constructor_core/sessions_controller.rb
|
113
|
+
- app/controllers/constructor_core/users_controller.rb
|
113
114
|
- app/helpers/constructor_core/application_helper.rb
|
114
115
|
- app/models/constructor_core/user.rb
|
115
116
|
- app/views/constructor_core/devise/confirmations/new.html.haml
|
@@ -123,6 +124,7 @@ files:
|
|
123
124
|
- app/views/constructor_core/devise/shared/_links.html.haml
|
124
125
|
- app/views/constructor_core/devise/unlocks/new.html.haml
|
125
126
|
- app/views/constructor_core/sessions/new.html.haml
|
127
|
+
- app/views/constructor_core/users/profile.haml
|
126
128
|
- app/views/layouts/constructor_core/application_admin.haml
|
127
129
|
- config/environments/production.rb
|
128
130
|
- config/initializers/devise.rb
|