gitcontacts 0.1.0 → 0.1.2

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: e670865cd65a65f5128db25e4e2ebac318ff0043
4
- data.tar.gz: 2969653a59f1061f778cc0957e06593604325690
3
+ metadata.gz: d837531ae0cd458381ab3de9f8c7de45bf66dd4d
4
+ data.tar.gz: f5ac1de4f69c59e31549d5f25d4d71431d8bb378
5
5
  SHA512:
6
- metadata.gz: 0ac51a3ab2dc1d9ed77fa8ce960708a6d3f8f323f5b794f34a02380079a71ee48d5ea413b0eeaba18f57ed2a20297fcb86cf150c40b3c79b9a85e74f50d4b381
7
- data.tar.gz: bcb9b4fa02ab51417dcd30299ee0a715e788fcf81d248f4976d83ae751bb71d9149503ba21844b293dd1884930632236037c5fc333b0cee33475b6b941c3e634
6
+ metadata.gz: 86c2493fd291a5c0cc7e84648f1bb072f31fa6530f1184420839509f947d55dae13d1a3c9746f0a4fd063fb9d5b8ac04a8f2bcb6e5b557086d05fd4037af165e
7
+ data.tar.gz: e2aa8858d3b06a545208e85504656552342b62ef286eb89e613748ac4c9203fdc0a54f3275348a1558591782d0d2a69d60f1887c7c135765e79f38977d6b1896
@@ -55,7 +55,16 @@ module GitContacts
55
55
 
56
56
  # code review: @AustinChou
57
57
  def auto_merge? uid
58
- true
58
+ if contacts = Contacts.new(getgid)
59
+ if contacts.getadmins.include? uid
60
+ return true
61
+ else
62
+ case getaction
63
+ when "setdata" ,"delete"
64
+ return true if Gitdb::Card.new(getgid).access(getcard_id).getmeta[:owner] == getuid # to-do
65
+ end
66
+ end
67
+ end
59
68
  end
60
69
 
61
70
  def allow operator
@@ -42,7 +42,7 @@ module GitContacts
42
42
  end
43
43
 
44
44
  def getrequests
45
- @obj.requests if @obj
45
+ @obj.requests.members if @obj
46
46
  end
47
47
 
48
48
  def password_correct? sha
@@ -1,3 +1,3 @@
1
1
  module GitContacts
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.2"
3
3
  end
data/lib/gitcontacts.rb CHANGED
@@ -34,6 +34,21 @@ module GitContacts
34
34
  [user, contacts] if user.getcontacts.include?(gid) && contacts.getusers.include?(operator)
35
35
  end
36
36
  end
37
+
38
+ def get_a_user operator, uid
39
+ return unless User.exist?(operator)
40
+ if User.exist? uid
41
+ user = User.new uid
42
+ {
43
+ :uid => user.getuid,
44
+ :email => user.getemail,
45
+ :password => user.getpassword,
46
+ :contacts => user.getcontacts,
47
+ :request => user.getrequests
48
+ }
49
+ end
50
+ end
51
+
37
52
  # code review: @abbshr
38
53
  # meta => :owner, :gid, :count, :name
39
54
  def get_all_contacts operator
@@ -81,7 +96,7 @@ module GitContacts
81
96
  return unless GitContacts::relation_valid? operator, gid
82
97
  contacts = Gitdb::Contacts.new operator
83
98
  contacts.access gid
84
- contacts.get_card_by_id(card_id).getdata
99
+ contacts.get_card_by_id(card_id).getdata.merge! card.getmeta
85
100
  end
86
101
  # code review: @abbshr
87
102
  def get_contacts_cards_by_related operator, gid, keyword
@@ -90,7 +105,7 @@ module GitContacts
90
105
  contacts.access gid
91
106
  contacts.get_cards do |card|
92
107
  info = card.getdata
93
- info if (card.getmeta[:owner].include? keyword) || info.find { |k,v| true if v.include? keyword }
108
+ info.merge! card.getmeta if (card.getmeta[:owner].include? keyword) || info.find { |k,v| true if v.include? keyword }
94
109
  end
95
110
  end
96
111
  # code review: @abbshr
@@ -121,38 +136,47 @@ module GitContacts
121
136
  end
122
137
  # code review: @abbshr
123
138
  def add_contacts_card operator, gid, payload
124
- return unless GitContacts::relation_valid? operator, gid
139
+ return unless result = GitContacts::relation_valid?(operator, gid)
140
+ user = result.first
125
141
  # request id
