-$enabled_text="Enabled";
-if ( ! $enabled ) $enabled_text = plc_warning_text("Disabled");
-
-plc_details_start();
-plc_details_line("Enabled",$enabled_text);
-plc_details_line("First Name",$first_name);
-plc_details_line("Last Name",$last_name);
-plc_details_line("Email",href("mailto:$email",$email));
-plc_details_line("URL",$url);
-plc_details_line("Phone",$phone);
-plc_details_line("Title",$title);
-plc_details_line("Bio",wordwrap($bio,50,"<br/>"));
-plc_details_line("Peer",$peers->peer_link($peer_id));
-plc_details_end();
+$enabled_label="Enabled";
+if ( ! $enabled ) $enabled_label = plc_warning_html("Disabled");
+
+$can_update = $is_my_account || plc_is_admin();
+$details = new PlcDetails($can_update);
+$details->start();
+$details->line("Enabled",$enabled_label);
+$details->space();
+$details->form_start(l_actions(),array("action"=>"update-person",
+ "person_id"=>$person_id));
+$details->line("Title",$title,"title");
+$details->line("First Name",$first_name,"first_name");
+$details->line("Last Name",$last_name,"last_name");
+$details->line(href("mailto:$email","Email"),$email,"email");
+$details->line("URL",$url,"url");
+$details->line("Phone",$phone,"phone");
+$details->line("Bio",wordwrap($bio,50,"<br/>"),"bio");
+// xxx need to check that this is working
+if ($can_update) {
+ $save=$details->set_input_type("password");
+ $details->line("Password","","password1");
+ $details->line("Repeat","","password2");
+ $details->set_input_type($save);
+ }
+// xxx need fields to reset password ?
+$details->line("",$details->submit_html("submit","Update Account"));
+$details->form_end();
+
+$details->line("Peer",$peers->peer_link($peer_id));
+$details->end();