1919
2020import amo
2121from amo import messages
22- from amo .decorators import login_required , json_view , write
22+ from amo .decorators import (json_view , login_required , permission_required ,
23+ write )
2324from amo .forms import AbuseForm
2425from amo .urlresolvers import reverse
2526from amo .utils import send_mail , send_abuse_report
@@ -183,6 +184,25 @@ def edit_impala(request):
183184 {'form' : form , 'amouser' : amouser })
184185
185186
187+ @write
188+ @login_required
189+ @permission_required ('Admin' , 'EditAnyUser' )
190+ def admin_edit_impala (request , user_id ):
191+ amouser = get_object_or_404 (UserProfile , pk = user_id )
192+
193+ if request .method == 'POST' :
194+ form = forms .AdminUserEditForm (request .POST , request .FILES ,
195+ request = request , instance = amouser )
196+ if form .is_valid ():
197+ form .save ()
198+ messages .success (request , _ ('Profile Updated' ))
199+ return http .HttpResponseRedirect (reverse ('zadmin.index' ))
200+ else :
201+ form = forms .AdminUserEditForm (instance = amouser )
202+ return jingo .render (request , 'users/edit_impala.html' ,
203+ {'form' : form , 'amouser' : amouser })
204+
205+
186206@write
187207@login_required
188208def edit (request ):
@@ -413,7 +433,6 @@ def profile(request, user_id):
413433 else :
414434 fav_coll = []
415435
416- edit_any_user = acl .action_allowed (request , 'Admin' , 'EditAnyUser' )
417436 own_profile = request .user .is_authenticated () and (
418437 request .amo_user .id == user .id )
419438
@@ -434,8 +453,7 @@ def get_addons(reviews):
434453 reviews = user .reviews .transform (get_addons )
435454
436455 data = {'profile' : user , 'own_coll' : own_coll , 'reviews' : reviews ,
437- 'fav_coll' : fav_coll , 'edit_any_user' : edit_any_user ,
438- 'addons' : addons , 'own_profile' : own_profile ,
456+ 'fav_coll' : fav_coll , 'addons' : addons , 'own_profile' : own_profile ,
439457 'abuse_form' : AbuseForm (request = request )}
440458
441459 return jingo .render (request , 'users/profile.html' , data )
0 commit comments