Skip to content
  • P
    Projects
  • G
    Groups
  • S
    Snippets
  • Help

CIRCLE / cloud

  • This project
    • Loading...
  • Sign in
Go to a project
  • Project
  • Repository
  • Issues 94
  • Merge Requests 10
  • Pipelines
  • Wiki
  • Snippets
  • Members
  • Activity
  • Graph
  • Charts
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Closed
Open
Issue #127 opened Mar 24, 2014 by Őry Máté@orymate 
  • Report abuse
  • New issue
Report abuse New issue

Fix group permissions

fixed (3cf09597)

diff --git a/circle/dashboard/templates/dashboard/index.html b/circle/dashboard/templates/dashboard/index.html
index 095a8a4..9d3b191 100644
--- a/circle/dashboard/templates/dashboard/index.html
+++ b/circle/dashboard/templates/dashboard/index.html
@@ -17,7 +17,7 @@
       </div>
     {% endif %}

-    {% if perms.group %}
+    {% if perms.auth %}
     <div class="col-lg-4 col-sm-6">
       {% include "dashboard/index-groups.html" %}
     </div>
diff --git a/circle/dashboard/views.py b/circle/dashboard/views.py
index 7a8446d..f6b10a4 100644
--- a/circle/dashboard/views.py
+++ b/circle/dashboard/views.py
@@ -50,7 +51,7 @@ from vm.models import (
 )
 from storage.models import Disk
 from firewall.models import Vlan, Host, Rule
-from dashboard.models import Favourite, Profile
+from dashboard.models import Favourite, Profile, GroupProfile

 logger = logging.getLogger(__name__)

@@ -127,11 +128,14 @@ class IndexView(LoginRequiredMixin, TemplateView):
             })

         # groups
-        groups = Group.objects.all()
-        context.update({
-            'groups': groups[:5],
-            'more_groups': groups.count() - len(groups[:5]),
-        })
+        if user.has_module_perms('auth'):
+            pks = [i[0] for i in GroupProfile.get_objects_with_level(
+                'operator', user).values_list('pk')]
+            groups = Group.objects.filter(groupprofile__in=pks)
+            context.update({
+                'groups': groups[:5],
+                'more_groups': groups.count() - len(groups[:5]),
+            })

         # template
         if user.has_perm('vm.create_template'):
@@ -583,6 +587,7 @@ class NodeDetailView(LoginRequiredMixin, SuperuserRequiredMixin, DetailView):
 class GroupDetailView(CheckedDetailView):
     template_name = "dashboard/group-detail.html"
     model = Group
+    read_level = 'operator'

     def get_has_level(self):
         return self.object.profile.has_level
@@ -1349,7 +1366,7 @@ class NodeCreate(LoginRequiredMixin, SuperuserRequiredMixin, TemplateView):
             return redirect(path)


-class GroupCreate(LoginRequiredMixin, SuperuserRequiredMixin, TemplateView):
+class GroupCreate(LoginRequiredMixin, TemplateView):

     form_class = GroupCreateForm
     form = None
@@ -1361,6 +1378,8 @@ class GroupCreate(LoginRequiredMixin, SuperuserRequiredMixin, TemplateView):
             return ['dashboard/nojs-wrapper.html']

     def get(self, request, form=None, *args, **kwargs):
+        if not request.user.has_module_perms('auth'):
+            raise PermissionDenied()
         if form is None:
             form = self.form_class()
         context = self.get_context_data(**kwargs)
@@ -1381,11 +1400,14 @@ class GroupCreate(LoginRequiredMixin, SuperuserRequiredMixin, TemplateView):
         return context

     def post(self, request, *args, **kwargs):
+        if not request.user.has_module_perms('auth'):
+            raise PermissionDenied()
         form = self.form_class(request.POST)
         if not form.is_valid():
             return self.get(request, form, *args, **kwargs)
         form.cleaned_data
         savedform = form.save()
+        savedform.profile.set_level(request.user, 'owner')
         messages.success(request, _('Group successfully created!'))
         if request.is_ajax():
             return HttpResponse(json.dumps({'redirect':
  • Bach Dániel @bachdaniel

    Status changed to closed

    May 20, 2014

    Status changed to closed

    Status changed to closed
    Toggle commit list
  • Write
  • Preview
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment
Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
None
Due date
No due date
0
Labels
None
Assign labels
  • View labels
3
3 participants
Reference: circle/cloud#127