#!/usr/local/bin/tclsh8.6

#
# List users
#
# History
#   2002/12/05 : jean     : design
#   2003/05/13 : pda/jean : use auth base
#   2005/09/30 : jean     : let non-admin access this page
#   2010/12/12 : pda      : i18n
#   2010/12/26 : pda      : use cgi-dispatch
#

#
# Template pages used by this script
#

set conf(page)          lusers.html

#
# Script parameters
#

set conf(tableau) {
    global {
	chars {10 normal}
	columns {10 20 20 10 20 5 15}
	botbar {yes}
	align {left}
	latex {
	    linewidth {267}
	}
    }
    pattern Title {
	title {yes}
	topbar {yes}
	chars {bold}
	vbar {yes}
	column { }
	vbar {yes}
	column { }
	vbar {yes}
	column { }
	vbar {yes}
	column { }
	vbar {yes}
	column { }
	vbar {yes}
	column { }
	vbar {yes}
	column { }
	vbar {yes}
    }
    pattern Normal {
	vbar {yes}
	column { }
	vbar {yes}
	column {
	    format {raw}
	}
	vbar {yes}
	column { }
	vbar {yes}
	column { }
	vbar {yes}
	column { }
	vbar {yes}
	column { }
	vbar {yes}
	column { }
	vbar {yes}
    }
}

#
# Netmagis general library
#

source /usr/local/lib/netmagis/libnetmagis.tcl

# ::webapp::cgidebug ; exit

##############################################################################
# List users
##############################################################################

d cgi-register {} {} {
    global conf
    global ah

    #
    # Initialization
    #

    set titrepage [mc "List of users"]

    set lines {}
    lappend lines [list "Title" \
			  [mc "Login"] \
			  [mc "Name"] \
			  [mc "Mail"] \
			  [mc "Phone"] \
			  [mc "Address"] \
			  [mc "Present"] \
			  [mc "Group"] \
    		    ]

    set u [::webapp::authuser create %AUTO%]

    set sql "SELECT u.login, u.present, g.name \
		FROM global.nmuser u, global.nmgroup g \
		WHERE g.idgrp = u.idgrp \
		ORDER BY u.login"

    pg_select $dbfd $sql tab {
            set login		$tab(login)
            set present		$tab(present)
            set groupname	$tab(name)

	    if {[catch {set n [$ah getuser $login $u]} msg]} then {
		d error [mc "Authentication base problem: %s" $msg]
	    }
	    
	    if {$n == 1} then {
		set name	"[$u get lastname] [$u get firstname]"
		set mail	[$u get mail]
		set phone	[$u get phone]
		set addr	[$u get addr]
	    } else {
		set name	[mc "ERROR"]
		set mail	[mc "ERROR"]
		set phone	[mc "ERROR"]
		set addr	[mc "ERROR"]
	    }

            lappend lines [list Normal \
				  $login $name $mail $phone $addr \
				  $present $groupname ]
    }

    $u destroy

    set tab [::arrgen::output "html" $conf(tableau) $lines]

    #
    # End of script: output page and close database
    #

    d result $conf(page) [list \
				[list %TITLEPAGE%       $titrepage ] \
				[list %LISTUSERS%       $tab ] \
			    ]
}

##############################################################################
# Main procedure
##############################################################################

d cgi-dispatch "dns" ""
