Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions sophomorix-samba/modules/SophomorixBase.pm
Original file line number Diff line number Diff line change
Expand Up @@ -1457,6 +1457,9 @@ sub _console_print_group_full {

# sophomorix mail attributes
printf "%25s: %-40s\n","mail",$ref_groups->{'GROUPS'}{$group}{'mail'};
foreach my $item ( @{ $ref_groups->{'GROUPS'}{$group}{'proxyAddresses'} } ){
printf "%25s: %-40s\n","proxyAddresses",$item;
}
if ($type eq "class"){
printf "%25s: %-40s\n","sophomorixMailQuota",$ref_groups->{'GROUPS'}{$group}{'sophomorixMailQuota'};
printf "%25s: %-40s\n","sophomorixMailAlias",$ref_groups->{'GROUPS'}{$group}{'sophomorixMailAlias'};
Expand Down
17 changes: 17 additions & 0 deletions sophomorix-samba/modules/SophomorixSambaAD.pm
Original file line number Diff line number Diff line change
Expand Up @@ -6746,6 +6746,8 @@ sub AD_get_full_groupdata {
@{ $groups{'GROUPS'}{$sam}{'sophomorixMemberGroups'} } = sort $entry->get_value('sophomorixMemberGroups');
$groups{'GROUPS'}{$sam}{'sophomorixMemberGroups_count'} = $#{ $groups{'GROUPS'}{$sam}{'sophomorixMemberGroups'} }+1;

@{ $groups{'GROUPS'}{$sam}{'proxyAddresses'} } = sort $entry->get_value('proxyAddresses');

# intrinsic
$groups{'GROUPS'}{$sam}{'sophomorixIntrinsic1'}=$entry->get_value('sophomorixIntrinsic1');
$groups{'GROUPS'}{$sam}{'sophomorixIntrinsic2'}=$entry->get_value('sophomorixIntrinsic2');
Expand Down Expand Up @@ -7963,6 +7965,12 @@ sub AD_group_update {
my $addmailquota = $arg_ref->{addmailquota};
my $mailalias = $arg_ref->{mailalias};
my $maillist = $arg_ref->{maillist};
# change proxyAddresses (multi-value)
my $proxy_addresses_set = $arg_ref->{proxy_addresses_set};
#my $proxy_addresses_add = $arg_ref->{proxy_addresses_add};
#my $proxy_addresses_remove = $arg_ref->{proxy_addresses_remove};
#my $proxy_addresses_entry = $arg_ref->{proxy_addresses_entry};
#
my $status = $arg_ref->{status};
my $join = $arg_ref->{join};
my $hide = $arg_ref->{hide};
Expand Down Expand Up @@ -8102,6 +8110,15 @@ sub AD_group_update {
print " * Setting sophomorixMaillist to $maillist\n";
my $mesg = $ldap->modify($dn,replace => {sophomorixMaillist => $maillist});
}
# proxyAddresses
if (defined $proxy_addresses_set){
my @proxy_addresses=split(/,/,$proxy_addresses_set);
@proxy_addresses = reverse @proxy_addresses;
print " * Setting proxyAddresses to: @proxy_addresses\n";
my $mesg = $ldap->modify($dn,replace => {'proxyAddresses' => \@proxy_addresses });
&AD_debug_logdump($mesg,2,(caller(0))[3]);
}

# status
if (defined $status){
print " * Setting sophomorixStatus to $status\n";
Expand Down
19 changes: 19 additions & 0 deletions sophomorix-samba/scripts/sophomorix-class
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@ $options{'CONFIG'}{'ACTION'}{'GROUP'}="create,".
"gidnumber-migrate,".
"mailalias,".
"maillist,".
"set-proxy-addresses,".
"join,".
"hide,".
"admins,".
Expand Down Expand Up @@ -134,6 +135,7 @@ my $testopt=GetOptions(\%options,
"removemembers=s",
"delete-all-empty-classes",
"delete-all-teacheronly-classes",
"set-proxy-addresses=s",
"update-maildomain",
"remove-student-admins-from-class",
);
Expand Down Expand Up @@ -214,6 +216,8 @@ Changing one/multiple admin-/extra-/teacherclass:
--addadmins user1,user2,user3, ...
--removeadmins user1,user2,user3, ...

--set-proxy-addresses <address1>,<address2>,...

For administrators:
--remove-student-admins-from-class --info (show which users are removed as admin)
--remove-student-admins-from-class (do it)
Expand Down Expand Up @@ -959,6 +963,21 @@ if (defined $options{'kill'} and defined $options{'class'}){
}
}

# --set-proxy-addresses <entry> --class <class1>,<class2>,...
if (defined $options{'set-proxy-addresses'}){
foreach my $class_valid (@{ $classes{'CLASS_VALID_LIST'} }){
&AD_group_update({ldap=>$ldap,
root_dse=>$root_dse,
dn=>$classes{'CLASS_VALID_DATA'}{$class_valid}{'DN'},
school=>$classes{'CLASS_VALID_DATA'}{$class_valid}{'SCHOOL'},
type=>$class_type,
proxy_addresses_set=>$options{'set-proxy-addresses'},
sophomorix_config=>\%sophomorix_config,
});
}
}



############################################################
# End
Expand Down
15 changes: 15 additions & 0 deletions sophomorix-samba/scripts/sophomorix-project
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@ $options{'CONFIG'}{'ACTION'}{'GROUP'}="create,".
"gidnumber-migrate,".
"mailalias,".
"maillist,".
"set-proxy-addresses,".
"join,".
"hide,".
"admins,".
Expand Down Expand Up @@ -141,6 +142,7 @@ my $testopt=GetOptions(\%options,
"creationdate=s",
"mailalias!",
"maillist!",
"set-proxy-addresses=s",
"update-maildomain",
);

Expand Down Expand Up @@ -232,6 +234,8 @@ Changing/creating/killing a project:
--addmembergroups group1,group2,group3, ...
--removemembergroups group1,group2,group3, ...

--set-proxy-addresses <address1>,<address2>,...

Syncing memberships of all projects (sophomorix* -> members):
--sync-all-memberships

Expand Down Expand Up @@ -781,6 +785,17 @@ if (defined $options{'removeadmingroups'}){
});
}

# --set-proxy-addresses <entry>
if (defined $options{'set-proxy-addresses'}){
&AD_group_update({ldap=>$ldap,
root_dse=>$root_dse,
dn=>$dn_pro,
school=>$school_AD,
proxy_addresses_set=>$options{'set-proxy-addresses'},
sophomorix_config=>\%sophomorix_config,
});
}



&AD_unbind_admin($ldap);
Expand Down