mobilize-base 1.1.01 → 1.1.02
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.
@@ -60,6 +60,11 @@ module GoogleDrive
|
|
60
60
|
elsif entry.role != role and ['reader','writer','owner'].include?(role)
|
61
61
|
entry.role=role
|
62
62
|
f.acl.update_role(entry,entry.role)
|
63
|
+
if entry.role != role
|
64
|
+
#for whatever reason
|
65
|
+
f.acl.delete(entry)
|
66
|
+
f.acl.push({:scope_type=>"user",:scope=>email,:role=>role})
|
67
|
+
end
|
63
68
|
elsif !['reader','writer','owner'].include?(role)
|
64
69
|
raise "Invalid role #{role}"
|
65
70
|
end
|
@@ -49,9 +49,9 @@ module GoogleDrive
|
|
49
49
|
#with the contents of merge_sheet
|
50
50
|
sheet = self
|
51
51
|
sheet.reload
|
52
|
-
entry =
|
52
|
+
entry = sheet.spreadsheet.acl_entry("#{user}@#{Mobilize::Gdrive.domain}")
|
53
53
|
unless entry and ['writer','owner'].include?(entry.role)
|
54
|
-
raise "User #{user} is not allowed to write to #{
|
54
|
+
raise "User #{user} is not allowed to write to #{sheet.spreadsheet.title}"
|
55
55
|
end
|
56
56
|
merge_sheet.reload
|
57
57
|
curr_rows = sheet.num_rows
|
@@ -50,18 +50,25 @@ module Mobilize
|
|
50
50
|
#return blank response if there are no slots available
|
51
51
|
return nil unless gdrive_slot
|
52
52
|
s = Stage.where(:path=>stage_path).first
|
53
|
-
user = s.job.runner.user
|
53
|
+
user = s.job.runner.user
|
54
54
|
target_path = s.params['target']
|
55
55
|
target_path = "#{s.job.runner.title}/#{target_path}" unless target_path.index("/")
|
56
56
|
source_dst = s.source_dsts(gdrive_slot).first
|
57
|
-
tsv = source_dst.read(user)
|
57
|
+
tsv = source_dst.read(user.name)
|
58
58
|
sheet_name = target_path.split("/").last
|
59
59
|
temp_path = [stage_path.gridsafe,sheet_name].join("/")
|
60
60
|
temp_sheet = Gsheet.find_or_create_by_path(temp_path,gdrive_slot)
|
61
61
|
temp_sheet.write(tsv,Gdrive.owner_name)
|
62
62
|
temp_sheet.check_and_fix(tsv)
|
63
|
-
target_sheet = Gsheet.
|
64
|
-
target_sheet
|
63
|
+
target_sheet = Gsheet.find_by_path(target_path,gdrive_slot)
|
64
|
+
unless target_sheet
|
65
|
+
#only give the user edit permissions if they're the ones
|
66
|
+
#creating it
|
67
|
+
target_sheet = Gsheet.find_or_create_by_path(target_path,gdrive_slot)
|
68
|
+
target_sheet.spreadsheet.update_acl(user.email,"writer") unless target_sheet.spreadsheet.acl_entry(user.email).role=="owner"
|
69
|
+
target_sheet.delete_sheet1
|
70
|
+
end
|
71
|
+
target_sheet.merge(temp_sheet,user.name)
|
65
72
|
#delete the temp sheet's book
|
66
73
|
temp_sheet.spreadsheet.delete
|
67
74
|
status = "Write successful for #{target_path}"
|
@@ -85,7 +85,16 @@ module Mobilize
|
|
85
85
|
|
86
86
|
def gsheet(gdrive_slot)
|
87
87
|
r = self
|
88
|
-
jobs_sheet = Gsheet.
|
88
|
+
jobs_sheet = Gsheet.find_by_path(r.path,gdrive_slot)
|
89
|
+
#make sure the user has a runner with a jobs sheet and has write privileges on the spreadsheet
|
90
|
+
unless (jobs_sheet and jobs_sheet.spreadsheet.acl_entry(r.user.email).ie{|e| e and e.role=="writer"})
|
91
|
+
#only give the user edit permissions if they're the ones
|
92
|
+
#creating it
|
93
|
+
jobs_sheet = Gsheet.find_or_create_by_path(r.path,gdrive_slot)
|
94
|
+
unless jobs_sheet.spreadsheet.acl_entry(r.user.email).role=="owner"
|
95
|
+
jobs_sheet.spreadsheet.update_acl(r.user.email,"writer")
|
96
|
+
end
|
97
|
+
end
|
89
98
|
jobs_sheet.add_headers(r.headers)
|
90
99
|
begin;jobs_sheet.delete_sheet1;rescue;end #don't care if sheet1 deletion fails
|
91
100
|
return jobs_sheet
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mobilize-base
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.02
|
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: 2013-01-
|
12
|
+
date: 2013-01-28 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
@@ -239,7 +239,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
239
239
|
version: '0'
|
240
240
|
segments:
|
241
241
|
- 0
|
242
|
-
hash:
|
242
|
+
hash: 1719370628244377798
|
243
243
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
244
244
|
none: false
|
245
245
|
requirements:
|
@@ -248,7 +248,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
248
248
|
version: '0'
|
249
249
|
segments:
|
250
250
|
- 0
|
251
|
-
hash:
|
251
|
+
hash: 1719370628244377798
|
252
252
|
requirements: []
|
253
253
|
rubyforge_project: mobilize-base
|
254
254
|
rubygems_version: 1.8.24
|