| 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.
|
|
|
|
|