- Timestamp:
- 05/21/12 15:54:57 (8 years ago)
- Location:
- branches/1.0/openPLM
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/1.0/openPLM/plmapp/controllers/plmobject.py
r977 r1108 117 117 if sponsor.username == settings.COMPANY: 118 118 sponsor = user 119 if not obj.check_in_group(sponsor, False): 120 sponsor = user 119 121 except models.DelegationLink.DoesNotExist: 120 122 sponsor = user … … 281 283 if not self.object.is_editable: 282 284 raise PermissionError("The object is not editable") 285 286 def check_in_group(self, user, raise_=True): 287 if user.username == settings.COMPANY: 288 return True 289 if not self.group.user_set.filter(id=user.id).exists(): 290 if raise_: 291 raise PermissionError("The user %s does not belong to the group." % user.username) 292 else: 293 return False 294 return True 283 295 284 296 def revise(self, new_revision): … … 379 391 if not dirty: 380 392 self.check_contributor(new_owner) 393 self.check_in_group(new_owner) 381 394 if new_owner.username == settings.COMPANY: 382 395 if self.is_editable: … … 409 422 if new_notified != self._user: 410 423 self.check_permission("owner") 424 self.check_in_group(new_notified) 411 425 models.PLMObjectUserLink.objects.create(plmobject=self.object, 412 426 user=new_notified, role="notified") … … 430 444 user=notified, role="notified") 431 445 link.delete() 432 details = "user: %s" % notified446 details = u"user: %s" % notified 433 447 self._save_histo("Notified removed", details) 434 448 … … 447 461 448 462 self.check_contributor(signer) 463 self.check_in_group(signer) 464 449 465 # remove old signer 450 466 old_signer = None … … 465 481 models.PLMObjectUserLink.objects.create(plmobject=self.object, 466 482 user=signer, role=role) 467 details = "signer: %s, level : %d" % (signer, level)483 details = u"signer: %s, level : %d" % (signer, level) 468 484 if old_signer: 469 details += ", old signer: %s" % old_signer485 details += u", old signer: %s" % old_signer 470 486 self._save_histo("New signer", details) 471 487 -
branches/1.0/openPLM/plmapp/templatetags/plmapp_tags.py
r1068 r1108 37 37 return parent.can_add_child(child) 38 38 elif action == "delegate": 39 return isinstance(child, (User, UserController)) 40 39 if isinstance(child, (User, UserController)): 40 if hasattr(parent, "check_in_group"): 41 from django.conf import settings 42 if child.username == settings.COMPANY: 43 return False 44 return parent.check_in_group(child) 45 return True 41 46 return False 42 47 -
branches/1.0/openPLM/plmapp/tests/base.py
r876 r1108 39 39 user.get_profile().is_contributor = True 40 40 user.get_profile().save() 41 user.groups.add(self.group) 41 42 return user 42 43 -
branches/1.0/openPLM/plmapp/tests/controllers/plmobject.py
r864 r1108 177 177 controller = self.create("Part1") 178 178 user = self.get_contributor() 179 user.groups.remove(self.group) 179 180 ctrl = self.CONTROLLER(controller.object, user) 180 181 self.failIf(ctrl.is_revisable()) … … 280 281 self.assertRaises(ValueError, controller.set_owner, self.cie) 281 282 283 def test_set_owner_error_not_in_group(self): 284 controller = self.create("Part1") 285 user = self.get_contributor() 286 user.groups.remove(self.group) 287 self.assertRaises(exc.PermissionError, controller.set_owner, user) 288 282 289 def test_set_sign1(self): 283 290 controller = self.create("Part1") … … 300 307 user = User(username="user2") 301 308 user.save() 309 user.groups.add(controller.group) 302 310 self.assertRaises(exc.PermissionError, controller.set_role, user, 303 311 level_to_sign_str(0)) 304 312 313 def test_set_signerr_error_not_in_group(self): 314 controller = self.create("Part1") 315 user = self.get_contributor() 316 user.groups.remove(self.group) 317 self.assertRaises(exc.PermissionError, controller.set_role, user, 318 level_to_sign_str(0)) 319 305 320 def test_add_notified(self): 306 321 controller = self.create("Part1") 307 322 user = User(username="user2") 308 323 user.save() 324 user.groups.add(controller.group) 309 325 controller.add_notified(user) 310 326 models.PLMObjectUserLink.objects.get(user=user, plmobject=controller.object, 311 327 role="notified") 328 329 def test_add_notified_error_not_in_group(self): 330 controller = self.create("Part1") 331 user = self.get_contributor() 332 user.groups.remove(self.group) 333 self.assertRaises(exc.PermissionError, controller.add_notified, user) 312 334 313 335 def test_remove_notified(self): -
branches/1.0/openPLM/plmapp/tests/views.py
r1104 r1108 362 362 def test_management(self): 363 363 response = self.get(self.base_url + "management/", page="management") 364 self.brian.groups.add(self.group) 364 365 self.controller.set_owner(self.brian) 365 366 response = self.get(self.base_url + "management/") … … 378 379 def test_management_add_post(self): 379 380 data = dict(type="User", username=self.brian.username) 381 self.brian.groups.add(self.group) 380 382 response = self.post(self.base_url + "management/add/", data) 381 383 self.assertTrue(m.PLMObjectUserLink.objects.filter(plmobject=self.controller.object, … … 384 386 def test_management_replace_get(self): 385 387 role = level_to_sign_str(0) 388 self.brian.groups.add(self.group) 386 389 self.controller.set_signer(self.brian, role) 387 390 link = m.PLMObjectUserLink.objects.get(plmobject=self.controller.object, … … 395 398 def test_management_replace_post(self): 396 399 role = level_to_sign_str(0) 400 self.brian.groups.add(self.group) 397 401 self.controller.set_signer(self.brian, role) 398 402 link = m.PLMObjectUserLink.objects.get(plmobject=self.controller.object, … … 407 411 408 412 def test_management_delete(self): 413 self.brian.groups.add(self.group) 409 414 self.controller.add_notified(self.brian) 410 415 link = m.PLMObjectUserLink.objects.get(plmobject=self.controller.object, -
branches/1.0/openPLM/plmapp/views/main.py
r1104 r1108 1016 1016 ctx["remove_notify_link"] = link[0] 1017 1017 else: 1018 initial = { "type" : "User", 1019 "username" : request.user.username 1020 } 1021 form = forms.SelectUserForm(initial=initial) 1022 for field in ("type", "username"): 1023 form.fields[field].widget = HiddenInput() 1024 ctx["notify_self_form"] = form 1018 if obj.check_in_group(request.user, False): 1019 initial = { "type" : "User", 1020 "username" : request.user.username 1021 } 1022 form = forms.SelectUserForm(initial=initial) 1023 for field in ("type", "username"): 1024 form.fields[field].widget = HiddenInput() 1025 ctx["notify_self_form"] = form 1026 ctx["can_notify"] = True 1027 else: 1028 ctx["can_notify"] = False 1025 1029 ctx.update({'current_page':'management', 1026 1030 'object_management': object_management_list}) 1027 1031 1028 1032 return r2r('management.html', ctx, request) -
branches/1.0/openPLM/templates/management.html
r1093 r1108 20 20 </form> 21 21 {% else %} 22 <form method="POST" action="./add/"> 23 {{ notify_self_form.as_p }} 24 <input name="action" type="submit" class="{{"Button"|button}}" value="{% trans "Notify me" %}" /> 25 </form> 22 {% if can_notify %} 23 <form method="POST" action="./add/"> 24 {{ notify_self_form.as_p }} 25 <input name="action" type="submit" class="{{"Button"|button}}" value="{% trans "Notify me" %}" /> 26 </form> 27 {% endif %} 26 28 {% endif %} 27 29 {% endif %}
Note: See TracChangeset
for help on using the changeset viewer.