diff --git a/lib/WebGUI/Operation/User.pm b/lib/WebGUI/Operation/User.pm index 42e3bebd9..ed540f0aa 100644 --- a/lib/WebGUI/Operation/User.pm +++ b/lib/WebGUI/Operation/User.pm @@ -27,7 +27,7 @@ use WebGUI::User; use WebGUI::Utility; our @ISA = qw(Exporter); -our @EXPORT = qw(&www_editUserGroup &www_editUserProfile &www_editUserProfileSave &www_editUserGroupSave &www_deleteGrouping &www_editGrouping &www_editGroupingSave &www_becomeUser &www_addUser &www_addUserSave &www_deleteUser &www_deleteUserConfirm &www_editUser &www_editUserSave &www_listUsers); +our @EXPORT = qw(&www_editUserKarma &www_editUserKarmaSave &www_editUserGroup &www_editUserProfile &www_editUserProfileSave &www_editUserGroupSave &www_deleteGrouping &www_editGrouping &www_editGroupingSave &www_becomeUser &www_addUser &www_addUserSave &www_deleteUser &www_deleteUserConfirm &www_editUser &www_editUserSave &www_listUsers); #------------------------------------------------------------------- sub _subMenu { @@ -39,6 +39,9 @@ sub _subMenu { $output .= '
  • '.WebGUI::International::get(457).''; $output .= '
  • '.WebGUI::International::get(458).''; $output .= '
  • '.WebGUI::International::get(459).''; + if ($session{setting}{useKarma}) { + $output .= '
  • '.WebGUI::International::get(555).''; + } $output .= '
  • '.WebGUI::International::get(456).''; $output .= ''; return $output; @@ -300,6 +303,38 @@ sub www_editUserGroupSave { } } +#------------------------------------------------------------------- +sub www_editUserKarma { + my ($output, $f, $a, %user, %data, $method, $values, $category, $label, $default, $previousCategory); + if (WebGUI::Privilege::isInGroup(3)) { + $output = helpIcon(36); + $output .= '

    '.WebGUI::International::get(558).'

    '; + $f = WebGUI::HTMLForm->new; + $f->hidden("op","editUserKarmaSave"); + $f->hidden("uid",$session{form}{uid}); + $f->integer("amount",WebGUI::International::get(556)); + $f->text("description",WebGUI::International::get(557)); + $f->submit; + $output .= $f->print; + $output = _subMenu($output); + } else { + $output .= WebGUI::Privilege::adminOnly(); + } + return $output; +} + +#------------------------------------------------------------------- +sub www_editUserKarmaSave { + my ($u); + if (WebGUI::Privilege::isInGroup(3)) { + $u = WebGUI::User->new($session{form}{uid}); + $u->karma($session{form}{amount},$session{user}{username}." (".$session{user}{userId}.")",$session{form}{description}); + return www_editUser(); + } else { + return WebGUI::Privilege::adminOnly(); + } +} + #------------------------------------------------------------------- sub www_editUserProfile { my ($output, $f, $a, %user, %data, $method, $values, $category, $label, $default, $previousCategory); diff --git a/lib/WebGUI/User.pm b/lib/WebGUI/User.pm index 901fa7424..0de6ddc91 100644 --- a/lib/WebGUI/User.pm +++ b/lib/WebGUI/User.pm @@ -304,17 +304,17 @@ sub new { %profile = WebGUI::SQL->buildHash("select userProfileField.fieldName, userProfileData.fieldData from userProfileField, userProfileData where userProfileField.fieldName=userProfileData.fieldName and userProfileData.userId='$user{userId}'"); - # %default = WebGUI::SQL->buildHash("select fieldName, dataDefault from userProfileField where profileCategoryId=4"); - #foreach $key (keys %default) { - # if ($profile{$key} eq "") { - # $value = eval($default{$key}); - # if (ref $value eq "ARRAY") { - # $profile{$key} = $$value[0]; - # } else { - # $profile{$key} = $value; - # } - # } - #} + %default = WebGUI::SQL->buildHash("select fieldName, dataDefault from userProfileField where profileCategoryId=4"); + foreach $key (keys %default) { + if ($profile{$key} eq "") { + $value = eval($default{$key}); + if (ref $value eq "ARRAY") { + $profile{$key} = $$value[0]; + } else { + $profile{$key} = $value; + } + } + } bless {_userId => $userId, _user => \%user, _profile =>\%profile }, $class; }