@@ -1024,21 +1024,32 @@ def order_authors(request, article_id):
10241024 return HttpResponse ("Thanks" )
10251025
10261026
1027- @login_required
1027+ @require_POST
10281028@user_can_edit_article
10291029def link_author_to_account (request , article_id , author_id ):
10301030 next_url = request .GET .get ("next" , "" )
1031+
10311032 article = get_object_or_404 (models .Article , pk = article_id , journal = request .journal )
10321033 author = get_object_or_404 (models .FrozenAuthor , pk = author_id , article = article )
1033- account = get_object_or_404 (core_models .Account , email__iexact = author .email )
1034- author .author = account
1035- author .save ()
1036- messages .add_message (
1037- request ,
1038- messages .SUCCESS ,
1039- "%(author_name)s (%(email)s) is now linked to a user account."
1040- % {"author_name" : author .full_name (), "email" : author .email },
1034+ account = get_object_or_404 (
1035+ core_models .Account ,
1036+ email__iexact = author .email ,
1037+ accountrole__role__slug = "author" ,
10411038 )
1039+
1040+ author_account_form = forms .FrozenAuthorAccountForm (
1041+ {"author" : account .pk },
1042+ instance = author ,
1043+ )
1044+ if author_account_form .is_valid ():
1045+ author_account_form .save ()
1046+ messages .add_message (
1047+ request ,
1048+ messages .SUCCESS ,
1049+ "%(author_name)s (%(email)s) is now linked to a user account."
1050+ % {"author_name" : author .full_name (), "email" : author .email },
1051+ )
1052+
10421053 if next_url :
10431054 return redirect (next_url )
10441055 else :
0 commit comments