126
142
  qid = Request::create :uid => operator, :gid => gid, :action => "create"
127
- # create a rqeuest
143
+ # create a request
128
144
  req = Request.new qid
129
145
  if req.auto_merge? operator
130
146
  # here should return card_id if success
131
147
  cid = req.allow operator
132
148
  Request::delete qid
133
149
  return cid
150
+ else
151
+ user.add_request qid
134
152
  end
135
153
  true
136
154
  end
137
155
  # code review: @abbshr
138
156
  def edit_contacts_card operator, gid, card_id, payload
139
- return unless GitContacts::relation_valid? operator, gid
157
+ return unless result = GitContacts::relation_valid?(operator, gid)
158
+ user = result.first
140
159
  qid = Request::create :uid => operator, :gid => gid, :action => "setdata", :card_id => card_id, :content => JSON.generate(payload)
141
160
  req = Request.new qid
142
161
  if req.auto_merge? operator
143
162
  req.allow operator
144
163
  Request::delete qid
164
+ else
165
+ user.add_request qid
145
166
  end
146
167
  true
147
168
  end
148
169
  # code review: @abbshr
149
170
  def delete_contacts_card operator, gid, card_id
150
- return unless GitContacts::relation_valid? operator, gid
171
+ return unless result = GitContacts::relation_valid?(operator, gid)
172
+ user = result.first
151
173
  qid = Request::create :uid => operator, :gid => gid, :action => "delete", :card_id => card_id
152
174
  req = Request.new qid
153
175
  if req.auto_merge? operator
154
176
  req.allow operator
155
177
  Request::delete qid
178
+ else
179
+ user.add_request qid
156
180
  end
157
181
  true
158
182
  end
@@ -162,6 +186,10 @@ module GitContacts
162
186
  contacts = result.last
163
187
  contacts.getusers
164
188
  end
189
+ def get_contacts_user operator, gid, uid
190
+ return unless GitContacts::relation_valid?(operator, gid)
191
+ User.new uid if User.exist? uid
192
+ end
165
193
  # code review: @abbshr
166
194
  def add_contacts_user operator, gid, uid
167
195
  return unless result = GitContacts::relation_valid?(operator, gid)
@@ -172,14 +200,23 @@ module GitContacts
172
200
  true
173
201
  end
174
202
  end
203
+ def remove_contacts_user operator, gid, uid
204
+ return unless result = GitContacts::relation_valid?(operator, gid)
205
+ user = result.first
206
+ contacts = result.last
207
+ if contacts.getadmins.include?(user.getuid)
208
+ contacts.remove_user uid
209
+ true
210
+ end
211
+ end
175
212
 
176
213
  # code review: @AustinChou
177
214
  def edit_contacts_user_privileges operator, gid, uid, payload
178
215
  return unless result = GitContacts::relation_valid?(operator, gid)
179
216
  user = result.first
180
217
  contacts = result.last
181
- if contacts.getadmins.include?(user.getuid)
182
- case payload[:role]
218
+ if contacts.getadmins.include?(user.getuid) && contacts.getusers.include?(uid)
219
+ case payload
183
220
  when "admin"
184
221
  contacts.add_admin uid
185
222
  true
@@ -215,10 +252,42 @@ module GitContacts
215
252
 
216
253
  # code review: @AustinChou
217
254
  def get_all_requests operator
255
+ requests = []
256
+ if user = User.new(operator)
257
+ user.getrequests.each do |qid|
258
+ requests << Request.new(qid)
259
+ end
260
+ end
261
+ requests
262
+ end
263
+
264
+ def get_a_request operator, qid
265
+ if user = User.new(operator)
266
+ Request.new qid if Request.exist? qid
267
+ end
218
268
  end
219
269
 
220
270
  # code review: @AustinChou
221
- def edit_request_status operator
271
+ def edit_request_status operator, qid, payload
272
+ if req = Request.new(qid)
273
+ if result = GitContacts::relation_valid?(operator, req.getgid)
274
+ user = result.first
275
+ contacts = result.last
276
+ if contacts.getadmins.include?(user.getuid)
277
+ case payload
278
+ when "permit"
279
+ req.allow operator
280
+ Request::delete qid
281
+ when "reject"
282
+ Request::delete qid
283
+ end
284
+ author = User.new req.getuid
285
+ author.remove_request qid
286
+ true
287
+ end
288
+ end
289
+ end
222
290
  end
291
+
223
292
  end
224
293
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gitcontacts
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - AustinChou
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-10 00:00:00.000000000 Z
11
+ date: 2015-02-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: redis