Changelog: updated for 0.7
[ganeti_webmgr.git] / ganeti_web / context_processors.py
blob18838aa31f27d37bb6cc4f595b0bae758090fbdc
1 # Copyright (C) 2010 Oregon State University et al.
3 # This program is free software; you can redistribute it and/or
4 # modify it under the terms of the GNU General Public License
5 # as published by the Free Software Foundation; either version 2
6 # of the License, or (at your option) any later version.
8 # This program is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 # GNU General Public License for more details.
13 # You should have received a copy of the GNU General Public License
14 # along with this program; if not, write to the Free Software
15 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
16 # USA.
18 from django.conf import settings
19 from ganeti_web.models import Cluster
22 def site(request):
23 """
24 adds site properties to the context
25 """
26 return {'SITE_DOMAIN':settings.SITE_DOMAIN, 'SITE_NAME':settings.SITE_NAME}
29 ANONYMOUS_PERMISSIONS = dict(cluster_admin=False,
30 create_vm=False,
31 view_cluster=False)
33 CLUSTER_ADMIN_PERMISSIONS = dict(cluster_admin=True,
34 create_vm=True,
35 view_cluster=True)
37 def common_permissions(request):
38 """
39 adds common cluster perms to the context:
41 * cluster_admin
42 * view_cluster
43 * create vm
44 """
45 user = request.user
46 if user.is_authenticated():
47 if user.is_superuser:
48 return CLUSTER_ADMIN_PERMISSIONS
50 perms = user.get_perms_any(Cluster)
52 if 'admin' in perms:
53 return CLUSTER_ADMIN_PERMISSIONS
55 else:
56 create_vm = 'create_vm' in perms
57 view_cluster = any((p in perms for p in ['migrate','export','replace_disks','tags']))
59 return {
60 'cluster_admin':False,
61 'create_vm':create_vm,
62 'view_cluster':view_cluster
65 return ANONYMOUS_PERMISSIONS