[Bio] / FigWebServices / users.cgi Repository:
ViewVC logotype

View of /FigWebServices/users.cgi

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.2 - (download) (annotate)
Mon Dec 5 19:12:12 2005 UTC (14 years ago) by olson
Branch: MAIN
CVS Tags: mgrast_dev_08112011, rast_rel_2009_05_18, mgrast_dev_08022011, rast_rel_2014_0912, rast_rel_2008_06_18, myrast_rel40, rast_rel_2008_06_16, mgrast_dev_05262011, rast_rel_2008_12_18, mgrast_dev_04082011, rast_rel_2008_07_21, rast_rel_2010_0928, rast_2008_0924, mgrast_version_3_2, mgrast_dev_12152011, rast_rel_2008_04_23, mgrast_dev_06072011, rast_rel_2008_09_30, rast_rel_2009_0925, rast_rel_2010_0526, rast_rel_2014_0729, mgrast_dev_02212011, rast_rel_2010_1206, caBIG-05Apr06-00, mgrast_release_3_0, mgrast_dev_03252011, rast_rel_2010_0118, mgrast_rel_2008_0924, mgrast_rel_2008_1110_v2, rast_rel_2009_02_05, rast_rel_2011_0119, mgrast_rel_2008_0625, mgrast_release_3_0_4, mgrast_release_3_0_2, mgrast_release_3_0_3, mgrast_release_3_0_1, mgrast_dev_03312011, mgrast_release_3_1_2, mgrast_release_3_1_1, mgrast_release_3_1_0, mgrast_dev_04132011, rast_rel_2008_10_09, mgrast_dev_04012011, rast_release_2008_09_29, mgrast_rel_2008_0806, mgrast_rel_2008_0923, mgrast_rel_2008_0919, rast_rel_2009_07_09, rast_rel_2010_0827, mgrast_rel_2008_1110, myrast_33, rast_rel_2011_0928, rast_rel_2008_09_29, mgrast_rel_2008_0917, rast_rel_2008_10_29, mgrast_dev_04052011, mgrast_dev_02222011, caBIG-13Feb06-00, rast_rel_2009_03_26, mgrast_dev_10262011, rast_rel_2008_11_24, rast_rel_2008_08_07, HEAD
Changes since 1.1: +17 -0 lines
add license words

#
# Copyright (c) 2003-2006 University of Chicago and Fellowship
# for Interpretations of Genomes. All Rights Reserved.
#
# This file is part of the SEED Toolkit.
# 
# The SEED Toolkit is free software. You can redistribute
# it and/or modify it under the terms of the SEED Toolkit
# Public License. 
#
# You should have received a copy of the SEED Toolkit Public License
# along with this program; if not write to the University of Chicago
# at info@ci.uchicago.edu or the Fellowship for Interpretation of
# Genomes at veronika@thefig.info or download a copy from
# http://www.theseed.org/LICENSE.TXT.
#

#
# Simple user management CGI.
#
# This allows one to manage a set of per-user parameters that one might be interested
# in. Currently we support:
#
#     accept_assignments	True if we accept assignments from this user on p2p transfers.
# 				Defaults to true for users that aren't one of the
#				pseudo-users billogix, automated_assignment(s), master, fix, 
#				last_release
#

use strict;

use UserDB;
use FIG;
use HTML;
use CGI;

my @pseudo_users = qw(billogix automated_assignment automated_assignments master fix last_release);
my %pseudo_users;
map { $pseudo_users{$_}++; } @pseudo_users;

my $fig = new FIG;
my $cgi = new CGI;
my $udb = new UserDB($fig);

my @html;

push(@html, $cgi->title("SEED User Management"),
     $cgi->h1("SEED User Management"));


#
# If we're coming in thru a submit button being pressed, need to scan thru
# the old_values and compare to the checked state.
#

if ($cgi->param('submit'))
{
    my $need_write;
    for my $param ($cgi->param)
    {
	if ($param =~ /^aa_old_(\S+)/)
	{
	    my $user = $1;
	    my $form_aa = $cgi->param("aa_$user") ? 1 : 0;
	    my $old_aa = $cgi->param($param);
	    my $udb_aa = $udb->get_user_param($user, 'accept_assignments');

	    if ($old_aa != $form_aa)
	    {
		$udb->set_user_param($user, 'accept_assignments', $form_aa);
		$need_write++;
	    }
	}
    }
    $udb->write() if $need_write;
}
    


push(@html, $cgi->start_form(-action => 'users.cgi'));
build_user_table($fig, $cgi, \@html);

push(@html, $cgi->submit(-name => "submit",
			 -value => 'Submit'));

push(@html, $cgi->end_form);

&HTML::show_page($cgi, \@html);
exit;

sub build_user_table
{
    my($fig, $cgi, $html) = @_;

    my $need_write;

    my(@rows);

    for my $user (sort $udb->get_users())
    {
	my $aa = $udb->get_user_param($user, 'accept_assignments');
	my $aa_cb_name = "aa_$user";
	my $aa_oldval_name = "aa_old_$user";

	#
	# If we've not set a value for aa yet, default it to on unless user is a pseudo-user.
	#

	if (!defined($aa))
	{
	    warn "setting a default\n";
	    $aa = defined($pseudo_users{$user}) ? 0 : 1;
	    $udb->set_user_param($user, 'accept_assignments', $aa);
	    $need_write++;
	}

	my $aa_checkbox = $cgi->checkbox(-name => "aa_$user",
					 -checked => $aa,
					 -override => 1,
					 -label => '');
	push(@rows, [$user, "\@align=center:$aa_checkbox"]);
	push(@$html, $cgi->hidden(-name => $aa_oldval_name,
				  -value => $aa));
    }

    #
    # If we set any defaults, write the user db.
    #
    $udb->write() if $need_write;

    push(@$html, HTML::make_table(["User", "Assignments accepted"], \@rows));
}

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3