tuto:ipasserelle:divers:scripts_dokuwiki

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Prochaine révision Les deux révisions suivantes
tuto:ipasserelle:divers:scripts_dokuwiki [18/12/2013 10:05]
dani
tuto:ipasserelle:divers:scripts_dokuwiki [16/01/2019 10:00]
dani
Ligne 2: Ligne 2:
  
 Voilà quelques scripts qui permettent de générer des tableaux au format dokuwiki: Voilà quelques scripts qui permettent de générer des tableaux au format dokuwiki:
 +
 +  * Génère un tableau des comptes utilisateurs
 +
 +<file perl users.pl>
 +#!/usr/bin/perl -w
 +
 +use strict;
 +use esmith::AccountsDB;
 +use esmith::ConfigDB;
 +
 +my $a = esmith::AccountsDB->open_ro() || die "Couldn't open the accounts database";
 +my $c = esmith::ConfigDB->open_ro() || die "Couldn't open the configuration database";
 +
 +my $main_dom = $c->get('DomainName')->value;
 +
 +my @fws_accounts = qw(
 +  fws
 +  maillog
 +  backup
 +  mails-partages
 +  scanner
 +  deploiement
 +  auth
 +);
 +
 +print '^ Identifiant ^ Nom ^ Prénom ^ Adresse email principale ^' . "\n";
 +
 +foreach ($a->users){
 +  my $name = $_->key;
 +  if (grep { $name eq $_ } @fws_accounts){
 +    $name = '<color blue>' . $_->key . '</color>';
 +  } elsif (($_->prop('PasswordSet') || 'no') ne 'yes'){
 +    $name = '<color red>' . $_->key . '</color>';
 +  }
 +  print '|' . $name . ' |' . $_->prop('LastName') .
 +     ' |' . $_->prop('FirstName') . ' |' . ($_->prop('PreferredMail') || $_->key . '@' . $main_dom) .
 +      "|\n";
 +}
 +</file>
  
   * Génère un tableau de tous les dossiers partagés (smeserver-shared-folders et ibays), avec la liste des groupes ayant accès en lecture ou en écriture   * Génère un tableau de tous les dossiers partagés (smeserver-shared-folders et ibays), avec la liste des groupes ayant accès en lecture ou en écriture
Ligne 139: Ligne 178:
  
   * Génère un tableau avec les groupes (et leur pseudo pointant dessus) et la liste des utilisateurs qui recevront les mails   * Génère un tableau avec les groupes (et leur pseudo pointant dessus) et la liste des utilisateurs qui recevront les mails
-<file grpmail.pl>+<file perl grpmail.pl>
 #!/usr/bin/perl -w #!/usr/bin/perl -w
  
 use esmith::AccountsDB; use esmith::AccountsDB;
 +use esmith::ConfigDB;
  
 my $a = esmith::AccountsDB->open_ro || die "Couldn't open AccountsdDB\n"; my $a = esmith::AccountsDB->open_ro || die "Couldn't open AccountsdDB\n";
 +my $c = esmith::ConfigDB->open_ro || die "Couldn't open ConfigDB\n";
 +my $domain = $c->get('DomainName')->value;
  
 print '^Adresse(s) |membres ^' ."\n"; print '^Adresse(s) |membres ^' ."\n";
  
-foreach my $group ($a->groups){+foreach my $group ($a->groups, $a->get_all_by_prop(type => 'minilist')){
     my $name = $group->key;     my $name = $group->key;
-    my $addr = $name;+    my $addr = $name . '@' . $domain;
     foreach my $pseudo ($a->pseudonyms){     foreach my $pseudo ($a->pseudonyms){
         my $target = $pseudo->prop('Account') || '';         my $target = $pseudo->prop('Account') || '';
-        $addr .= '\\\\ ' . $pseudo->key if ($target eq $name);+        if ($target eq $name){ 
 +            my $p = $pseudo->key; 
 +            $p .= ($pseudo->key =~ m/\@/) ? '' : "\@$domain"; 
 +            $addr .= '\\\\ ' . $p; 
 +        }
     }     }
     my @members = split ',', $group->prop('Members');     my @members = split ',', $group->prop('Members');
-    print '^' . $addr . ' |';+    my $str = '^' . $addr . ' |';
     foreach my $member (@members){     foreach my $member (@members){
-        my $acc $a->get($member) || next; +        $member .= ($member =~ m/\@/'' : "\@$domain"
-        my $first = $acc->prop('FirstName') || $member+        $str .= $member . '';
-        my $last = $acc->prop('LastName') || ''; +
-        print "$first $last, ";+
     }     }
-    print ' |' . "\n";+    $str =~ s/, $//; 
 +    $str .= ' |' . "\n"
 +    print $str;
 } }
 </file> </file>
  • tuto/ipasserelle/divers/scripts_dokuwiki.txt
  • Dernière modification: 17/06/2020 14:53
  • de heuzef