~ubuntu-branches/ubuntu/utopic/horizon/utopic-updates

« back to all changes in this revision

Viewing changes to openstack_dashboard/dashboards/project/access_and_security/security_groups/tables.py

  • Committer: Package Import Robot
  • Author(s): James Page, Chris Johnston, James Page
  • Date: 2014-10-03 17:54:18 UTC
  • mfrom: (0.4.1) (1.1.44) (70.1.2 utopic)
  • Revision ID: package-import@ubuntu.com-20141003175418-1jomx0azdvnl5fxz
Tags: 1:2014.2~rc1-0ubuntu1
[ Chris Johnston ]
* d/theme/css/ubuntu.css: Fix Ubuntu theme for Instances "more" dropdown
  (LP: #1308651).

[ James Page ]
* New upstream release candidate:
  - d/p/*: Refresh.
* d/watch: Use tarballs.openstack.org for upstream releases. 

Show diffs side-by-side

added added

removed removed

Lines of Context:
15
15
from django.conf import settings
16
16
from django.core.urlresolvers import reverse
17
17
from django.utils.translation import ugettext_lazy as _
 
18
from django.utils.translation import ungettext_lazy
18
19
 
19
20
from horizon import tables
20
21
 
21
22
from openstack_dashboard import api
 
23
from openstack_dashboard import policy
22
24
from openstack_dashboard.utils import filters
23
25
 
24
26
 
26
28
                       lambda policy, request, target: True)
27
29
 
28
30
 
29
 
class DeleteGroup(tables.DeleteAction):
30
 
    data_type_singular = _("Security Group")
31
 
    data_type_plural = _("Security Groups")
32
 
 
33
 
    def get_policy_target(self, request, datum=None):
34
 
        project_id = None
35
 
        if datum:
36
 
            project_id = getattr(datum, 'tenant_id', None)
37
 
        return {"project_id": project_id}
 
31
class DeleteGroup(policy.PolicyTargetMixin, tables.DeleteAction):
 
32
 
 
33
    @staticmethod
 
34
    def action_present(count):
 
35
        return ungettext_lazy(
 
36
            u"Delete Security Group",
 
37
            u"Delete Security Groups",
 
38
            count
 
39
        )
 
40
 
 
41
    @staticmethod
 
42
    def action_past(count):
 
43
        return ungettext_lazy(
 
44
            u"Deleted Security Group",
 
45
            u"Deleted Security Groups",
 
46
            count
 
47
        )
38
48
 
39
49
    def allowed(self, request, security_group=None):
40
50
        policy_target = self.get_policy_target(request, security_group)
70
80
        return POLICY_CHECK(policy, request, target={})
71
81
 
72
82
 
73
 
class EditGroup(tables.LinkAction):
 
83
class EditGroup(policy.PolicyTargetMixin, tables.LinkAction):
74
84
    name = "edit"
75
85
    verbose_name = _("Edit Security Group")
76
86
    url = "horizon:project:access_and_security:security_groups:update"
77
87
    classes = ("ajax-modal",)
78
88
    icon = "pencil"
79
89
 
80
 
    def get_policy_target(self, request, datum=None):
81
 
        project_id = None
82
 
        if datum:
83
 
            project_id = getattr(datum, 'tenant_id', None)
84
 
        return {"project_id": project_id}
85
 
 
86
90
    def allowed(self, request, security_group=None):
87
91
        policy_target = self.get_policy_target(request, security_group)
88
92
        if api.base.is_service_enabled(request, "network"):
98
102
        return security_group.name != 'default'
99
103
 
100
104
 
101
 
class ManageRules(tables.LinkAction):
 
105
class ManageRules(policy.PolicyTargetMixin, tables.LinkAction):
102
106
    name = "manage_rules"
103
107
    verbose_name = _("Manage Rules")
104
108
    url = "horizon:project:access_and_security:security_groups:detail"
105
109
    icon = "pencil"
106
110
 
107
 
    def get_policy_target(self, request, datum=None):
108
 
        project_id = None
109
 
        if datum:
110
 
            project_id = getattr(datum, 'tenant_id', None)
111
 
        return {"project_id": project_id}
112
 
 
113
111
    def allowed(self, request, security_group=None):
114
112
        policy_target = self.get_policy_target(request, security_group)
115
113
        if api.base.is_service_enabled(request, "network"):
154
152
 
155
153
 
156
154
class DeleteRule(tables.DeleteAction):
157
 
    data_type_singular = _("Rule")
158
 
    data_type_plural = _("Rules")
 
155
    @staticmethod
 
156
    def action_present(count):
 
157
        return ungettext_lazy(
 
158
            u"Delete Rule",
 
159
            u"Delete Rules",
 
160
            count
 
161
        )
 
162
 
 
163
    @staticmethod
 
164
    def action_past(count):
 
165
        return ungettext_lazy(
 
166
            u"Deleted Rule",
 
167
            u"Deleted Rules",
 
168
            count
 
169
        )
159
170
 
160
171
    def allowed(self, request, security_group_rule=None):
161
172
        if api.base.is_service_enabled(request, "network"):