Give names to the various adddeveloper errors.

This commit is contained in:
Logan Hanks
2012-07-30 15:54:22 -07:00
parent f87053efc0
commit 3a800ea8f0
4 changed files with 14 additions and 13 deletions

View File

@@ -2885,22 +2885,22 @@ class ApiController(RedditController, OAuth2ResourceController):
@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'))

View File

@@ -101,6 +101,8 @@ error_list = dict((
('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()])

View File

@@ -1097,20 +1097,14 @@ class VExistingUname(VRequired):
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:

View File

@@ -139,6 +139,11 @@
<input type="hidden" name="client_id" value="${app._id}" />
${_('add developer')}: <input name="name">
<br>
${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')}
<span class="status"></span>
</form>
</td>