+ if (!$cgi->param("user")) {
+ show_error($forum,"В форме нет имени пользователя");
+ }
+ my $user = $cgi->param('user');
+ my $rights = getrights($cgi,$forum);
+ if ($user ne $forum->{authenticated}{user} &&
+ $rights ne "admin") {
+ show_error($forum,"У вас нет прав на изменение профиля этого
+ пользователя");
+ }
+ my %base;
+ dbmopen %base,datafile($forum,"passwd"),0644;
+ if (!$base{$user}) {
+ show_error($forum,"Несуществующий пользователь $user");
+ }
+ my $userinfo = thaw $base{$user};
+ $userinfo->{user}=$user;
+ #
+ # If password fields are filled, change password
+ #
+ if ($cgi->param('pass1')) {
+ if ($cgi->param('pass1') eq $cgi->param('pass2')) {
+ $userinfo->{passwd}=crypt_password($cgi->param('pass1'));
+ } else {
+ form_error($formname,$cgi,$forum,"Ошибка при вводе пароля");
+ }
+ }
+ make_profile($formname,$cgi,$forum,$userinfo,$rights eq "admin");
+ delete $userinfo->{user};
+ $base{$user} = freeze $userinfo;
+ dbmclose %base;
+ show_profile($formname,$cgi,$forum);