OLD | NEW |
1 # Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 # Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
2 # for details. All rights reserved. Use of this source code is governed by a | 2 # for details. All rights reserved. Use of this source code is governed by a |
3 # BSD-style license that can be found in the LICENSE file. | 3 # BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 from google.appengine.api import oauth | 5 from google.appengine.api import oauth |
6 from google.appengine.api import users | 6 from google.appengine.api import users |
7 | 7 |
8 import handlers | 8 import handlers |
9 import models | 9 import models |
10 | 10 |
(...skipping 13 matching lines...) Expand all Loading... |
24 Only other uploaders may add new uploaders.""" | 24 Only other uploaders may add new uploaders.""" |
25 | 25 |
26 package = handlers.request().package | 26 package = handlers.request().package |
27 user_to_add = users.User(email) | 27 user_to_add = users.User(email) |
28 if package.has_uploader(user_to_add): | 28 if package.has_uploader(user_to_add): |
29 handlers.http_error( | 29 handlers.http_error( |
30 400, "User '%s' is already an uploader for package '%s'." % | 30 400, "User '%s' is already an uploader for package '%s'." % |
31 (email, package.name)) | 31 (email, package.name)) |
32 | 32 |
33 package.uploaders.append(user_to_add) | 33 package.uploaders.append(user_to_add) |
| 34 package.temp_synchronize_uploaders_to_uploaderemails() |
34 package.put() | 35 package.put() |
35 package.invalidate_cache() | 36 package.invalidate_cache() |
36 return handlers.json_success( | 37 return handlers.json_success( |
37 "'%s' added as an uploader for package '%s'." % | 38 "'%s' added as an uploader for package '%s'." % |
38 (email, package.name)) | 39 (email, package.name)) |
39 | 40 |
40 @handlers.json_action | 41 @handlers.json_action |
41 @handlers.requires_uploader | 42 @handlers.requires_uploader |
42 @models.transactional | 43 @models.transactional |
43 def delete(self, package_id, id, format): | 44 def delete(self, package_id, id, format): |
(...skipping 11 matching lines...) Expand all Loading... |
55 (user_to_delete.nickname(), package.name)) | 56 (user_to_delete.nickname(), package.name)) |
56 | 57 |
57 if len(package.uploaders) == 1: | 58 if len(package.uploaders) == 1: |
58 handlers.http_error( | 59 handlers.http_error( |
59 400, ("Package '%s' only has one uploader, so that uploader " + | 60 400, ("Package '%s' only has one uploader, so that uploader " + |
60 "can't be removed.") % package.name) | 61 "can't be removed.") % package.name) |
61 | 62 |
62 email_to_delete = user_to_delete.email().lower() | 63 email_to_delete = user_to_delete.email().lower() |
63 package.uploaders = [uploader for uploader in package.uploaders | 64 package.uploaders = [uploader for uploader in package.uploaders |
64 if uploader.email().lower() != email_to_delete] | 65 if uploader.email().lower() != email_to_delete] |
| 66 package.temp_synchronize_uploaders_to_uploaderemails() |
65 package.put() | 67 package.put() |
66 package.invalidate_cache() | 68 package.invalidate_cache() |
67 return handlers.json_success( | 69 return handlers.json_success( |
68 "'%s' is no longer an uploader for package '%s'." % | 70 "'%s' is no longer an uploader for package '%s'." % |
69 (id, package.name)) | 71 (id, package.name)) |
OLD | NEW |