#!%TCLSH%

#
# Script pour afficher les groupes et leurs utilisateurs
#
# Appel par : index.htgt
#
# Paramtres (formulaire ou URL) : aucun
#
# Historique
#   2003/05/30 : pda/jean : cration
#   2003/06/27 : pda      : utilisation de cgi-exec
#   2007/12/04 : pda/jean : intgration dans webdns
#

set conf(homeurl)	%HOMEURL%

#
# Chemins utiliss par les scripts
#

set conf(pkg)		%PKGTCL%
set conf(lib)		%DESTDIR%/lib
set conf(libauth)	$conf(lib)/libauth.tcl

#
# Dfinition des noms des pages " trous"
#

set conf(err)		$conf(lib)/erreur.html
set conf(page)		$conf(lib)/grpconsult.html

#
# Quelques paramtres du script
#

set conf(auth)		%AUTH%
set conf(nologin)	%NOLOGIN%
set conf(admin)		%GRPROOT%

#
# Les outils du parfait concepteur de pages Web dynamiques...
#

lappend auto_path $conf(pkg)
package require webapp
package require pgsql
package require arrgen

#
# Format du tableau utilis
#

set conf(tabgrp) {
    global {
	chars {12 normal}
	align {left}
	botbar {yes}
	columns {25 75}
    }
    pattern Groupe {
	vbar {yes}
	column {
	    chars {bold}
	}
	vbar {yes}
	column {}
	vbar {yes}
    }
    pattern Util {
	vbar {yes}
	column {
	    multicolumn {2}
	}
	vbar {yes}
    }
}


#
# On y va !
#

# ::webapp::cgidebug ; exit

source $conf(libauth)

##############################################################################
# Programme principal
##############################################################################

proc main {} {
    global conf

    #
    # Initialisation
    #

    init-auth $conf(nologin) $conf(auth) $conf(admin) $conf(err) {} ftab login

    #
    # Rcuprer la liste des groupes
    #

    if {! [auth-lsgroup tabgrp]} then {
	::webapp::error-exit $conf(err) \
			"Impossible de rcuprer la liste des groupes."
    }

    #
    # Parcourir et mettre en forme la liste des groupes
    #

    set donnees {}
    foreach g [lsort [array names tabgrp]] {
	set descr   [lindex $tabgrp($g) 0]
	set members [lindex $tabgrp($g) 1]
	lappend donnees [list Groupe $g $descr]
	lappend donnees [list Util   [join [lsort $members] " "]]
    }

    #
    # Formatter le tableau
    #

    set groupes [::arrgen::output "html" $conf(tabgrp) $donnees]

    #
    # Sortie du rsultat
    #

    ::webapp::send html [::webapp::file-subst $conf(page) \
				[list \
					[list %GROUPES% $groupes] \
				    ] \
			    ]

    #
    # Dconnexion de la base
    #

    end-auth
}

::webapp::cgi-exec main %DEBUG%
