Index: app/models/package.py |
diff --git a/app/models/package.py b/app/models/package.py |
index 3e07516a82d342bb176b21b6ecf59e17323c9594..2bc95da4a216f62042becc70d0cd3bf6a532188c 100644 |
--- a/app/models/package.py |
+++ b/app/models/package.py |
@@ -33,6 +33,11 @@ class Package(db.Model): |
When this is set, invalidate_cache() must be called.""" |
+ uploaderEmails = db.StringListProperty() |
+ """The user emails who are allowed to upload new versions of the package. |
+ |
+ When this is set, invalidate_cache() must be called.""" |
+ |
name = db.StringProperty(required=True) |
"""The name of the package.""" |
@@ -49,6 +54,15 @@ class Package(db.Model): |
When this is set, invalidate_cache() must be called.""" |
+ def temp_synchronize_uploaders_to_uploaderemails(self): |
+ """ Will synchronize self.uploaders -> self.uploaderEmails. """ |
+ if self.uploaders is None: |
+ self.uploaderEmails = None |
+ elif len(self.uploaders) == 0: |
+ self.uploaderEmails = self.uploaders |
+ else: |
+ self.uploaderEmails = [uploader.email() for uploader in self.uploaders] |
+ |
@property |
def description(self): |
"""The short description of the package.""" |
@@ -114,6 +128,8 @@ class Package(db.Model): |
return 'Uploader' if len(self.latest_version.pubspec.authors) == 1 \ |
else 'Uploaders' |
+ # TODO(kustermann): When we have string emails, this needs to be changed |
+ # to read uploaderEmails instead of uploaders. |
@property |
def uploaders_html(self): |
"""Inline HTML for the uploaders of this package.""" |
@@ -159,6 +175,8 @@ class Package(db.Model): |
self.name, str(version)) |
return version is not None |
+ # TODO(kustermann): When we have string emails, this needs to be changed |
+ # to read uploaderEmails instead of uploaders. |
def has_uploader(self, uploader): |
"""Determine whether the given user is an uploader for this package. |
@@ -176,6 +194,8 @@ class Package(db.Model): |
return models.url( |
controller='api.packages', action='show', id=self.name) |
+ # TODO(kustermann): When we have string emails, this needs to be changed |
+ # to read uploaderEmails instead of uploaders. |
def as_dict(self, full=False): |
"""Returns the dictionary representation of this package. |