diff --git a/docs/upgrades/upgrade_4.1.0-4.2.0.sql b/docs/upgrades/upgrade_4.1.0-4.2.0.sql
index 9e74c1c8f..c5158f6a0 100644
--- a/docs/upgrades/upgrade_4.1.0-4.2.0.sql
+++ b/docs/upgrades/upgrade_4.1.0-4.2.0.sql
@@ -866,5 +866,18 @@ INSERT INTO help VALUES (2, 'MailForm', 1, 'Add/Edit', 'Mail Form Fields', 'You
INSERT INTO helpSeeAlso VALUES (13, 2, 'MailForm');
INSERT INTO helpSeeAlso VALUES (14, 1, 'MailForm');
alter table karmaLog add column dateModified int not null default 1026097656;
+delete from international where internationalId=373;
+insert into international values (605,'WebGUI',1,'Add Groups');
+
+
+
+
+
+
+
+
+
+
+
diff --git a/lib/WebGUI/Operation/User.pm b/lib/WebGUI/Operation/User.pm
index e8de402f7..ce6f8197d 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_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);
+our @EXPORT = qw(&www_editUserKarma &www_editUserKarmaSave &www_editUserGroup &www_editUserProfile &www_editUserProfileSave &www_addUserToGroupSave &www_deleteGrouping &www_editGrouping &www_editGroupingSave &www_becomeUser &www_addUser &www_addUserSave &www_deleteUser &www_deleteUserConfirm &www_editUser &www_editUserSave &www_listUsers);
#-------------------------------------------------------------------
sub _subMenu {
@@ -50,7 +50,7 @@ sub _subMenu {
#-------------------------------------------------------------------
sub www_addUser {
- my ($output, %hash, $f);
+ my (@array, $output, $groups, %hash, $f);
tie %hash, 'Tie::IxHash';
if (WebGUI::Privilege::isInGroup(3)) {
$output .= helpIcon(5);
@@ -62,11 +62,16 @@ sub www_addUser {
$f->hidden("op","addUserSave");
$f->text("username",WebGUI::International::get(50),$session{form}{username});
$f->password("identifier",WebGUI::International::get(51));
+ $f->email("email",WebGUI::International::get(56));
%hash = ('WebGUI'=>'WebGUI', 'LDAP'=>'LDAP');
$f->select("authMethod",\%hash,WebGUI::International::get(164),[$session{setting}{authMethod}]);
$f->url("ldapURL",WebGUI::International::get(165),$session{setting}{ldapURL});
$f->text("connectDN",WebGUI::International::get(166),$session{form}{connectDN});
- $f->group("groups",WebGUI::International::get(89),[],5,1);
+ push(@array,1); #visitors
+ push(@array,2); #registered users
+ push(@array,7); #everyone
+ $groups = WebGUI::SQL->buildHashRef("select groupId,groupName from groups where groupId not in (".join(",",@array).")");
+ $f->select("groups",$groups,WebGUI::International::get(605),[],5,1);
$f->submit;
$output .= $f->print;
} else {
@@ -79,8 +84,7 @@ sub www_addUser {
sub www_addUserSave {
my ($output, @groups, $uid, $u, $gid, $encryptedPassword, $expireAfter);
if (WebGUI::Privilege::isInGroup(3)) {
- ($uid) = WebGUI::SQL->quickArray("select userId from users where username=".
- quote($session{form}{username}));
+ ($uid) = WebGUI::SQL->quickArray("select userId from users where username=".quote($session{form}{username}));
unless ($uid) {
$encryptedPassword = Digest::MD5::md5_base64($session{form}{identifier});
$u = WebGUI::User->new("new");
@@ -91,6 +95,7 @@ sub www_addUserSave {
$u->authMethod($session{form}{authMethod});
@groups = $session{cgi}->param('groups');
$u->addToGroups(\@groups);
+ $u->profileField("email",$session{form}{email});
$session{form}{uid}=$u->userId;
$output = www_editUser();
} else {
@@ -102,6 +107,19 @@ sub www_addUserSave {
return $output;
}
+#-------------------------------------------------------------------
+sub www_addUserToGroupSave {
+ my (@groups, $u);
+ if (WebGUI::Privilege::isInGroup(3)) {
+ @groups = $session{cgi}->param('groups');
+ $u = WebGUI::User->new($session{form}{uid});
+ $u->addToGroups(\@groups);
+ return www_editUserGroup();
+ } else {
+ return WebGUI::Privilege::adminOnly();
+ }
+}
+
#-------------------------------------------------------------------
sub www_becomeUser {
my ($output);
@@ -251,19 +269,22 @@ sub www_editUserSave {
#-------------------------------------------------------------------
sub www_editUserGroup {
- my ($output, $f, @array, $sth, %hash);
+ my ($output, $f, $groups, @array, $sth, %hash);
tie %hash, 'Tie::CPHash';
if (WebGUI::Privilege::isInGroup(3)) {
$output .= '
'.WebGUI::International::get(372).'
';
$f = WebGUI::HTMLForm->new;
- $f->hidden("op","editUserGroupSave");
+ $f->hidden("op","addUserToGroupSave");
$f->hidden("uid",$session{form}{uid});
@array = WebGUI::SQL->buildArray("select groupId from groupings where userId=$session{form}{uid}");
- $f->group("groups",WebGUI::International::get(89),\@array,8,1);
+ push(@array,1); #visitors
+ push(@array,2); #registered users
+ push(@array,7); #everyone
+ $groups = WebGUI::SQL->buildHashRef("select groupId,groupName from groups where groupId not in (".join(",",@array).")");
+ $f->select("groups",$groups,WebGUI::International::get(605),[],5,1);
$f->submit;
- $f->readOnly(WebGUI::International::get(373));
$output .= $f->print;
- $output .= '