equal
deleted
inserted
replaced
44 cls.old_delete = cls.delete |
44 cls.old_delete = cls.delete |
45 class_name = cls.__name__.lower() |
45 class_name = cls.__name__.lower() |
46 cls.save = change_security(user, class_name)(cls.save) |
46 cls.save = change_security(user, class_name)(cls.save) |
47 cls.delete = change_security(user, class_name)(cls.delete) |
47 cls.delete = change_security(user, class_name)(cls.delete) |
48 |
48 |
49 def unprotect_model(cls): |
49 def unprotect_model(cls): |
50 if hasattr(cls, 'old_save'): |
50 if hasattr(cls, 'old_save'): |
51 cls.save = cls.old_save |
51 cls.save = cls.old_save |
52 cls.delete = cls.old_delete |
52 cls.delete = cls.old_delete |
53 del cls.old_save |
53 del cls.old_save |
54 del cls.old_delete |
54 del cls.old_delete |
|
55 cls.safe_objects.user = None |
55 |
56 |
56 def change_security(user, cls_name): |
57 def change_security(user, cls_name): |
57 def wrapper(func): |
58 def wrapper(func): |
58 def wrapped(self, *args, **kwargs): |
59 def wrapped(self, *args, **kwargs): |
59 |
60 |
62 |
63 |
63 return func(self, *args, **kwargs) |
64 return func(self, *args, **kwargs) |
64 return wrapped |
65 return wrapped |
65 return wrapper |
66 return wrapper |
66 |
67 |
|
68 def set_forbidden_stream(xml, user): |
|
69 cls = ContentType.objects.get(model='content') |
|
70 cls = cls.model_class() |
|
71 |
|
72 old_user = cls.safe_objects.user |
|
73 obj_list = cls.safe_objects.all() |
|
74 |
|
75 for elem in xml.xpath('/iri/medias/media'): |
|
76 if not obj_list.filter(iri_id=elem.get('id')): |
|
77 elem.set('video', settings.FORBIDDEN_STREAM_URL) |
|
78 |
|
79 cls.safe_objects.user = old_user |
|
80 |
|
81 return xml |
|
82 |
67 def assign_project_to_groups(project, permissions): |
83 def assign_project_to_groups(project, permissions): |
68 for elem in permissions: |
84 for elem in permissions: |
69 group = Group.objects.get(id=elem['group']) |
85 group = Group.objects.get(id=elem['group']) |
70 if elem['share']: |
86 if elem['share']: |
71 assign('view_project', group, project) |
87 assign('view_project', group, project) |