Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(184)

Side by Side Diff: appengine/monorail/sitewide/grouplist.py

Issue 1868553004: Open Source Monorail (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: Rebase Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « appengine/monorail/sitewide/groupdetail.py ('k') | appengine/monorail/sitewide/hostinghome.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 # Copyright 2016 The Chromium Authors. All rights reserved.
2 # Use of this source code is govered by a BSD-style
3 # license that can be found in the LICENSE file or at
4 # https://developers.google.com/open-source/licenses/bsd
5
6 """Classes to list user groups."""
7
8 import logging
9 import time
10
11 from third_party import ezt
12
13 from framework import framework_helpers
14 from framework import permissions
15 from framework import servlet
16 from framework import urls
17 from framework import xsrf
18 from sitewide import sitewide_views
19
20
21 class GroupList(servlet.Servlet):
22 """Shows a page with a simple form to create a user group."""
23
24 _PAGE_TEMPLATE = 'sitewide/group-list-page.ezt'
25
26 def GatherPageData(self, mr):
27 """Build up a dictionary of data values to use when rendering the page."""
28 group_views = [
29 sitewide_views.GroupView(*groupinfo) for groupinfo in
30 self.services.usergroup.GetAllUserGroupsInfo(mr.cnxn)]
31 group_views.sort(key=lambda gv: gv.name)
32 offer_group_deletion = mr.perms.CanUsePerm(
33 permissions.DELETE_GROUP, mr.auth.effective_ids, None, [])
34 offer_group_creation = mr.perms.CanUsePerm(
35 permissions.CREATE_GROUP, mr.auth.effective_ids, None, [])
36
37 return {
38 'form_token': xsrf.GenerateToken(
39 mr.auth.user_id, '%s.do' % urls.GROUP_DELETE),
40 'groups': group_views,
41 'offer_group_deletion': ezt.boolean(offer_group_deletion),
42 'offer_group_creation': ezt.boolean(offer_group_creation),
43 }
44
45 def ProcessFormData(self, mr, post_data):
46 """Process the posted form."""
47 if 'removebtn' in post_data:
48 return self.ProcessDeleteGroups(mr, post_data)
49
50 def ProcessDeleteGroups(self, mr, post_data):
51 """Process request to delete groups."""
52 if not mr.perms.CanUsePerm(
53 permissions.DELETE_GROUP, mr.auth.effective_ids, None, []):
54 raise permissions.PermissionException(
55 'User is not permitted to delete groups')
56
57 remove_groups = [int(g) for g in post_data.getall('remove')]
58
59 if not mr.errors.AnyErrors():
60 self.services.usergroup.DeleteGroups(mr.cnxn, remove_groups)
61
62 if mr.errors.AnyErrors():
63 self.PleaseCorrect(mr)
64 else:
65 return framework_helpers.FormatAbsoluteURL(
66 mr, '/g', include_project=False,
67 saved=1, ts=int(time.time()))
OLDNEW
« no previous file with comments | « appengine/monorail/sitewide/groupdetail.py ('k') | appengine/monorail/sitewide/hostinghome.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698