gdrivestrg 0.0.6 → 0.0.7

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.
@@ -6,6 +6,7 @@ class GdriveStrg < CloudStrg::CloudStorage
6
6
  CLIENT_ID = "867108581948.apps.googleusercontent.com"
7
7
  CLIENT_SECRET = "Z3TXaBvx36ex8RRD-Wu-3PGK"
8
8
  SCOPES = [
9
+ 'https://www.googleapis.com/auth/drive',
9
10
  'https://www.googleapis.com/auth/drive.file', # we will only see the files createdby this app
10
11
  'https://www.googleapis.com/auth/userinfo.email',
11
12
  'https://www.googleapis.com/auth/userinfo.profile'
@@ -32,25 +33,10 @@ class GdriveStrg < CloudStrg::CloudStorage
32
33
  end
33
34
 
34
35
  session = params[:session]
35
-
36
- @client.authorization.update_token!(:access_token => session[:gdrive_access_token] , #:access_token => user_params.access_token,
37
- :refresh_token => user_params.refresh_token,
38
- :expires_in => user_params.expires_in,
39
- :issued_at => user_params.issued_at)
40
- if @client.authorization.refresh_token && @client.authorization.expired?
41
- @client.authorization.fetch_access_token!
42
- session[:gdrive_access_token] = @client.authorization.access_token
43
- # user.gdrive_access_token = @client.authorization.access_token
44
- user_params.refresh_token = @client.authorization.refresh_token
45
- user_params.expires_in = @client.authorization.expires_in
46
- user_params.issued_at = @client.authorization.issued_at
47
- user_params.save()
48
- end
49
-
50
36
 
51
37
  if params[:code]
52
38
  authorize_code(params[:code])
53
-
39
+
54
40
  session[:gdrive_access_token] = @client.authorization.access_token
55
41
  # user.gdrive_access_token = @client.authorization.access_token
56
42
  user_params.refresh_token = @client.authorization.refresh_token
@@ -59,24 +45,39 @@ class GdriveStrg < CloudStrg::CloudStorage
59
45
  user_params.save()
60
46
  elsif params[:error] # User denied the oauth grant
61
47
  puts "Denied: #{params[:error]}"
62
- end
63
-
64
- if not authorized?
65
- #user.gdrive_refresh_token = @client.authorization.refresh_token
66
- #user.save
67
- session[:plugin_name] = self.class.to_s.split('Strg')[0].downcase
68
- return session, auth_url
69
- end
70
-
71
- begin
72
- @client.execute!(:api_method => @auth_api.userinfo.get)
73
- rescue Exception => e
74
- session.delete(:gdrive_access_token)
75
- user_params.refresh_token = nil
76
- user_params.expires_in = nil
77
- user_params.issued_at = nil
78
- user_params.save()
79
- return config params
48
+ else
49
+ if params[:refresh_token] and params[:access_token] and params[:expires_in]
50
+ session[:gdrive_access_token] = params[:access_token]
51
+ # user.gdrive_access_token = @client.authorization.access_token
52
+ user_params.refresh_token = params[:refresh_token]
53
+ user_params.expires_in = params[:expires_in]
54
+ user_params.save()
55
+ user_params.issued_at = user_params.updated_at
56
+ user_params.save()
57
+ end
58
+ @client.authorization.update_token!(:access_token => session[:gdrive_access_token] , #:access_token => user_params.access_token,
59
+ :refresh_token => user_params.refresh_token,
60
+ :expires_in => user_params.expires_in,
61
+ :issued_at => user_params.issued_at)
62
+ if @client.authorization.refresh_token && @client.authorization.expired?
63
+ session = requestAccessToken(session, user_params)
64
+ else
65
+ if not authorized?
66
+ if @client.authorization.refresh_token
67
+ session = requestAccessToken(session, user_params)
68
+ else
69
+ session[:plugin_name] = self.class.to_s.split('Strg')[0].downcase
70
+ return session, auth_url
71
+ end
72
+ else
73
+ begin
74
+ @client.execute!(:api_method => @auth_api.userinfo.get)
75
+ rescue Exception => e
76
+ session.delete(:gdrive_access_token)
77
+ session = requestAccessToken(session, user_params)
78
+ end
79
+ end
80
+ end
80
81
  end
81
82
  return session, false
82
83
  end
@@ -141,6 +142,21 @@ class GdriveStrg < CloudStrg::CloudStorage
141
142
  return lines
142
143
  end
143
144
 
145
+ def share_file params
146
+ new_permission = @drive_api.permissions.insert.request_schema.new({'value' => params[:share_email], 'type' => 'user', 'role' => 'writer'})
147
+ result = @client.execute!(
148
+ :api_method => @drive_api.permissions.insert,
149
+ :body_object => new_permission,
150
+ :parameters => { 'fileId' => params[:file_id] })
151
+ if result.status == 200
152
+ return result.data[:id]
153
+ else
154
+ puts "An error occurred: #{result.data['error']['message']}"
155
+ return nil
156
+ end
157
+
158
+ end
159
+
144
160
  def check_referer referer
145
161
  if not referer
146
162
  return false
@@ -162,4 +178,15 @@ class GdriveStrg < CloudStrg::CloudStorage
162
178
  def auth_url(state = '')
163
179
  return @client.authorization.authorization_uri().to_s
164
180
  end
181
+
182
+ def requestAccessToken(session, user_params)
183
+ @client.authorization.fetch_access_token!
184
+ session[:gdrive_access_token] = @client.authorization.access_token
185
+ # user.gdrive_access_token = @client.authorization.access_token
186
+ user_params.refresh_token = @client.authorization.refresh_token
187
+ user_params.expires_in = @client.authorization.expires_in
188
+ user_params.issued_at = @client.authorization.issued_at
189
+ user_params.save()
190
+ return session
191
+ end
165
192
  end
@@ -6,6 +6,7 @@ class GdriveStrg < CloudStrg::CloudStorage
6
6
  CLIENT_ID = "867108581948.apps.googleusercontent.com"
7
7
  CLIENT_SECRET = "Z3TXaBvx36ex8RRD-Wu-3PGK"
8
8
  SCOPES = [
9
+ 'https://www.googleapis.com/auth/drive',
9
10
  'https://www.googleapis.com/auth/drive.file', # we will only see the files createdby this app
10
11
  'https://www.googleapis.com/auth/userinfo.email',
11
12
  'https://www.googleapis.com/auth/userinfo.profile'
@@ -32,25 +33,10 @@ class GdriveStrg < CloudStrg::CloudStorage
32
33
  end
33
34
 
34
35
  session = params[:session]
35
-
36
- @client.authorization.update_token!(:access_token => session[:gdrive_access_token] , #:access_token => user_params.access_token,
37
- :refresh_token => user_params.refresh_token,
38
- :expires_in => user_params.expires_in,
39
- :issued_at => user_params.issued_at)
40
- if @client.authorization.refresh_token && @client.authorization.expired?
41
- @client.authorization.fetch_access_token!
42
- session[:gdrive_access_token] = @client.authorization.access_token
43
- # user.gdrive_access_token = @client.authorization.access_token
44
- user_params.refresh_token = @client.authorization.refresh_token
45
- user_params.expires_in = @client.authorization.expires_in
46
- user_params.issued_at = @client.authorization.issued_at
47
- user_params.save()
48
- end
49
-
50
36
 
51
37
  if params[:code]
52
38
  authorize_code(params[:code])
53
-
39
+
54
40
  session[:gdrive_access_token] = @client.authorization.access_token
55
41
  # user.gdrive_access_token = @client.authorization.access_token
56
42
  user_params.refresh_token = @client.authorization.refresh_token
@@ -59,24 +45,39 @@ class GdriveStrg < CloudStrg::CloudStorage
59
45
  user_params.save()
60
46
  elsif params[:error] # User denied the oauth grant
61
47
  puts "Denied: #{params[:error]}"
62
- end
63
-
64
- if not authorized?
65
- #user.gdrive_refresh_token = @client.authorization.refresh_token
66
- #user.save
67
- session[:plugin_name] = self.class.to_s.split('Strg')[0].downcase
68
- return session, auth_url
69
- end
70
-
71
- begin
72
- @client.execute!(:api_method => @auth_api.userinfo.get)
73
- rescue Exception => e
74
- session.delete(:gdrive_access_token)
75
- user_params.refresh_token = nil
76
- user_params.expires_in = nil
77
- user_params.issued_at = nil
78
- user_params.save()
79
- return config params
48
+ else
49
+ if params[:refresh_token] and params[:access_token] and params[:expires_in]
50
+ session[:gdrive_access_token] = params[:access_token]
51
+ # user.gdrive_access_token = @client.authorization.access_token
52
+ user_params.refresh_token = params[:refresh_token]
53
+ user_params.expires_in = params[:expires_in]
54
+ user_params.save()
55
+ user_params.issued_at = user_params.updated_at
56
+ user_params.save()
57
+ end
58
+ @client.authorization.update_token!(:access_token => session[:gdrive_access_token] , #:access_token => user_params.access_token,
59
+ :refresh_token => user_params.refresh_token,
60
+ :expires_in => user_params.expires_in,
61
+ :issued_at => user_params.issued_at)
62
+ if @client.authorization.refresh_token && @client.authorization.expired?
63
+ session = requestAccessToken(session, user_params)
64
+ else
65
+ if not authorized?
66
+ if @client.authorization.refresh_token
67
+ session = requestAccessToken(session, user_params)
68
+ else
69
+ session[:plugin_name] = self.class.to_s.split('Strg')[0].downcase
70
+ return session, auth_url
71
+ end
72
+ else
73
+ begin
74
+ @client.execute!(:api_method => @auth_api.userinfo.get)
75
+ rescue Exception => e
76
+ session.delete(:gdrive_access_token)
77
+ session = requestAccessToken(session, user_params)
78
+ end
79
+ end
80
+ end
80
81
  end
81
82
  return session, false
82
83
  end
@@ -141,7 +142,25 @@ class GdriveStrg < CloudStrg::CloudStorage
141
142
  return lines
142
143
  end
143
144
 
145
+ def share_file params
146
+ new_permission = @drive_api.permissions.insert.request_schema.new({'value' => params[:share_email], 'type' => 'user', 'role' => 'writer'})
147
+ result = @client.execute!(
148
+ :api_method => @drive_api.permissions.insert,
149
+ :body_object => new_permission,
150
+ :parameters => { 'fileId' => params[:file_id] })
151
+ if result.status == 200
152
+ return result.data[:id]
153
+ else
154
+ puts "An error occurred: #{result.data['error']['message']}"
155
+ return false
156
+ end
157
+
158
+ end
159
+
144
160
  def check_referer referer
161
+ if not referer
162
+ return false
163
+ end
145
164
  return referer.include? "accounts.google.com"
146
165
  end
147
166
 
@@ -159,4 +178,15 @@ class GdriveStrg < CloudStrg::CloudStorage
159
178
  def auth_url(state = '')
160
179
  return @client.authorization.authorization_uri().to_s
161
180
  end
181
+
182
+ def requestAccessToken(session, user_params)
183
+ @client.authorization.fetch_access_token!
184
+ session[:gdrive_access_token] = @client.authorization.access_token
185
+ # user.gdrive_access_token = @client.authorization.access_token
186
+ user_params.refresh_token = @client.authorization.refresh_token
187
+ user_params.expires_in = @client.authorization.expires_in
188
+ user_params.issued_at = @client.authorization.issued_at
189
+ user_params.save()
190
+ return session
191
+ end
162
192
  end
@@ -1,3 +1,3 @@
1
1
  module Gdrivestrg
2
- VERSION = "0.0.6"
2
+ VERSION = "0.0.7"
3
3
  end
@@ -0,0 +1,3 @@
1
+ module Gdrivestrg
2
+ VERSION = "0.0.6"
3
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gdrivestrg
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-12-17 00:00:00.000000000 Z
12
+ date: 2013-03-05 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -34,7 +34,7 @@ dependencies:
34
34
  requirements:
35
35
  - - ~>
36
36
  - !ruby/object:Gem::Version
37
- version: 0.0.9
37
+ version: 0.0.10
38
38
  type: :runtime
39
39
  prerelease: false
40
40
  version_requirements: !ruby/object:Gem::Requirement
@@ -42,7 +42,7 @@ dependencies:
42
42
  requirements:
43
43
  - - ~>
44
44
  - !ruby/object:Gem::Version
45
- version: 0.0.9
45
+ version: 0.0.10
46
46
  - !ruby/object:Gem::Dependency
47
47
  name: google-api-client
48
48
  requirement: !ruby/object:Gem::Requirement
@@ -107,6 +107,7 @@ files:
107
107
  - lib/tasks/gdrivestrg_tasks.rake
108
108
  - lib/gdrivestrg.rb~
109
109
  - lib/gdrivestrg/version.rb
110
+ - lib/gdrivestrg/version.rb~
110
111
  - lib/gdrivestrg/engine.rb
111
112
  - lib/gdrivestrg/gdrivestrg.rb~
112
113
  - lib/gdrivestrg/gdrivestrg.rb