Switch to unified view

a/Allura/allura/controllers/auth.py b/Allura/allura/controllers/auth.py
...
...
292
               oid=None,
292
               oid=None,
293
               new_oid=None,
293
               new_oid=None,
294
               preferences=None,
294
               preferences=None,
295
               **kw):
295
               **kw):
296
        require_authenticated()
296
        require_authenticated()
297
        c.user.set_pref('display_name', display_name)
298
        if config.get('auth.method', 'local') == 'local':
297
        if config.get('auth.method', 'local') == 'local':
298
            c.user.set_pref('display_name', display_name)
299
            for i, (old_a, data) in enumerate(zip(c.user.email_addresses, addr or [])):
299
            for i, (old_a, data) in enumerate(zip(c.user.email_addresses, addr or [])):
300
                obj = c.user.address_object(old_a)
300
                obj = c.user.address_object(old_a)
301
                if data.get('delete') or not obj:
301
                if data.get('delete') or not obj:
302
                    del c.user.email_addresses[i]
302
                    del c.user.email_addresses[i]
303
                    if obj: obj.delete()
303
                    if obj: obj.delete()
...
...
313
            for i, (old_oid, data) in enumerate(zip(c.user.open_ids, oid or [])):
313
            for i, (old_oid, data) in enumerate(zip(c.user.open_ids, oid or [])):
314
                obj = c.user.openid_object(old_oid)
314
                obj = c.user.openid_object(old_oid)
315
                if data.get('delete') or not obj:
315
                if data.get('delete') or not obj:
316
                    del c.user.open_ids[i]
316
                    del c.user.open_ids[i]
317
                    if obj: obj.delete()
317
                    if obj: obj.delete()
318
        for k,v in preferences.iteritems():
318
            for k,v in preferences.iteritems():
319
            if k == 'results_per_page':
319
                if k == 'results_per_page':
320
                v = int(v)
320
                    v = int(v)
321
            c.user.set_pref(k, v)
321
                c.user.set_pref(k, v)
322
        redirect('.')
322
        redirect('.')
323
        
323
        
324
    @h.vardec
324
    @h.vardec
325
    @expose()
325
    @expose()
326
    @require_post()
326
    @require_post()
...
...
338
        if tok is None:
338
        if tok is None:
339
            tok = M.ApiToken(user_id=c.user._id)
339
            tok = M.ApiToken(user_id=c.user._id)
340
        else:
340
        else:
341
            tok.secret_key = h.cryptographic_nonce()
341
            tok.secret_key = h.cryptographic_nonce()
342
        redirect(request.referer)
342
        redirect(request.referer)
343
343
    
344
    @expose()
344
    @expose()
345
    @require_post()
345
    @require_post()
346
    def del_api_token(self):
346
    def del_api_token(self):
347
        tok = M.ApiToken.query.get(user_id=c.user._id)
347
        tok = M.ApiToken.query.get(user_id=c.user._id)
348
        if tok is None: return
348
        if tok is None: return
349
        tok.delete()
349
        tok.delete()
350
        redirect(request.referer)
350
        redirect(request.referer)
351
351
    
352
    @expose()
352
    @expose()
353
    @require_post()
353
    @require_post()
354
    def revoke_oauth(self, _id=None):
354
    def revoke_oauth(self, _id=None):
355
        tok = M.OAuthAccessToken.query.get(_id=bson.ObjectId(_id))
355
        tok = M.OAuthAccessToken.query.get(_id=bson.ObjectId(_id))
356
        if tok is None:
356
        if tok is None: