authorizme 0.0.3 → 0.0.4
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/CHANGELOG.md +7 -0
- data/README.md +4 -0
- data/app/controllers/authorizme/authorizme_controller.rb +2 -3
- data/app/models/authorizme/synchronize_request.rb +14 -0
- data/app/views/authorizme/authorizme/index.html.erb +16 -0
- data/app/views/authorizme/layouts/authorizme.html.erb +11 -0
- data/lib/authorizme/acts_as_authorizme.rb +11 -0
- data/lib/authorizme/for_controllers.rb +1 -1
- data/lib/authorizme/version.rb +1 -1
- data/lib/generators/authorizme/templates/migrations/4_create_synchronize_requests.rb +13 -0
- metadata +34 -35
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -44,6 +44,10 @@ Also you can set roles. Just add some roles in Role model and then set it to use
|
|
44
44
|
|
45
45
|
### Advanced usage
|
46
46
|
|
47
|
+
#### Synchronize
|
48
|
+
|
49
|
+
You can sync your accounts. If user login with another provider on existing user session, then plugin will set synchronize request. You can call `has_synchronize_request?` and check if there's any new request. Then you can call 'synchronize(user)' to user model.
|
50
|
+
|
47
51
|
#### Custom provider callback view
|
48
52
|
|
49
53
|
By default providers use callback view which require JQuery and require `eventBus` in `window` dom element:
|
@@ -1,8 +1,10 @@
|
|
1
1
|
module Authorizme
|
2
2
|
class AuthorizmeController < ::ApplicationController
|
3
3
|
respond_to :html, :json, :xml
|
4
|
+
layout "authorizme/layouts/popup"
|
4
5
|
|
5
6
|
def index
|
7
|
+
@user = current_user
|
6
8
|
end
|
7
9
|
|
8
10
|
protected
|
@@ -33,8 +35,5 @@ module Authorizme
|
|
33
35
|
"http://#{request.host}/#{Authorizme::namespace}/login/#{provider}/callback"
|
34
36
|
end
|
35
37
|
end
|
36
|
-
|
37
|
-
def another_user_logged_in user
|
38
|
-
end
|
39
38
|
end
|
40
39
|
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module Authorizme
|
2
|
+
class SynchronizeRequest < ActiveRecord::Base
|
3
|
+
belongs_to :user
|
4
|
+
belongs_to :requested_user, :class_name => "User"
|
5
|
+
|
6
|
+
default_scope :joins => :requested_user
|
7
|
+
|
8
|
+
scope :status_new, where(:status => "new")
|
9
|
+
|
10
|
+
def as_json
|
11
|
+
{id: self.id, status: self.status, requested_user: self.requested_user, created_at: self.created_at}
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -1,6 +1,22 @@
|
|
1
1
|
<h2>Authorizme plugin for authorization</h2>
|
2
2
|
<div>Authorizme version <%= Authorizme::VERSION %></div>
|
3
3
|
|
4
|
+
<% if @user %>
|
5
|
+
<h3>Current user <%= @user %></h3>
|
6
|
+
|
7
|
+
<% if @user.has_synchronize_request? %>
|
8
|
+
<b>Synchronize Requests</b>
|
9
|
+
<% @user.synchronize_requests.each do |sync_request| %>
|
10
|
+
<div>User: <%= sync_request.requested_user %></div>
|
11
|
+
<% end %>
|
12
|
+
<% end %>
|
13
|
+
|
14
|
+
<div><a href="<%= "/#{Authorizme::namespace}/logout" %>">Logout</a></div>
|
15
|
+
|
16
|
+
<% end %>
|
17
|
+
|
18
|
+
|
19
|
+
|
4
20
|
<h3>Authorize with your credentials:</h3>
|
5
21
|
<%= form_tag "/#{Authorizme::namespace}/sessions" do %>
|
6
22
|
<p>
|
@@ -15,6 +15,7 @@ module Authorizme
|
|
15
15
|
belongs_to :role, :class_name => "Authorizme::UserRole", :foreign_key => "user_role_id"
|
16
16
|
belongs_to :origin_provider, :class_name => "Authorizme::UserProvider"
|
17
17
|
has_many :providers, :class_name => "Authorizme::UserProvider"
|
18
|
+
has_many :synchronize_requests, :class_name => "Authorizme::SynchronizeRequest"
|
18
19
|
|
19
20
|
attr_reader :password
|
20
21
|
attr_accessible :first_name, :last_name, :image_url, :email, :password, :password_confirmation
|
@@ -28,6 +29,8 @@ module Authorizme
|
|
28
29
|
# Filters
|
29
30
|
before_create :set_default_role
|
30
31
|
|
32
|
+
scope :with_role, joins(:role)
|
33
|
+
|
31
34
|
include InstanceMethodsOnActivation
|
32
35
|
|
33
36
|
if respond_to?(:attributes_protected_by_default)
|
@@ -109,6 +112,10 @@ module Authorizme
|
|
109
112
|
def has_not_provider?
|
110
113
|
!self.has_provider
|
111
114
|
end
|
115
|
+
|
116
|
+
def has_synchronize_request?
|
117
|
+
self.synchronize_requests.status_new.any?
|
118
|
+
end
|
112
119
|
|
113
120
|
def synchronize other_user
|
114
121
|
other_user.providers.each do |other_provider|
|
@@ -116,6 +123,10 @@ module Authorizme
|
|
116
123
|
end
|
117
124
|
on_synchronized other_user
|
118
125
|
end
|
126
|
+
|
127
|
+
def to_s
|
128
|
+
"#{self.first_name} #{self.last_name}"
|
129
|
+
end
|
119
130
|
|
120
131
|
private
|
121
132
|
|
data/lib/authorizme/version.rb
CHANGED
@@ -0,0 +1,13 @@
|
|
1
|
+
class CreateSynchronizeRequests < ActiveRecord::Migration
|
2
|
+
def change
|
3
|
+
create_table :synchronize_requests do |t|
|
4
|
+
t.references :user
|
5
|
+
t.integer :requested_user_id
|
6
|
+
t.string :status, :null => false, :default => "new"
|
7
|
+
|
8
|
+
t.timestamps
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
|
13
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: authorizme
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,11 +10,11 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2012-04-
|
13
|
+
date: 2012-04-05 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rake
|
17
|
-
requirement: &
|
17
|
+
requirement: &81754760 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ! '>='
|
@@ -22,10 +22,10 @@ dependencies:
|
|
22
22
|
version: '0'
|
23
23
|
type: :development
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *81754760
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: rspec
|
28
|
-
requirement: &
|
28
|
+
requirement: &81754550 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
31
|
- - ! '>='
|
@@ -33,10 +33,10 @@ dependencies:
|
|
33
33
|
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
36
|
+
version_requirements: *81754550
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: rspec-rails
|
39
|
-
requirement: &
|
39
|
+
requirement: &81754340 !ruby/object:Gem::Requirement
|
40
40
|
none: false
|
41
41
|
requirements:
|
42
42
|
- - ! '>='
|
@@ -44,10 +44,10 @@ dependencies:
|
|
44
44
|
version: '0'
|
45
45
|
type: :development
|
46
46
|
prerelease: false
|
47
|
-
version_requirements: *
|
47
|
+
version_requirements: *81754340
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: webrat
|
50
|
-
requirement: &
|
50
|
+
requirement: &81754130 !ruby/object:Gem::Requirement
|
51
51
|
none: false
|
52
52
|
requirements:
|
53
53
|
- - ! '>='
|
@@ -55,10 +55,10 @@ dependencies:
|
|
55
55
|
version: '0'
|
56
56
|
type: :development
|
57
57
|
prerelease: false
|
58
|
-
version_requirements: *
|
58
|
+
version_requirements: *81754130
|
59
59
|
- !ruby/object:Gem::Dependency
|
60
60
|
name: capybara
|
61
|
-
requirement: &
|
61
|
+
requirement: &81753920 !ruby/object:Gem::Requirement
|
62
62
|
none: false
|
63
63
|
requirements:
|
64
64
|
- - ! '>='
|
@@ -66,10 +66,10 @@ dependencies:
|
|
66
66
|
version: '0'
|
67
67
|
type: :development
|
68
68
|
prerelease: false
|
69
|
-
version_requirements: *
|
69
|
+
version_requirements: *81753920
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: factory_girl_rails
|
72
|
-
requirement: &
|
72
|
+
requirement: &81753710 !ruby/object:Gem::Requirement
|
73
73
|
none: false
|
74
74
|
requirements:
|
75
75
|
- - ! '>='
|
@@ -77,10 +77,10 @@ dependencies:
|
|
77
77
|
version: '0'
|
78
78
|
type: :development
|
79
79
|
prerelease: false
|
80
|
-
version_requirements: *
|
80
|
+
version_requirements: *81753710
|
81
81
|
- !ruby/object:Gem::Dependency
|
82
82
|
name: activesupport
|
83
|
-
requirement: &
|
83
|
+
requirement: &81753500 !ruby/object:Gem::Requirement
|
84
84
|
none: false
|
85
85
|
requirements:
|
86
86
|
- - ! '>='
|
@@ -88,10 +88,10 @@ dependencies:
|
|
88
88
|
version: '0'
|
89
89
|
type: :runtime
|
90
90
|
prerelease: false
|
91
|
-
version_requirements: *
|
91
|
+
version_requirements: *81753500
|
92
92
|
- !ruby/object:Gem::Dependency
|
93
93
|
name: rails
|
94
|
-
requirement: &
|
94
|
+
requirement: &81753290 !ruby/object:Gem::Requirement
|
95
95
|
none: false
|
96
96
|
requirements:
|
97
97
|
- - ! '>='
|
@@ -99,10 +99,10 @@ dependencies:
|
|
99
99
|
version: '0'
|
100
100
|
type: :runtime
|
101
101
|
prerelease: false
|
102
|
-
version_requirements: *
|
102
|
+
version_requirements: *81753290
|
103
103
|
- !ruby/object:Gem::Dependency
|
104
104
|
name: bcrypt-ruby
|
105
|
-
requirement: &
|
105
|
+
requirement: &81753080 !ruby/object:Gem::Requirement
|
106
106
|
none: false
|
107
107
|
requirements:
|
108
108
|
- - ! '>='
|
@@ -110,10 +110,10 @@ dependencies:
|
|
110
110
|
version: '0'
|
111
111
|
type: :runtime
|
112
112
|
prerelease: false
|
113
|
-
version_requirements: *
|
113
|
+
version_requirements: *81753080
|
114
114
|
- !ruby/object:Gem::Dependency
|
115
115
|
name: json
|
116
|
-
requirement: &
|
116
|
+
requirement: &81752870 !ruby/object:Gem::Requirement
|
117
117
|
none: false
|
118
118
|
requirements:
|
119
119
|
- - ! '>='
|
@@ -121,10 +121,10 @@ dependencies:
|
|
121
121
|
version: '0'
|
122
122
|
type: :runtime
|
123
123
|
prerelease: false
|
124
|
-
version_requirements: *
|
124
|
+
version_requirements: *81752870
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
126
|
name: twitter_oauth
|
127
|
-
requirement: &
|
127
|
+
requirement: &81752660 !ruby/object:Gem::Requirement
|
128
128
|
none: false
|
129
129
|
requirements:
|
130
130
|
- - ! '>='
|
@@ -132,10 +132,10 @@ dependencies:
|
|
132
132
|
version: '0'
|
133
133
|
type: :runtime
|
134
134
|
prerelease: false
|
135
|
-
version_requirements: *
|
135
|
+
version_requirements: *81752660
|
136
136
|
- !ruby/object:Gem::Dependency
|
137
137
|
name: twitter
|
138
|
-
requirement: &
|
138
|
+
requirement: &81752450 !ruby/object:Gem::Requirement
|
139
139
|
none: false
|
140
140
|
requirements:
|
141
141
|
- - ! '>='
|
@@ -143,10 +143,10 @@ dependencies:
|
|
143
143
|
version: '0'
|
144
144
|
type: :runtime
|
145
145
|
prerelease: false
|
146
|
-
version_requirements: *
|
146
|
+
version_requirements: *81752450
|
147
147
|
- !ruby/object:Gem::Dependency
|
148
148
|
name: oauth2
|
149
|
-
requirement: &
|
149
|
+
requirement: &81752240 !ruby/object:Gem::Requirement
|
150
150
|
none: false
|
151
151
|
requirements:
|
152
152
|
- - ! '>='
|
@@ -154,10 +154,10 @@ dependencies:
|
|
154
154
|
version: '0'
|
155
155
|
type: :runtime
|
156
156
|
prerelease: false
|
157
|
-
version_requirements: *
|
157
|
+
version_requirements: *81752240
|
158
158
|
- !ruby/object:Gem::Dependency
|
159
159
|
name: fbgraph
|
160
|
-
requirement: &
|
160
|
+
requirement: &81752030 !ruby/object:Gem::Requirement
|
161
161
|
none: false
|
162
162
|
requirements:
|
163
163
|
- - ! '>='
|
@@ -165,7 +165,7 @@ dependencies:
|
|
165
165
|
version: '0'
|
166
166
|
type: :runtime
|
167
167
|
prerelease: false
|
168
|
-
version_requirements: *
|
168
|
+
version_requirements: *81752030
|
169
169
|
description: Authorization that includes basic authorization and 3 social authorization
|
170
170
|
with Latvia social network draugiem.lv, facebook.com and twitter.com.
|
171
171
|
email:
|
@@ -189,10 +189,12 @@ files:
|
|
189
189
|
- app/controllers/authorizme/login/twitter_controller.rb
|
190
190
|
- app/controllers/authorizme/sessions_controller.rb
|
191
191
|
- app/controllers/authorizme/users_controller.rb
|
192
|
+
- app/models/authorizme/synchronize_request.rb
|
192
193
|
- app/models/authorizme/user_provider.rb
|
193
194
|
- app/models/authorizme/user_role.rb
|
194
195
|
- app/views/authorizme/authorizme/index.html.erb
|
195
196
|
- app/views/authorizme/authorizme/popup.html.erb
|
197
|
+
- app/views/authorizme/layouts/authorizme.html.erb
|
196
198
|
- app/views/authorizme/layouts/popup.html.erb
|
197
199
|
- app/views/authorizme/users/new.html.erb
|
198
200
|
- authorizme.gemspec
|
@@ -214,6 +216,7 @@ files:
|
|
214
216
|
- lib/generators/authorizme/templates/migrations/1_create_users.rb
|
215
217
|
- lib/generators/authorizme/templates/migrations/2_create_user_providers.rb
|
216
218
|
- lib/generators/authorizme/templates/migrations/3_create_user_roles.rb
|
219
|
+
- lib/generators/authorizme/templates/migrations/4_create_synchronize_requests.rb
|
217
220
|
- lib/generators/authorizme/templates/models/user.rb
|
218
221
|
- spec/.DS_Store
|
219
222
|
- spec/authorizme/providers/draugiem_spec.rb
|
@@ -245,8 +248,4 @@ signing_key:
|
|
245
248
|
specification_version: 3
|
246
249
|
summary: ! 'Simple authorization gem for basic and Oauth: facebook.com, twitter.com
|
247
250
|
and draugiem.lv'
|
248
|
-
test_files:
|
249
|
-
- spec/authorizme/providers/draugiem_spec.rb
|
250
|
-
- spec/authorizme_spec.rb
|
251
|
-
- spec/factories.rb
|
252
|
-
- spec/spec_helper.rb
|
251
|
+
test_files: []
|