X-Git-Url: https://git.octo.it/?p=licom.git;a=blobdiff_plain;f=licom.cgi;fp=licom.cgi;h=68e3581208f9d3b12204193316885fe78b5b9c2e;hp=ffc4a363f52148a09798dcb2c09537fdfa9beb4e;hb=422cfd825089332848b3571d128a6ca3675e675c;hpb=9dcc2bdbad9017fc62b6f80937f1b305648b4c37 diff --git a/licom.cgi b/licom.cgi index ffc4a36..68e3581 100755 --- a/licom.cgi +++ b/licom.cgi @@ -729,36 +729,49 @@ sub action_update } } - my %changed_groups = map { $_ => 1 } (param ('group')); - my @current_groups = LiCoM::Group->load_by_member ($cn); - - for (@current_groups) + # only `authorized' users may see and change groups + if ($UserID) { - my $group_obj = $_; - my $group_name = $group_obj->name (); + my %changed_groups = map { $_ => 1 } (param ('group')); + my @current_groups = LiCoM::Group->load_by_member ($cn); - if (!defined ($changed_groups{$group_name})) + for (@current_groups) { - $group_obj->del_members ($cn); + my $group_obj = $_; + my $group_name = $group_obj->name (); + + if (!defined ($changed_groups{$group_name})) + { + $group_obj->del_members ($cn); + } + else + { + delete ($changed_groups{$group_name}); + } } - else + for (keys %changed_groups) { - delete ($changed_groups{$group_name}); + my $group_name = $_; + my $group_obj = LiCoM::Group->load ($group_name) or die; + + $group_obj->add_members ($cn); } - } - for (keys %changed_groups) - { - my $group_name = $_; - my $group_obj = LiCoM::Group->load ($group_name) or die; - $group_obj->add_members ($cn); + if (param ('newgroup')) + { + # FIXME add error handling + my $group_name = param ('newgroup'); + LiCoM::Group->create ($group_name, '', $cn); + } } - if (param ('newgroup')) + if (!$UserID) { - # FIXME add error handling - my $group_name = param ('newgroup'); - LiCoM::Group->create ($group_name, '', $cn); + print <Your changes have been saved. +

Thank you very much for taking the time to keep this record up to date.

+ +HTML } if ($button eq 'apply' or !$UserID)