1 from django.conf import settings |
1 from django.conf import settings |
2 from django.contrib.auth import get_user_model |
2 from django.contrib.auth import get_user_model |
3 from django.contrib.auth.models import Group |
3 from django.contrib.auth.models import Group |
4 from guardian.shortcuts import assign, remove_perm |
4 from guardian.shortcuts import assign_perm, remove_perm |
5 from ldt.ldt_utils.models import Project, Content |
5 from ldt.ldt_utils.models import Project, Content |
6 from ldt.management.utils import show_progress |
6 from ldt.management.utils import show_progress |
7 |
7 |
8 User = get_user_model() |
8 User = get_user_model() |
9 |
9 |
30 total = list_model['Project'].objects.count() |
30 total = list_model['Project'].objects.count() |
31 |
31 |
32 for i, proj in enumerate(list_model['Project'].objects.all()): |
32 for i, proj in enumerate(list_model['Project'].objects.all()): |
33 |
33 |
34 if proj.state == 2: |
34 if proj.state == 2: |
35 assign('ldt_utils.view_project', everyone, proj) |
35 assign_perm('ldt_utils.view_project', everyone, proj) |
36 else: |
36 else: |
37 remove_perm('ldt_utils.view_project', everyone, proj) |
37 remove_perm('ldt_utils.view_project', everyone, proj) |
38 |
38 |
39 assign('ldt_utils.view_project', proj.owner, proj) |
39 assign_perm('ldt_utils.view_project', proj.owner, proj) |
40 assign('ldt_utils.change_project', proj.owner, proj) |
40 assign_perm('ldt_utils.change_project', proj.owner, proj) |
41 |
41 |
42 if verbose: |
42 if verbose: |
43 writer = show_progress(i, total, "Assign permissions to projects", 40, writer) |
43 writer = show_progress(i, total, "Assign permissions to projects", 40, writer) |
44 |
44 |
45 for published_proj in list_model['Project'].objects.filter(state=2): |
45 for published_proj in list_model['Project'].objects.filter(state=2): |
46 assign('ldt_utils.view_project', everyone, published_proj) |
46 assign_perm('ldt_utils.view_project', everyone, published_proj) |
47 |
47 |
48 if verbose: |
48 if verbose: |
49 writer = None |
49 writer = None |
50 total = list_model['User'].objects.count() |
50 total = list_model['User'].objects.count() |
51 |
51 |
54 if verbose: |
54 if verbose: |
55 writer = show_progress(i, total, "Assign permissions to groups", 40, writer) |
55 writer = show_progress(i, total, "Assign permissions to groups", 40, writer) |
56 |
56 |
57 for group in user.groups.exclude(name=settings.PUBLIC_GROUP_NAME): |
57 for group in user.groups.exclude(name=settings.PUBLIC_GROUP_NAME): |
58 for proj in list_model['Project'].objects.filter(owner=user): |
58 for proj in list_model['Project'].objects.filter(owner=user): |
59 assign('ldt_utils.view_project', group, proj) |
59 assign_perm('ldt_utils.view_project', group, proj) |
60 |
60 |
61 for content in list_model['Content'].objects.all(): |
61 for content in list_model['Content'].objects.all(): |
62 if user.has_perm('view_content', content): |
62 if user.has_perm('view_content', content): |
63 assign('ldt_utils.view_media', user, content.media_obj) |
63 assign_perm('ldt_utils.view_media', user, content.media_obj) |
64 |
64 |
65 |
65 |
66 for admin in list_model['User'].objects.filter(is_superuser=True): |
66 for admin in list_model['User'].objects.filter(is_superuser=True): |
67 for g in list_model['Group'].objects.all(): |
67 for g in list_model['Group'].objects.all(): |
68 admin.groups.add(g) |
68 admin.groups.add(g) |