backframe 0.0.6 → 0.0.7

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: ceda85c65ab0c2f0625e23aac982de9b91a9bbb2
4
- data.tar.gz: 0efa899518a8b93daa01fe206c45514775813cdb
3
+ metadata.gz: cd277bdfe904479578e2882ecd7feab33d4442aa
4
+ data.tar.gz: a2f3459e626280e5ab56ee51217968714d26a379
5
5
  SHA512:
6
- metadata.gz: d30297a31c30d271a8be8d488f55c517b9ef82f2096ae3cb1088e753cf9cf1fe48b1193e574fff8e5ed5878ecdd4e0cf6208eedfa5fae64f748db944f6239797
7
- data.tar.gz: 36414af8280ceb9a3804df6d660db327033c8cc67e5bbb917bf3bec680759c1e0e3bec78e001f9b3c296729ba2c50bb34540d9d50fc6d5a41592fac34606f22d
6
+ metadata.gz: d773393b0da6a44dc3f77b851b3d9b67d345b2fbea972f4d1d7c1856826a51c935563dd85c980c76c0f4021c5c7d58ed6f6985190106b6cc35ad498ff51cfb08
7
+ data.tar.gz: cf566f5e83399fab867a5b9fdaa4e85e924bc0f72023fe0f61d397aa7d938cd5ee892aba3e3d3e84c534674f99212424107ae24fdaabbdcdcc66eac9cbd3f2fa
@@ -0,0 +1,66 @@
1
+ require 'active_support'
2
+ require 'active_support/inflector'
3
+
4
+ module Backframe
5
+ module ActsAsActivation
6
+ extend ActiveSupport::Concern
7
+
8
+ class_methods do
9
+ def acts_as_activation(model, *args)
10
+
11
+ arguments = args[0]
12
+
13
+ class_eval <<-EOV
14
+
15
+ layout 'signin'
16
+ before_action :load_#{model.underscore}, :except => :show
17
+
18
+ def show
19
+ @activation = Activation.find_by(:token => params[:token])
20
+ if @activation.nil?
21
+ flash[:error] = I18n.t(:activation_invalid)
22
+ redirect_to account_signin_path
23
+ elsif @activation.expired?
24
+ flash[:error] = I18n.t(:activation_expired)
25
+ redirect_to '#{arguments[:prefix]}/signin'
26
+ else
27
+ session.delete(:#{model.underscore}_id)
28
+ session[:activation_id] = @activation.id
29
+ flash[:success] = I18n.t(:activation_success)
30
+ redirect_to '#{arguments[:prefix]}/activation/password'
31
+ end
32
+ end
33
+
34
+ def password
35
+ if request.patch?
36
+ @user.set_password = true
37
+ @user.attributes = params.require(:#{model.underscore}).permit([:new_password,:confirm_password])
38
+ if @user.save!
39
+ session.delete(:activation_id)
40
+ session[:#{model.underscore}_id] = @user.id
41
+ @activation.claim
42
+ redirect_to '#{arguments[:redirect]}'
43
+ else
44
+ flash[:error] = @user.errors[:new_password].first
45
+ end
46
+ end
47
+ end
48
+
49
+ private
50
+
51
+ def load_#{model.underscore}
52
+ @activation = Activation.find_by(:id => session[:activation_id])
53
+ @user = @activation.user
54
+ if @user.nil?
55
+ flash[:error] = I18n.t(:activation_invalid)
56
+ redirect_to '#{arguments[:prefix]}/signin'
57
+ end
58
+ end
59
+
60
+ EOV
61
+
62
+ end
63
+ end
64
+
65
+ end
66
+ end
@@ -1,11 +1,13 @@
1
+ require 'write_xlsx'
2
+
1
3
  require 'active_support'
2
4
  require 'active_support/inflector'
3
5
  require 'active_model_serializers'
4
6
 
5
- require 'backframe/acts_as_api/adapter'
6
- require 'backframe/acts_as_api/errors'
7
- require 'backframe/acts_as_api/headers'
8
- require 'backframe/acts_as_api/page'
7
+ require 'backframe/actioncontroller/acts_as_api/adapter'
8
+ require 'backframe/actioncontroller/acts_as_api/errors'
9
+ require 'backframe/actioncontroller/acts_as_api/headers'
10
+ require 'backframe/actioncontroller/acts_as_api/page'
9
11
 
10
12
  module Backframe
11
13
  module ActsAsAPI
@@ -0,0 +1,81 @@
1
+ require 'active_support'
2
+ require 'active_support/inflector'
3
+
4
+ module Backframe
5
+ module ActsAsReset
6
+ extend ActiveSupport::Concern
7
+
8
+ class_methods do
9
+ def acts_as_reset(model, *args)
10
+
11
+ arguments = args[0]
12
+
13
+ class_eval <<-EOV
14
+
15
+ layout 'signin'
16
+ before_action :redirect_if_signed_in
17
+ before_action :load_#{model.underscore}, :except => [:new,:show]
18
+
19
+ def new
20
+ if request.post?
21
+ @user = #{model}.find_by_email(params[:#{model.underscore}][:email])
22
+ if @user && @user.reset
23
+ flash[:error] = I18n.t(:reset_request)
24
+ redirect_to '#{arguments[:prefix]}/signin'
25
+ else
26
+ flash[:error] = I18n.t(:reset_not_found)
27
+ redirect_to '#{arguments[:prefix]}/reset'
28
+ end
29
+ else
30
+ @user = #{model}.new
31
+ end
32
+ end
33
+
34
+ def show
35
+ @reset = Reset.find_by(:token => params[:token])
36
+ if @reset.nil?
37
+ flash[:error] = I18n.t(:reset_invalid)
38
+ redirect_to '#{arguments[:prefix]}/signin'
39
+ elsif @reset.expired?
40
+ flash[:error] = I18n.t(:reset_expired)
41
+ redirect_to '#{arguments[:prefix]}/signin'
42
+ else
43
+ @reset.claim
44
+ session[:reset_id] = @reset.user.id
45
+ flash[:error] = I18n.t(:reset_password)
46
+ redirect_to '#{arguments[:prefix]}/reset/password'
47
+ end
48
+ end
49
+
50
+ def password
51
+ if request.patch?
52
+ @user.set_password = true
53
+ @user.attributes = params.require(:#{model.underscore}).permit([:new_password,:confirm_password])
54
+ if @user.save
55
+ session.delete(:reset_id)
56
+ session[:#{model.underscore}_id] = @user.id
57
+ flash[:error] = I18n.t(:reset_success)
58
+ redirect_to '#{arguments[:redirect]}'
59
+ else
60
+ flash[:error] = @user.errors[:new_password].first
61
+ end
62
+ end
63
+ end
64
+
65
+ private
66
+
67
+ def load_#{model.underscore}
68
+ @user = #{model}.find_by(:id => session[:reset_id])
69
+ if @user.nil?
70
+ flash[:error] = I18n.t(:reset_invalid)
71
+ redirect_to account_signin_path
72
+ end
73
+ end
74
+
75
+ EOV
76
+
77
+ end
78
+ end
79
+
80
+ end
81
+ end
@@ -1,6 +1,6 @@
1
1
  require 'active_support'
2
2
 
3
- require 'backframe/acts_as_resource/actions'
3
+ require 'backframe/actioncontroller/acts_as_resource/actions'
4
4
 
5
5
  module Backframe
6
6
  module ActsAsResource
@@ -0,0 +1,78 @@
1
+ require 'active_support'
2
+ require 'active_support/inflector'
3
+
4
+ module Backframe
5
+ module ActsAsSession
6
+ extend ActiveSupport::Concern
7
+
8
+ class_methods do
9
+ def acts_as_session(model, *args)
10
+
11
+ arguments = args[0]
12
+
13
+ class_eval <<-EOV
14
+
15
+ layout 'signin'
16
+ before_action :redirect_if_signed_in, :except => [:application,:destroy]
17
+ before_action :authenticate_#{model.underscore}, :only => :application
18
+
19
+ def application
20
+ render :layout => false
21
+ end
22
+
23
+ def new
24
+ @user = #{model}.new
25
+ end
26
+
27
+ def create
28
+ if @user = #{model}.find_by_email(params[:#{model.underscore}][:email])
29
+ if @user.locked_out?
30
+ flash[:error] = I18n.t(:session_locked)
31
+ session[:signin_locked] = true
32
+ redirect_to '#{arguments[:prefix]}/signin'
33
+ elsif @user.authenticate(params[:#{model.underscore}][:password])
34
+ @user.signin(:success)
35
+ session.delete(:signin_locked)
36
+ session[:#{model.underscore}_id] = @user.id
37
+ url = session[:redirect_to] || '#{arguments[:redirect]}'
38
+ redirect_to url
39
+ else
40
+ @user.signin(:failed)
41
+ if @user.locked_out?
42
+ session[:signin_locked] = true
43
+ flash[:error] = I18n.t(:session_locking)
44
+ else
45
+ flash[:error] = I18n.t(:session_invalid)
46
+ end
47
+ redirect_to '#{arguments[:prefix]}/signin'
48
+ end
49
+ else
50
+ flash[:error] = I18n.t(:session_not_found)
51
+ redirect_to '#{arguments[:prefix]}/signin'
52
+ end
53
+ end
54
+
55
+ def destroy
56
+ flash[:success] = I18n.t(:session_signout)
57
+ session.delete(:redirect_to)
58
+ session.delete(:#{model.underscore}_id)
59
+ redirect_to '#{arguments[:prefix]}/signin'
60
+ end
61
+
62
+ private
63
+
64
+ def authenticate_#{model.underscore}
65
+ if !signed_in?
66
+ flash[:warning] = I18n.t(:session_interception)
67
+ session[:redirect_to] = request.path
68
+ redirect_to '#{arguments[:prefix]}/signin'
69
+ end
70
+ end
71
+
72
+ EOV
73
+
74
+ end
75
+ end
76
+
77
+ end
78
+ end
@@ -3,6 +3,9 @@ module Backframe
3
3
  initializer 'backframe' do |_app|
4
4
  ActionController::Base.send(:include, Backframe::ActsAsAPI)
5
5
  ActionController::Base.send(:include, Backframe::ActsAsResource)
6
+ ActionController::Base.send(:include, Backframe::ActsAsActivation)
7
+ ActionController::Base.send(:include, Backframe::ActsAsReset)
8
+ ActionController::Base.send(:include, Backframe::ActsAsSession)
6
9
  ActiveRecord::Base.send(:include, Backframe::ActsAsOrderable)
7
10
  ActiveRecord::Base.send(:include, Backframe::ActsAsStatus)
8
11
  ActiveRecord::Base.send(:include, Backframe::ActsAsUser)
@@ -1,3 +1,3 @@
1
1
  module Backframe
2
- VERSION = '0.0.6'
2
+ VERSION = '0.0.7'
3
3
  end
data/lib/backframe.rb CHANGED
@@ -1,13 +1,13 @@
1
- require 'backframe/mime'
2
- require 'backframe/acts_as_resource'
3
- require 'backframe/filter_sort'
4
- require 'backframe/acts_as_orderable'
5
- require 'backframe/acts_as_api'
6
- require 'backframe/acts_as_resource'
7
- require 'backframe/acts_as_status'
8
- require 'backframe/acts_as_user'
9
- require 'backframe/migration'
10
- require 'write_xlsx'
1
+ require 'backframe/actioncontroller/acts_as_activation'
2
+ require 'backframe/actioncontroller/acts_as_api'
3
+ require 'backframe/actioncontroller/acts_as_reset'
4
+ require 'backframe/actioncontroller/acts_as_resource'
5
+ require 'backframe/actioncontroller/acts_as_session'
6
+ require 'backframe/activerecord/acts_as_orderable'
7
+ require 'backframe/activerecord/acts_as_status'
8
+ require 'backframe/activerecord/acts_as_user'
9
+ require 'backframe/activerecord/filter_sort'
10
+ require 'backframe/activerecord/migration'
11
11
 
12
12
  module Backframe
13
13
  module Exceptions
@@ -17,5 +17,6 @@ module Backframe
17
17
  end
18
18
 
19
19
  if defined? Rails
20
+ require 'backframe/mime'
20
21
  require 'backframe/railtie'
21
22
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: backframe
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Greg Kops
@@ -95,18 +95,21 @@ files:
95
95
  - backframe.gemspec
96
96
  - circle.yml
97
97
  - lib/backframe.rb
98
- - lib/backframe/acts_as_api.rb
99
- - lib/backframe/acts_as_api/adapter.rb
100
- - lib/backframe/acts_as_api/errors.rb
101
- - lib/backframe/acts_as_api/headers.rb
102
- - lib/backframe/acts_as_api/page.rb
103
- - lib/backframe/acts_as_orderable.rb
104
- - lib/backframe/acts_as_resource.rb
105
- - lib/backframe/acts_as_resource/actions.rb
106
- - lib/backframe/acts_as_status.rb
107
- - lib/backframe/acts_as_user.rb
108
- - lib/backframe/filter_sort.rb
109
- - lib/backframe/migration.rb
98
+ - lib/backframe/actioncontroller/acts_as_activation.rb
99
+ - lib/backframe/actioncontroller/acts_as_api.rb
100
+ - lib/backframe/actioncontroller/acts_as_api/adapter.rb
101
+ - lib/backframe/actioncontroller/acts_as_api/errors.rb
102
+ - lib/backframe/actioncontroller/acts_as_api/headers.rb
103
+ - lib/backframe/actioncontroller/acts_as_api/page.rb
104
+ - lib/backframe/actioncontroller/acts_as_reset.rb
105
+ - lib/backframe/actioncontroller/acts_as_resource.rb
106
+ - lib/backframe/actioncontroller/acts_as_resource/actions.rb
107
+ - lib/backframe/actioncontroller/acts_as_session.rb
108
+ - lib/backframe/activerecord/acts_as_orderable.rb
109
+ - lib/backframe/activerecord/acts_as_status.rb
110
+ - lib/backframe/activerecord/acts_as_user.rb
111
+ - lib/backframe/activerecord/filter_sort.rb
112
+ - lib/backframe/activerecord/migration.rb
110
113
  - lib/backframe/mime.rb
111
114
  - lib/backframe/railtie.rb
112
115
  - lib/backframe/version.rb