From 3a800ea8f0e9e158c2b0cfb325336df4789135fa Mon Sep 17 00:00:00 2001 From: Logan Hanks Date: Mon, 30 Jul 2012 15:54:22 -0700 Subject: [PATCH] Give names to the various adddeveloper errors. --- r2/r2/controllers/api.py | 10 +++++----- r2/r2/controllers/errors.py | 2 ++ r2/r2/controllers/validator/validator.py | 10 ++-------- r2/r2/templates/prefapps.html | 5 +++++ 4 files changed, 14 insertions(+), 13 deletions(-) diff --git a/r2/r2/controllers/api.py b/r2/r2/controllers/api.py index efd6fd5306..fa2a953ab9 100755 --- a/r2/r2/controllers/api.py +++ b/r2/r2/controllers/api.py @@ -2885,22 +2885,22 @@ def POST_updateapp(self, form, jquery, name, about_url, icon_url, redirect_uri): @validatedForm(VUser(), VModhash(), client=VOAuth2ClientDeveloper(), - account=VExistingUnameNotSelf('name')) + account=VExistingUname('name')) @api_doc(api_section.apps) def POST_adddeveloper(self, form, jquery, client, account): if not client: - form.set_html('.status', _('error')) return if form.has_errors('name', errors.USER_DOESNT_EXIST, errors.NO_USER): - form.set_html('.status', _('invalid user')) return if client.has_developer(account): - form.set_html('.status', _('already added')) + c.errors.add(errors.DEVELOPER_ALREADY_ADDED, field='name') + form.set_error(errors.DEVELOPER_ALREADY_ADDED, 'name') return try: client.add_developer(account) except OverflowError: - form.set_html('.status', _('too many developers')) + c.errors.add(errors.TOO_MANY_DEVELOPERS, field='') + form.set_error(errors.TOO_MANY_DEVELOPERS, '') return form.set_html('.status', _('developer added')) diff --git a/r2/r2/controllers/errors.py b/r2/r2/controllers/errors.py index f55d0fc220..3764911b63 100644 --- a/r2/r2/controllers/errors.py +++ b/r2/r2/controllers/errors.py @@ -101,6 +101,8 @@ ('NO_OTP_SECRET', _('you must enable two-factor authentication')), ('NOT_SUPPORTED', _('this feature is not supported')), ('BAD_IMAGE', _('image problem')), + ('DEVELOPER_ALREADY_ADDED', _('already added')), + ('TOO_MANY_DEVELOPERS', _('too many developers')), )) errors = Storage([(e, e) for e in error_list.keys()]) diff --git a/r2/r2/controllers/validator/validator.py b/r2/r2/controllers/validator/validator.py index 3c41cca1b2..91ce5dbdf0 100644 --- a/r2/r2/controllers/validator/validator.py +++ b/r2/r2/controllers/validator/validator.py @@ -1097,20 +1097,14 @@ def run(self, name): return Account._by_name(name) except NotFound: self.error(errors.USER_DOESNT_EXIST) - self.error() + else: + self.error() def param_docs(self): return { self.param: _('the name of an existing user') } -class VExistingUnameNotSelf(VExistingUname): - def run(self, name): - user = super(VExistingUnameNotSelf, self).run(name) - if not user or user == c.user: - self.error() - return user - class VMessageRecipient(VExistingUname): def run(self, name): if not name: diff --git a/r2/r2/templates/prefapps.html b/r2/r2/templates/prefapps.html index 73d77ea988..7daa7a2ba4 100644 --- a/r2/r2/templates/prefapps.html +++ b/r2/r2/templates/prefapps.html @@ -139,6 +139,11 @@

${app._id}

${_('add developer')}:
+ ${error_field('TOO_MANY_DEVELOPERS', '')} + ${error_field('OAUTH2_INVALID_CLIENT', 'client_id')} + ${error_field('DEVELOPER_ALREADY_ADDED', 'name')} + ${error_field('USER_DOESNT_EXIST', 'name')} + ${error_field('NO_USER', 'name')}