You can subscribe to this list here.
2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(267) |
Nov
(344) |
Dec
(119) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
(23) |
Feb
(15) |
Mar
(16) |
Apr
(388) |
May
|
Jun
(4) |
Jul
|
Aug
|
Sep
(4) |
Oct
|
Nov
|
Dec
|
From: <ki...@us...> - 2002-12-07 00:19:55
|
Update of /cvsroot/genex/genex-server/python In directory sc8-pr-cvs1:/tmp/cvs-serv17921/python Log Message: Directory /cvsroot/genex/genex-server/python added to the repository |
From: <ki...@us...> - 2002-12-06 19:22:43
|
Update of /cvsroot/genex/genex-www/status In directory sc8-pr-cvs1:/tmp/cvs-serv6386 Modified Files: status_menu.ssi Log Message: update Index: status_menu.ssi =================================================================== RCS file: /cvsroot/genex/genex-www/status/status_menu.ssi,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** status_menu.ssi 8 Nov 2002 23:01:43 -0000 1.1 --- status_menu.ssi 6 Dec 2002 19:22:38 -0000 1.2 *************** *** 34,38 **** <td> <b><u>2002 Updates</u></b><br> ! - <b>December</b><br> - <b><a href="http://genex.sourceforge.net/status/2002/nov/">November</a></b><br> </td> --- 34,38 ---- <td> <b><u>2002 Updates</u></b><br> ! - <b><a href="http://genex.sourceforge.net/status/2002/dec/">December</a></b><br> - <b><a href="http://genex.sourceforge.net/status/2002/nov/">November</a></b><br> </td> |
From: <ki...@us...> - 2002-12-06 19:20:52
|
Update of /cvsroot/genex/genex-www/status In directory sc8-pr-cvs1:/tmp/cvs-serv5343 Modified Files: index.shtml Log Message: update Index: index.shtml =================================================================== RCS file: /cvsroot/genex/genex-www/status/index.shtml,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** index.shtml 9 Nov 2002 05:40:40 -0000 1.3 --- index.shtml 6 Dec 2002 19:20:32 -0000 1.4 *************** *** 1 **** ! <!--#include virtual="/status/2002/nov/index.shtml"--> \ No newline at end of file --- 1 ---- ! <!--#include virtual="/status/2002/dec/index.shtml"--> \ No newline at end of file |
From: <ki...@us...> - 2002-12-06 19:19:53
|
Update of /cvsroot/genex/genex-www/status/2002/dec In directory sc8-pr-cvs1:/tmp/cvs-serv4693 Added Files: status_main.ssi Log Message: dec update --- NEW FILE: status_main.ssi --- <!--Main content --> <table border="2" bgcolor="#BFD8D8" width="100%" cellpadding="15" cellspacing="5"> <tr valign="top" bgcolor="#D8E4F7"> <th><big>December 5th, 2002</big></th> </tr> <tr bgcolor="#D8E4F7"> <td> <p> <b><u>Caltech Update - Diane Trout</u></b><br> </p> <p> * current work </p> <p> Spent week vacationing. </p> <p> Actually I discovered that the packages satisfying some of the dependencies I'd built for GeneX were accidentally deleted. </p> <p> I've managed to rebuid them. </p> <p> * next week </p> <p> other internal work, (high probability of being done). </p> <p> start working on updating pymerase for the most recent GeneX database format. (e.g. support row level security). (med priority) </p> <p> Perhaps make a few more debian packages. (low-med priority) </p> <hr> <p> <b><u>UCI Update - Harry Mangalam</u></b> </p> <p> Last week largely lost to travel prep and travel. Met and talked with a number of people at GMU, NRL. Installed GeneX with some success and tried to load data, with less success. </p> <p> During last week, more time 'lost' to Thanksgiving, but GeneSpring connection up and running mostly. Have documented the protocol level connection and am continuing to extend the connection to provide user-level useful data and provide mappings so that more of GeneSpring capabilities can be used. </p> <p> This process somewhat delayed by problems in data loading, somewhat resolved now and personal ignorance of finer points of SQL. </p> <p> Also for GeneSpring connectivity, am testing scalability of GeneX DB (sometimes by intent, sometimes by ignorance)... </p> <hr> <p> <b><u>Caltech Update - Brandon King</u></b> </p> <p> Summery:<br> -Created GenePix-GPR-1.0 FeatureExtractionSoftware<br> -Tested Uploading of GPR files (success)<br> -Documented the creation process of<br> ---FeatureExtractionSoftware<br> ---ArrayDesign<br> ---ExperimentSet<br> ---Data Upload<br> -Finished Agilent 5.1.1 FeatureExtractionSoftware XML<br> -Created BioGenex Python package<br> ---GPR Parser (Diane's Creation)<br> ---Agilent Parser<br> ---GeneX 2.x Config Parser<br> ---bin/fixarray-gpr.py (for preparing arraydesigns from a GPR file)<br> ---bin/tab2ADgui.py (GUI for running tab2AD.pl)<br> ---setup.py for installing BioGeneX package<br> </p> <p> Next Week:<br> -Finish testing Agilent data upload<br> -Help Diane (if possible) with updatinge Pymerase for GeneX 2.x.<br> -Start on ideas for GeneX 2.x GUIs<br> </p> <hr> <p> <b><u>UVa Update - Tom Laudeman</u></b> </p> N/A Currently <hr> <p> <b><u>Open Informatics Update - Jason Stewart</u></b> </p> N/A Currently </td> </tr> </table> <!-- End of Content --> |
From: <ki...@us...> - 2002-12-06 19:19:06
|
Update of /cvsroot/genex/genex-www/status/2002/dec In directory sc8-pr-cvs1:/tmp/cvs-serv3557 Added Files: index.shtml Log Message: december update --- NEW FILE: index.shtml --- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> <HTML> <HEAD> <TITLE>GeneX @ SourceForge</TITLE></HEAD> <BODY bgcolor="white"> <center> <table border="1" cellpadding="0" cellspacing="0" width="800"> <tr> <td bgcolor="#FFFFBB" colspan="2"> <img src="http://genex.sourceforge.net/graphics/genex_banner.png" alt="genex banner"> </td> </tr> <tr> <!-- start Nav Bar table --> <td width="25%" valign="top"> <!--#include virtual="/status/status_menu.ssi"--> </td> <td align="LEFT" VALIGN="top"> <!--#include virtual="status_main.ssi"--> </td> </tr> <tr bgcolor="#8FB9AA"> <th colspan="2"> <!-- The Page Footer goes here --> <!--#include virtual="/content/footer.ssi"--> </th> </tr> </table> </center> </BODY> </HTML> |
From: <ki...@us...> - 2002-12-06 19:07:55
|
Update of /cvsroot/genex/genex-www/status/2002/nov In directory sc8-pr-cvs1:/tmp/cvs-serv29110 Modified Files: status_main.ssi Log Message: update Index: status_main.ssi =================================================================== RCS file: /cvsroot/genex/genex-www/status/2002/nov/status_main.ssi,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** status_main.ssi 6 Dec 2002 19:02:39 -0000 1.4 --- status_main.ssi 6 Dec 2002 19:07:47 -0000 1.5 *************** *** 1,3 **** --- 1,14 ---- <!--Main content --> + <table border="2" bgcolor="#BFD8D8" width="100%" cellpadding="15" cellspacing="5"> + <tr valign="top" bgcolor="#D8E4F7"> + <th><big>November 28th, 2002</big></th> + </tr> + <tr bgcolor="#D8E4F7"> + <td> + <b>Happy Thanksgiving!</b> + </td> + </tr> + </table> + <table border="2" bgcolor="#BFD8D8" width="100%" cellpadding="15" cellspacing="5"> <tr valign="top" bgcolor="#D8E4F7"> |
From: <ki...@us...> - 2002-12-06 19:02:49
|
Update of /cvsroot/genex/genex-www/status/2002/nov In directory sc8-pr-cvs1:/tmp/cvs-serv25610 Modified Files: status_main.ssi Log Message: update Index: status_main.ssi =================================================================== RCS file: /cvsroot/genex/genex-www/status/2002/nov/status_main.ssi,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** status_main.ssi 16 Nov 2002 01:29:59 -0000 1.3 --- status_main.ssi 6 Dec 2002 19:02:39 -0000 1.4 *************** *** 1,3 **** --- 1,135 ---- <!--Main content --> + <table border="2" bgcolor="#BFD8D8" width="100%" cellpadding="15" cellspacing="5"> + <tr valign="top" bgcolor="#D8E4F7"> + <th><big>November 21st, 2002</big></th> + </tr> + <tr bgcolor="#D8E4F7"> + <td> + <p> + <b><u>Caltech Update - Diane Trout</u></b><br> + </p> + <p> + * current accomplishments + </p> + <p> + None, well no genex related ones + </p> + <p> + * Next week + </p> + <p> + More pymerase bugfixes & test code<br> + Make debs for installing genex + </p> + <p> + * Current problems + </p> + <p> + Distracted by proposal for other project. + </p> + <hr> + <p> + <b><u>Caltech Update - Brandon King</u></b> + </p> + <p> + Summery:<br> + -Worked on non-genex related work<br> + -Worked more on getting GenePix GPR files to load into genex + </p> + <p> + Next Week:<br> + -Finish GPR loading (Monday Deadline) + </p> + <p> + Problems:<br> + -Too many things to do, too little time.<br> + -Need to get GPR files loaded into GeneX 2.x ASAP<br> + -Still fighting with the dataloader =o( (Altough, progress has been made =o) </p> + <hr> + <p> + <b><u>UVa Update - Tom Laudeman</u></b> + </p> + <p> + Accomplishments:<br> + - created sql_lib.pl which holds the SQL queries, and has a single subroutine getq() which takes a query name and returns $sth. All new queries are in here, and I'm moving old ones in whenever I have to work on them. It is cool, and the code using it is far more legible. + </p> + <p> + - fixed code in various places due to fields renamed. We're working on having unique field names across all tables. + </p> + <p> + - created a working data export that makes an R formatted file from a single SQL query (albeit an interesting query with several subselects) + </p> + <p> + - started work on chgrp utilities for orders, studies, and files + </p> + <p> + - fixed the code for usf_fk renamed to als_fk in am_spots_mas5. We stopped using that field with usf_fk a long time ago. + </p> + <p> + - put the contact_type and species data init into a separate SQL file + </p> + + <p> + Current problems:<br> + - I'm not sure how conditions and condition labels should be handled in exported data files + </p> + <p> + - Our install process needs more testing and tweaking + </p> + <p> + - Customers using the system have requested a dozen UI tweaks + </p> + <hr> + <p> + <b><u>Open Informatics Update - Jason Stewart</u></b> + </p> + <p> + current accomplishments:<br> + * modified array-design-insert.pl to accept Affy reporter files.<br> + * moved all Mason apps into new Mason/ dir to support + language-specific directories (to enable the addition of Python, for + example)<br> + * updated Mason app framework to be easier to develop new apps by + removing any dependancy on understanding/using the authentication + and sessioning mechanism in Genex-2<br> + * Added some performance tweaks for the Mason apps by pre-loading + often used Perl modules at server initialization time (like + XML::Xerces which takes forever to load)<br> + * helped Caltech team with issues<br> + </p> + <p> + problems: + * hit the wall with huge INSERT's into Postgres. Got some info that I + might need to a) drop indices before insert and re-create them + afterwards, or b) do it outside of a transaction. Tom Lane, from the + Pg developer group, indicated that this was completely wrong and is + working with me to figure it out. + </p> + <p> + Until the insert problem is addressed, getting Affy array designs into + the DB is on hold, which means getting Affy data into the DB is on + hold. + </p> + <p> + * Nasty, awful Apache::Session issue, that screwed a whole day for + Harry and I. Nothing wrong with Apache::Session, it is just that + they are locking rows in the Session table and I didn't know it. + </p> + <p> + next week:<br> + * Affy loader<br> + * more Mason apps for downloading tab-delimited data<br> + </p> + + <hr> + <p> + <b><u>UCI Update - Harry Mangalam</u></b> + </p> + Out of town + </td> + </tr> + </table> + + <table border="2" bgcolor="#BFD8D8" width="100%" cellpadding="15" cellspacing="5"> <tr valign="top" bgcolor="#D8E4F7"> |
From: <tw...@us...> - 2002-12-06 16:21:16
|
Update of /cvsroot/genex/genex-server/site/webtools In directory sc8-pr-cvs1:/tmp/cvs-serv30065 Modified Files: Tag: Rel-1_0_1-branch edit_study2.pl edit_study1.pl delete_study2.pl delete_study1.pl delete_order2.pl sessionlib.pl chgrp_study2.pl sql_lib.pl Log Message: fix misspelled is_writable() fix hybs not being locked/unlocked Index: edit_study2.pl =================================================================== RCS file: /cvsroot/genex/genex-server/site/webtools/Attic/edit_study2.pl,v retrieving revision 1.1.2.3 retrieving revision 1.1.2.4 diff -C2 -d -r1.1.2.3 -r1.1.2.4 *** edit_study2.pl 27 Nov 2002 14:29:49 -0000 1.1.2.3 --- edit_study2.pl 6 Dec 2002 16:19:13 -0000 1.1.2.4 *************** *** 73,79 **** my %ch = $q->Vars(); # ! # Actually, we'll die inside is_writeable() if it fails. # ! if (is_writeable($dbh, "study", "sty_pk", $ch{sty_pk}, $us_fk) == 1) { # write_log("date: $ch{start_date}"); --- 73,79 ---- my %ch = $q->Vars(); # ! # Actually, we'll die inside is_writable() if it fails. # ! if (is_writable($dbh, "study", "sty_pk", $ch{sty_pk}, $us_fk) == 1) { # write_log("date: $ch{start_date}"); *************** *** 115,119 **** my $val = $all_ch{"ec_pk_$del"}; ! if (is_writeable($dbh, "exp_condition", "ec_pk", $all_ch{"ec_pk_$del"}, $us_fk) == 1) { # --- 115,119 ---- my $val = $all_ch{"ec_pk_$del"}; ! if (is_writable($dbh, "exp_condition", "ec_pk", $all_ch{"ec_pk_$del"}, $us_fk) == 1) { # *************** *** 215,219 **** } ! if (is_writeable($dbh, "exp_condition", "ec_pk", $ch{ec_pk}, $us_fk) == 1) { my $sql = "update exp_condition set name=trim(?), notes=trim(?), spc_fk='$ch{spc_fk}', tissue_type=trim('$ch{tissue_type}'), cell_line=trim('$ch{cell_line}'), description=trim(?), sample_treatment=trim(?), sample_type=trim('$ch{sample_type}'), abbrev_name=trim(?) where ec_pk=$ch{ec_pk}"; --- 215,219 ---- } ! if (is_writable($dbh, "exp_condition", "ec_pk", $ch{ec_pk}, $us_fk) == 1) { my $sql = "update exp_condition set name=trim(?), notes=trim(?), spc_fk='$ch{spc_fk}', tissue_type=trim('$ch{tissue_type}'), cell_line=trim('$ch{cell_line}'), description=trim(?), sample_treatment=trim(?), sample_type=trim('$ch{sample_type}'), abbrev_name=trim(?) where ec_pk=$ch{ec_pk}"; Index: edit_study1.pl =================================================================== RCS file: /cvsroot/genex/genex-server/site/webtools/Attic/edit_study1.pl,v retrieving revision 1.1.2.3 retrieving revision 1.1.2.4 diff -C2 -d -r1.1.2.3 -r1.1.2.4 *** edit_study1.pl 27 Nov 2002 14:29:49 -0000 1.1.2.3 --- edit_study1.pl 6 Dec 2002 16:19:24 -0000 1.1.2.4 *************** *** 89,93 **** # species select needs to be in the $loop_template before tag_to_value() # ! if (1 != is_writeable($dbh, "exp_condition", "ec_pk", $s_hr->{ec_pk}, $us_fk)) { $loop_instance = tag_to_value("input", "delete", $loop_instance); --- 89,93 ---- # species select needs to be in the $loop_template before tag_to_value() # ! if (1 != is_writable($dbh, "exp_condition", "ec_pk", $s_hr->{ec_pk}, $us_fk)) { $loop_instance = tag_to_value("input", "delete", $loop_instance); *************** *** 108,112 **** else { ! # write_log("writeable ec_pk: $s_hr->{ec_pk}"); } $loop_instance =~ s/{(.*?)}/$s_hr->{$1}/g; --- 108,112 ---- else { ! # write_log("writable ec_pk: $s_hr->{ec_pk}"); } $loop_instance =~ s/{(.*?)}/$s_hr->{$1}/g; Index: delete_study2.pl =================================================================== RCS file: /cvsroot/genex/genex-server/site/webtools/Attic/delete_study2.pl,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -C2 -d -r1.1.2.1 -r1.1.2.2 *** delete_study2.pl 24 Oct 2002 18:26:53 -0000 1.1.2.1 --- delete_study2.pl 6 Dec 2002 16:19:29 -0000 1.1.2.2 *************** *** 15,19 **** my $sty_pk = $q->param("sty_pk"); ! if (is_writeable($dbh, "study", "sty_pk", $sty_pk, $us_fk) == 1) { delete_study($dbh, $sty_pk); --- 15,19 ---- my $sty_pk = $q->param("sty_pk"); ! if (is_writable($dbh, "study", "sty_pk", $sty_pk, $us_fk) == 1) { delete_study($dbh, $sty_pk); Index: delete_study1.pl =================================================================== RCS file: /cvsroot/genex/genex-server/site/webtools/Attic/delete_study1.pl,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -C2 -d -r1.1.2.1 -r1.1.2.2 *** delete_study1.pl 24 Oct 2002 18:26:53 -0000 1.1.2.1 --- delete_study1.pl 6 Dec 2002 16:19:32 -0000 1.1.2.2 *************** *** 33,37 **** while( $e_hr = $sth_e->fetchrow_hashref()) { ! if (1 != is_writeable($dbh, "exp_condition", "ec_pk", $e_hr->{ec_pk}, $us_fk)) { $locked_flag = 1; --- 33,37 ---- while( $e_hr = $sth_e->fetchrow_hashref()) { ! if (1 != is_writable($dbh, "exp_condition", "ec_pk", $e_hr->{ec_pk}, $us_fk)) { $locked_flag = 1; Index: delete_order2.pl =================================================================== RCS file: /cvsroot/genex/genex-server/site/webtools/Attic/delete_order2.pl,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -C2 -d -r1.1.2.1 -r1.1.2.2 *** delete_order2.pl 24 Oct 2002 18:26:53 -0000 1.1.2.1 --- delete_order2.pl 6 Dec 2002 16:19:43 -0000 1.1.2.2 *************** *** 15,19 **** my $oi_pk = $q->param("oi_pk"); ! if (is_writeable($dbh, "order_info", "oi_pk", $oi_pk, $us_fk)) { delete_order_info($dbh, $oi_pk); --- 15,19 ---- my $oi_pk = $q->param("oi_pk"); ! if (is_writable($dbh, "order_info", "oi_pk", $oi_pk, $us_fk)) { delete_order_info($dbh, $oi_pk); Index: sessionlib.pl =================================================================== RCS file: /cvsroot/genex/genex-server/site/webtools/Attic/sessionlib.pl,v retrieving revision 1.1.2.12 retrieving revision 1.1.2.13 diff -C2 -d -r1.1.2.12 -r1.1.2.13 *** sessionlib.pl 2 Dec 2002 14:34:24 -0000 1.1.2.12 --- sessionlib.pl 6 Dec 2002 16:19:49 -0000 1.1.2.13 *************** *** 755,759 **** # system is identical to Unix, but we'll never use x. # ! # Read the values for each position vertically. For example, 256 decimal is 400 octal. # # 216 318 421 --- 755,760 ---- # system is identical to Unix, but we'll never use x. # ! # Read the values for each position in columns. For example, the first column is ! # 256 decimal and is 400 octal. # # 216 318 421 *************** *** 771,774 **** --- 772,778 ---- # special powers to import data.) # + # Unlocked orders are reset to group read only, even if they were writable + # before locking. + # sub lock_order { *************** *** 778,785 **** my $sql; my $sth; ! my $priv_mask = 0440; # 288; #\440 uga read-only. decimal 288 if ($unlock == 1) { ! $priv_mask = 0640; # 416; # octal \640 rw- r-- --- u+rw,g+r } $sql = "select smp_pk from sample where oi_fk=$oi_pk"; --- 782,791 ---- my $sql; my $sth; ! my $priv_mask = 0440; # 288; #0440 ug read-only. decimal 288 if ($unlock == 1) { ! # Unlocked orders are reset to group read only, even if they were writable ! # before locking. ! $priv_mask = 0640; # 416 decimal octal 0640 rw- r-- --- u+rw,g+r } $sql = "select smp_pk from sample where oi_fk=$oi_pk"; *************** *** 797,800 **** --- 803,819 ---- lock_study($dbh, $sty_pk, $unlock); } + my $am_sth = getq("select_am_pk", $dbh); + $am_sth->execute($smp_pk); + while((my $am_pk) = $am_sth->fetchrow_array()) + { + if ($unlock == 1) + { + or_perms($dbh, $am_pk, $priv_mask); + } + else + { + and_perms($dbh, $am_pk, $priv_mask); + } + } if ($unlock == 1) { *************** *** 824,827 **** --- 843,849 ---- # This really locks the experimental conditions of the study, and nothing else. # + # Unlocked orders are reset to group read only, even if they were writable + # before locking. + # sub lock_study { *************** *** 834,838 **** if ($unlock == 1) { ! $priv_mask = 0640; # 416; # octal \640 rw- r-- --- u+rw,g+r } $sth = getq("select_ec_pk", $dbh); # see sql_lib.pl --- 856,862 ---- if ($unlock == 1) { ! # Unlocked orders are reset to group read only, even if they were writable ! # before locking. ! $priv_mask = 0640; # 416 decimal, octal 0640 rw- r-- --- u+rw,g+r } $sth = getq("select_ec_pk", $dbh); # see sql_lib.pl *************** *** 854,859 **** $sth->finish(); ! # Sep 05, 2002 Tom: don't lock study. exp_conds are already locked. ! # locks order # and_perms($dbh, $sty_pk, $priv_mask); } --- 878,883 ---- $sth->finish(); ! # Sep 05, 2002 Tom: don't lock study. By the time we get down here, exp_conds are already locked. ! # This next line would lock the study. # and_perms($dbh, $sty_pk, $priv_mask); } *************** *** 1341,1345 **** } ! sub is_writeable { (my $dbh, my $table, my $pkey, my $pk_value, my $us_fk) = @_; --- 1365,1369 ---- } ! sub is_writable { (my $dbh, my $table, my $pkey, my $pk_value, my $us_fk) = @_; *************** *** 1351,1355 **** # The new way is clearly more robust, so keep it. # Changing to a prepare-execute-finish model fixed it. ! # ((my $row_count) = $dbh->selectrow_array($sql)) || die "is_writeable: $sql\n$DBI::errstr\n"; # --- 1375,1379 ---- # The new way is clearly more robust, so keep it. # Changing to a prepare-execute-finish model fixed it. ! # ((my $row_count) = $dbh->selectrow_array($sql)) || die "is_writable: $sql\n$DBI::errstr\n"; # *************** *** 1358,1368 **** ($from_clause, $where_clause) = write_where_clause($table, $pkey, $us_fk); my $sql = "select count($pkey) from $table, $from_clause where $pkey=$pk_value and $where_clause"; ! my $sth = $dbh->prepare($sql) || die "is_writeable prepare: $sql\n$DBI::errstr\n" ; if ($DBI::errstr) { die "error: $DBI::errstr\n"; } ! ($sth->execute()) || die "is_writeable execute: $sql\n$DBI::errstr\n" ; ! ((my $row_count) = $sth->fetchrow_array()) || die "is_writeable fetch: $sql\n$DBI::errstr\n"; if ($DBI::errstr) { --- 1382,1392 ---- ($from_clause, $where_clause) = write_where_clause($table, $pkey, $us_fk); my $sql = "select count($pkey) from $table, $from_clause where $pkey=$pk_value and $where_clause"; ! my $sth = $dbh->prepare($sql) || die "is_writable prepare: $sql\n$DBI::errstr\n" ; if ($DBI::errstr) { die "error: $DBI::errstr\n"; } ! ($sth->execute()) || die "is_writable execute: $sql\n$DBI::errstr\n" ; ! ((my $row_count) = $sth->fetchrow_array()) || die "is_writable fetch: $sql\n$DBI::errstr\n"; if ($DBI::errstr) { Index: chgrp_study2.pl =================================================================== RCS file: /cvsroot/genex/genex-server/site/webtools/Attic/chgrp_study2.pl,v retrieving revision 1.1.2.3 retrieving revision 1.1.2.4 diff -C2 -d -r1.1.2.3 -r1.1.2.4 *** chgrp_study2.pl 27 Nov 2002 14:49:42 -0000 1.1.2.3 --- chgrp_study2.pl 6 Dec 2002 16:20:18 -0000 1.1.2.4 *************** *** 93,97 **** # # Experimental conditions can be locked if there is an order using them that is locked. ! # Don't allow an ec_pk to be group writable if it is not user_writeable, and # don't change the user write bit. # Different exp. conds. in a study may have different lock status and therefore different permissions. --- 93,97 ---- # # Experimental conditions can be locked if there is an order using them that is locked. ! # Don't allow an ec_pk to be group writable if it is not user_writable, and # don't change the user write bit. # Different exp. conds. in a study may have different lock status and therefore different permissions. Index: sql_lib.pl =================================================================== RCS file: /cvsroot/genex/genex-server/site/webtools/Attic/sql_lib.pl,v retrieving revision 1.1.2.18 retrieving revision 1.1.2.19 diff -C2 -d -r1.1.2.18 -r1.1.2.19 *** sql_lib.pl 27 Nov 2002 14:49:42 -0000 1.1.2.18 --- sql_lib.pl 6 Dec 2002 16:20:27 -0000 1.1.2.19 *************** *** 242,245 **** --- 242,247 ---- elsif ($q_name eq "select_am_pk") { + # used in sessionlib.pl::lock_order() + # also used in chgrp_order2.pl::set_sample_hyb_perms() $sql = "select am_pk,permissions from arraymeasurement,groupref where smp_fk=? and ref_fk=am_pk"; } |
From: <ki...@us...> - 2002-12-05 22:52:39
|
Update of /cvsroot/genex/genex-server/DB/curated_data In directory sc8-pr-cvs1:/tmp/cvs-serv13975 Added Files: agilent-5.1.1.xml Log Message: Agilent Tab Delimited Text QTDim --- NEW FILE: agilent-5.1.1.xml --- <?xml version="1.0" encoding="ISO-8859-1" standalone="no"?> <!DOCTYPE MAGE-ML SYSTEM "MAGE-ML.dtd"> <MAGE-ML identifier="test-mage"> <BioAssay_package> <Channel_assnlist> <Channel identifier="Channel:cy3" name="cy3"> </Channel> <Channel identifier="Channel:cy5" name="cy5"> </Channel> </Channel_assnlist> </BioAssay_package> <QuantitationType_package> <QuantitationType_assnlist> <SpecializedQuantitationType isBackground="0" identifier="QuantitationType:Agilent-5.1.1-1" name="ControlType"> <PropertySets_assnlist> [...1608 lines suppressed...] <SpecializedQuantitationType_ref identifier="QuantitationType:Agilent-5.1.1-58"/> <SpecializedQuantitationType_ref identifier="QuantitationType:Agilent-5.1.1-59"/> <SpecializedQuantitationType_ref identifier="QuantitationType:Agilent-5.1.1-60"/> <SpecializedQuantitationType_ref identifier="QuantitationType:Agilent-5.1.1-61"/> <SpecializedQuantitationType_ref identifier="QuantitationType:Agilent-5.1.1-62"/> <SpecializedQuantitationType_ref identifier="QuantitationType:Agilent-5.1.1-63"/> <SpecializedQuantitationType_ref identifier="QuantitationType:Agilent-5.1.1-64"/> <SpecializedQuantitationType_ref identifier="QuantitationType:Agilent-5.1.1-65"/> <SpecializedQuantitationType_ref identifier="QuantitationType:Agilent-5.1.1-66"/> <SpecializedQuantitationType_ref identifier="QuantitationType:Agilent-5.1.1-67"/> <SpecializedQuantitationType_ref identifier="QuantitationType:Agilent-5.1.1-68"/> <SpecializedQuantitationType_ref identifier="QuantitationType:Agilent-5.1.1-69"/> <SpecializedQuantitationType_ref identifier="QuantitationType:Agilent-5.1.1-70"/> <SpecializedQuantitationType_ref identifier="QuantitationType:Agilent-5.1.1-71"/> <SpecializedQuantitationType_ref identifier="QuantitationType:Agilent-5.1.1-72"/> </QuantitationTypes_assnreflist> </QuantitationTypeDimension> </QuantitationTypeDimension_assnlist> </BioAssayData_package> </MAGE-ML> |
From: <jas...@us...> - 2002-12-05 19:41:46
|
Update of /cvsroot/genex/genex-server/DB/scripts In directory sc8-pr-cvs1:/tmp/cvs-serv31537 Modified Files: tab2AD.pl Log Message: * DB/scripts/tab2AD.pl (Repository): add 'name' attribute to all identifiable objects Index: tab2AD.pl =================================================================== RCS file: /cvsroot/genex/genex-server/DB/scripts/tab2AD.pl,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** tab2AD.pl 15 Oct 2002 19:19:04 -0000 1.1 --- tab2AD.pl 5 Dec 2002 19:41:42 -0000 1.2 *************** *** 69,74 **** --- 69,76 ---- my $zg = Bio::MAGE::ArrayDesign::ZoneGroup->new(); my $fg = Bio::MAGE::ArrayDesign::FeatureGroup->new(identifier=>"$OPTIONS{fg_identifier}", + name=>"$OPTIONS{fg_identifier}" ); my $rg = Bio::MAGE::ArrayDesign::ReporterGroup->new(identifier=>"$OPTIONS{rg_identifier}", + name=>"$OPTIONS{rg_identifier}" ); *************** *** 96,99 **** --- 98,102 ---- ); my $feature = Bio::MAGE::DesignElement::Feature->new(identifier=>"$a_row.$a_col.$row.$col", + name=>"$a_row.$a_col.$row.$col", zone=>$zones{$zname}, featureLocation=>$f_loc, *************** *** 113,117 **** # create a FeatureReporterMap if necessary unless (defined $reporter->getFeatureReporterMaps()) { ! my $map = Bio::MAGE::DesignElement::FeatureReporterMap->new(identifier=>"FeatureReporterMap:$name"); $map->setReporter($reporter); $reporter->addFeatureReporterMaps($map); --- 116,121 ---- # create a FeatureReporterMap if necessary unless (defined $reporter->getFeatureReporterMaps()) { ! my $map = Bio::MAGE::DesignElement::FeatureReporterMap->new(identifier=>"FeatureReporterMap:$name", ! name=>"FeatureReporterMap:$name"); $map->setReporter($reporter); $reporter->addFeatureReporterMaps($map); |
From: <ki...@us...> - 2002-12-02 21:09:37
|
Update of /cvsroot/genex/genex-server/DB/curated_data In directory sc8-pr-cvs1:/tmp/cvs-serv19152 Added Files: genexpix-gpr-1.0.xml Log Message: QTDim for GenePix GPR file v1.0 (for GenePix 3.0) -datatypes are now correct for each column (ints & floats) --- NEW FILE: genexpix-gpr-1.0.xml --- <?xml version="1.0" encoding="ISO-8859-1" standalone="no"?> <!DOCTYPE MAGE-ML SYSTEM "MAGE-ML.dtd"> <MAGE-ML identifier="test-mage"> <BioAssay_package> <Channel_assnlist> <Channel identifier="Channel:cy5" name="cy5"> </Channel> <Channel identifier="Channel:cy3" name="cy3"> </Channel> </Channel_assnlist> </BioAssay_package> <QuantitationType_package> <QuantitationType_assnlist> <MeasuredSignal isBackground="0" identifier="QuantitationType:GenePix-GPR-1.0-1" name="F635 Median"> <PropertySets_assnlist> <NameValueType value="8" name="Genex:column"> </NameValueType> </PropertySets_assnlist> <Channel_assnref> <Channel_ref identifier="Channel:cy5"/> </Channel_assnref> <Scale_assn> <OntologyEntry category="QuantitationType:scale" value="no_scale"> </OntologyEntry> </Scale_assn> <DataType_assn> <OntologyEntry category="QuantitationType:data_type" value="int"> </OntologyEntry> </DataType_assn> </MeasuredSignal> <MeasuredSignal isBackground="0" identifier="QuantitationType:GenePix-GPR-1.0-2" name="F635 Mean"> <PropertySets_assnlist> <NameValueType value="9" name="Genex:column"> </NameValueType> </PropertySets_assnlist> <Channel_assnref> <Channel_ref identifier="Channel:cy5"/> </Channel_assnref> <Scale_assn> <OntologyEntry category="QuantitationType:scale" value="no_scale"> </OntologyEntry> </Scale_assn> <DataType_assn> <OntologyEntry category="QuantitationType:data_type" value="int"> </OntologyEntry> </DataType_assn> </MeasuredSignal> <DerivedSignal isBackground="0" identifier="QuantitationType:GenePix-GPR-1.0-3" name="F635 SD"> <PropertySets_assnlist> <NameValueType value="10" name="Genex:column"> </NameValueType> </PropertySets_assnlist> <Channel_assnref> <Channel_ref identifier="Channel:cy5"/> </Channel_assnref> <Scale_assn> <OntologyEntry category="QuantitationType:scale" value="no_scale"> </OntologyEntry> </Scale_assn> <DataType_assn> <OntologyEntry category="QuantitationType:data_type" value="int"> </OntologyEntry> </DataType_assn> </DerivedSignal> <MeasuredSignal isBackground="1" identifier="QuantitationType:GenePix-GPR-1.0-4" name="B635 Median"> <PropertySets_assnlist> <NameValueType value="11" name="Genex:column"> </NameValueType> </PropertySets_assnlist> <Channel_assnref> <Channel_ref identifier="Channel:cy5"/> </Channel_assnref> <Scale_assn> <OntologyEntry category="QuantitationType:scale" value="no_scale"> </OntologyEntry> </Scale_assn> <DataType_assn> <OntologyEntry category="QuantitationType:data_type" value="int"> </OntologyEntry> </DataType_assn> </MeasuredSignal> <MeasuredSignal isBackground="1" identifier="QuantitationType:GenePix-GPR-1.0-5" name="B635 Mean"> <PropertySets_assnlist> <NameValueType value="12" name="Genex:column"> </NameValueType> </PropertySets_assnlist> <Channel_assnref> <Channel_ref identifier="Channel:cy5"/> </Channel_assnref> <Scale_assn> <OntologyEntry category="QuantitationType:scale" value="no_scale"> </OntologyEntry> </Scale_assn> <DataType_assn> <OntologyEntry category="QuantitationType:data_type" value="int"> </OntologyEntry> </DataType_assn> </MeasuredSignal> <DerivedSignal isBackground="1" identifier="QuantitationType:GenePix-GPR-1.0-6" name="B635 SD"> <PropertySets_assnlist> <NameValueType value="13" name="Genex:column"> </NameValueType> </PropertySets_assnlist> <Channel_assnref> <Channel_ref identifier="Channel:cy5"/> </Channel_assnref> <Scale_assn> <OntologyEntry category="QuantitationType:scale" value="no_scale"> </OntologyEntry> </Scale_assn> <DataType_assn> <OntologyEntry category="QuantitationType:data_type" value="int"> </OntologyEntry> </DataType_assn> </DerivedSignal> <SpecializedQuantitationType isBackground="0" identifier="QuantitationType:GenePix-GPR-1.0-7" name="percent > B635 + 1 SD"> <PropertySets_assnlist> <NameValueType value="14" name="Genex:column"> </NameValueType> </PropertySets_assnlist> <Channel_assnref> <Channel_ref identifier="Channel:cy5"/> </Channel_assnref> <Scale_assn> <OntologyEntry category="QuantitationType:scale" value="no_scale"> </OntologyEntry> </Scale_assn> <DataType_assn> <OntologyEntry category="QuantitationType:data_type" value="int"> </OntologyEntry> </DataType_assn> </SpecializedQuantitationType> <SpecializedQuantitationType isBackground="0" identifier="QuantitationType:GenePix-GPR-1.0-8" name="Percent > B635 + 2 SD"> <PropertySets_assnlist> <NameValueType value="15" name="Genex:column"> </NameValueType> </PropertySets_assnlist> <Channel_assnref> <Channel_ref identifier="Channel:cy5"/> </Channel_assnref> <Scale_assn> <OntologyEntry category="QuantitationType:scale" value="no_scale"> </OntologyEntry> </Scale_assn> <DataType_assn> <OntologyEntry category="QuantitationType:data_type" value="int"> </OntologyEntry> </DataType_assn> </SpecializedQuantitationType> <SpecializedQuantitationType isBackground="0" identifier="QuantitationType:GenePix-GPR-1.0-9" name="F635 Percent Sat"> <PropertySets_assnlist> <NameValueType value="16" name="Genex:column"> </NameValueType> </PropertySets_assnlist> <Channel_assnref> <Channel_ref identifier="Channel:cy5"/> </Channel_assnref> <Scale_assn> <OntologyEntry category="QuantitationType:scale" value="no_scale"> </OntologyEntry> </Scale_assn> <DataType_assn> <OntologyEntry category="QuantitationType:data_type" value="int"> </OntologyEntry> </DataType_assn> </SpecializedQuantitationType> <MeasuredSignal isBackground="0" identifier="QuantitationType:GenePix-GPR-1.0-10" name="F532 Median"> <PropertySets_assnlist> <NameValueType value="17" name="Genex:column"> </NameValueType> </PropertySets_assnlist> <Channel_assnref> <Channel_ref identifier="Channel:cy3"/> </Channel_assnref> <Scale_assn> <OntologyEntry category="QuantitationType:scale" value="no_scale"> </OntologyEntry> </Scale_assn> <DataType_assn> <OntologyEntry category="QuantitationType:data_type" value="int"> </OntologyEntry> </DataType_assn> </MeasuredSignal> <MeasuredSignal isBackground="0" identifier="QuantitationType:GenePix-GPR-1.0-11" name="F532 Mean"> <PropertySets_assnlist> <NameValueType value="18" name="Genex:column"> </NameValueType> </PropertySets_assnlist> <Channel_assnref> <Channel_ref identifier="Channel:cy3"/> </Channel_assnref> <Scale_assn> <OntologyEntry category="QuantitationType:scale" value="no_scale"> </OntologyEntry> </Scale_assn> <DataType_assn> <OntologyEntry category="QuantitationType:data_type" value="int"> </OntologyEntry> </DataType_assn> </MeasuredSignal> <DerivedSignal isBackground="0" identifier="QuantitationType:GenePix-GPR-1.0-12" name="F532 SD"> <PropertySets_assnlist> <NameValueType value="19" name="Genex:column"> </NameValueType> </PropertySets_assnlist> <Channel_assnref> <Channel_ref identifier="Channel:cy3"/> </Channel_assnref> <Scale_assn> <OntologyEntry category="QuantitationType:scale" value="no_scale"> </OntologyEntry> </Scale_assn> <DataType_assn> <OntologyEntry category="QuantitationType:data_type" value="int"> </OntologyEntry> </DataType_assn> </DerivedSignal> <MeasuredSignal isBackground="1" identifier="QuantitationType:GenePix-GPR-1.0-13" name="B532 Median"> <PropertySets_assnlist> <NameValueType value="20" name="Genex:column"> </NameValueType> </PropertySets_assnlist> <Channel_assnref> <Channel_ref identifier="Channel:cy3"/> </Channel_assnref> <Scale_assn> <OntologyEntry category="QuantitationType:scale" value="no_scale"> </OntologyEntry> </Scale_assn> <DataType_assn> <OntologyEntry category="QuantitationType:data_type" value="int"> </OntologyEntry> </DataType_assn> </MeasuredSignal> <MeasuredSignal isBackground="1" identifier="QuantitationType:GenePix-GPR-1.0-14" name="B532 Mean"> <PropertySets_assnlist> <NameValueType value="21" name="Genex:column"> </NameValueType> </PropertySets_assnlist> <Channel_assnref> <Channel_ref identifier="Channel:cy3"/> </Channel_assnref> <Scale_assn> <OntologyEntry category="QuantitationType:scale" value="no_scale"> </OntologyEntry> </Scale_assn> <DataType_assn> <OntologyEntry category="QuantitationType:data_type" value="int"> </OntologyEntry> </DataType_assn> </MeasuredSignal> <DerivedSignal isBackground="0" identifier="QuantitationType:GenePix-GPR-1.0-15" name="B532 SD"> <PropertySets_assnlist> <NameValueType value="22" name="Genex:column"> </NameValueType> </PropertySets_assnlist> <Channel_assnref> <Channel_ref identifier="Channel:cy3"/> </Channel_assnref> <Scale_assn> <OntologyEntry category="QuantitationType:scale" value="no_scale"> </OntologyEntry> </Scale_assn> <DataType_assn> <OntologyEntry category="QuantitationType:data_type" value="int"> </OntologyEntry> </DataType_assn> </DerivedSignal> <SpecializedQuantitationType isBackground="0" identifier="QuantitationType:GenePix-GPR-1.0-16" name="Percent > B532 + 1 SD"> <PropertySets_assnlist> <NameValueType value="23" name="Genex:column"> </NameValueType> </PropertySets_assnlist> <Channel_assnref> <Channel_ref identifier="Channel:cy3"/> </Channel_assnref> <Scale_assn> <OntologyEntry category="QuantitationType:scale" value="no_scale"> </OntologyEntry> </Scale_assn> <DataType_assn> <OntologyEntry category="QuantitationType:data_type" value="int"> </OntologyEntry> </DataType_assn> </SpecializedQuantitationType> <SpecializedQuantitationType isBackground="0" identifier="QuantitationType:GenePix-GPR-1.0-17" name="Percent > B532 + 2 SD"> <PropertySets_assnlist> <NameValueType value="24" name="Genex:column"> </NameValueType> </PropertySets_assnlist> <Channel_assnref> <Channel_ref identifier="Channel:cy3"/> </Channel_assnref> <Scale_assn> <OntologyEntry category="QuantitationType:scale" value="no_scale"> </OntologyEntry> </Scale_assn> <DataType_assn> <OntologyEntry category="QuantitationType:data_type" value="int"> </OntologyEntry> </DataType_assn> </SpecializedQuantitationType> <SpecializedQuantitationType isBackground="0" identifier="QuantitationType:GenePix-GPR-1.0-18" name="F532 Percent Sat"> <PropertySets_assnlist> <NameValueType value="25" name="Genex:column"> </NameValueType> </PropertySets_assnlist> <Channel_assnref> <Channel_ref identifier="Channel:cy3"/> </Channel_assnref> <Scale_assn> <OntologyEntry category="QuantitationType:scale" value="no_scale"> </OntologyEntry> </Scale_assn> <DataType_assn> <OntologyEntry category="QuantitationType:data_type" value="int"> </OntologyEntry> </DataType_assn> </SpecializedQuantitationType> <Ratio isBackground="0" identifier="QuantitationType:GenePix-GPR-1.0-19" name="Ratio of Medians"> <PropertySets_assnlist> <NameValueType value="26" name="Genex:column"> </NameValueType> </PropertySets_assnlist> <Scale_assn> <OntologyEntry category="QuantitationType:scale" value="no_scale"> </OntologyEntry> </Scale_assn> <DataType_assn> <OntologyEntry category="QuantitationType:data_type" value="float"> </OntologyEntry> </DataType_assn> </Ratio> <Ratio isBackground="0" identifier="QuantitationType:GenePix-GPR-1.0-20" name="Ratio of Means"> <PropertySets_assnlist> <NameValueType value="27" name="Genex:column"> </NameValueType> </PropertySets_assnlist> <Scale_assn> <OntologyEntry category="QuantitationType:scale" value="no_scale"> </OntologyEntry> </Scale_assn> <DataType_assn> <OntologyEntry category="QuantitationType:data_type" value="float"> </OntologyEntry> </DataType_assn> </Ratio> <DerivedSignal isBackground="0" identifier="QuantitationType:GenePix-GPR-1.0-21" name="Median of Ratios"> <PropertySets_assnlist> <NameValueType value="28" name="Genex:column"> </NameValueType> </PropertySets_assnlist> <Scale_assn> <OntologyEntry category="QuantitationType:scale" value="no_scale"> </OntologyEntry> </Scale_assn> <DataType_assn> <OntologyEntry category="QuantitationType:data_type" value="float"> </OntologyEntry> </DataType_assn> </DerivedSignal> <DerivedSignal isBackground="0" identifier="QuantitationType:GenePix-GPR-1.0-22" name="Mean of Ratios"> <PropertySets_assnlist> <NameValueType value="29" name="Genex:column"> </NameValueType> </PropertySets_assnlist> <Scale_assn> <OntologyEntry category="QuantitationType:scale" value="no_scale"> </OntologyEntry> </Scale_assn> <DataType_assn> <OntologyEntry category="QuantitationType:data_type" value="float"> </OntologyEntry> </DataType_assn> </DerivedSignal> <DerivedSignal isBackground="0" identifier="QuantitationType:GenePix-GPR-1.0-23" name="Ratios SD"> <PropertySets_assnlist> <NameValueType value="30" name="Genex:column"> </NameValueType> </PropertySets_assnlist> <Scale_assn> <OntologyEntry category="QuantitationType:scale" value="no_scale"> </OntologyEntry> </Scale_assn> <DataType_assn> <OntologyEntry category="QuantitationType:data_type" value="float"> </OntologyEntry> </DataType_assn> </DerivedSignal> <SpecializedQuantitationType isBackground="0" identifier="QuantitationType:GenePix-GPR-1.0-24" name="Rgn Ratio"> <PropertySets_assnlist> <NameValueType value="31" name="Genex:column"> </NameValueType> </PropertySets_assnlist> <Scale_assn> <OntologyEntry category="QuantitationType:scale" value="no_scale"> </OntologyEntry> </Scale_assn> <DataType_assn> <OntologyEntry category="QuantitationType:data_type" value="float"> </OntologyEntry> </DataType_assn> </SpecializedQuantitationType> <SpecializedQuantitationType isBackground="0" identifier="QuantitationType:GenePix-GPR-1.0-25" name="Rgn R^2"> <PropertySets_assnlist> <NameValueType value="32" name="Genex:column"> </NameValueType> </PropertySets_assnlist> <Scale_assn> <OntologyEntry category="QuantitationType:scale" value="no_scale"> </OntologyEntry> </Scale_assn> <DataType_assn> <OntologyEntry category="QuantitationType:data_type" value="float"> </OntologyEntry> </DataType_assn> </SpecializedQuantitationType> <SpecializedQuantitationType isBackground="0" identifier="QuantitationType:GenePix-GPR-1.0-26" name="F Pixels"> <PropertySets_assnlist> <NameValueType value="33" name="Genex:column"> </NameValueType> </PropertySets_assnlist> <Scale_assn> <OntologyEntry category="QuantitationType:scale" value="no_scale"> </OntologyEntry> </Scale_assn> <DataType_assn> <OntologyEntry category="QuantitationType:data_type" value="int"> </OntologyEntry> </DataType_assn> </SpecializedQuantitationType> <SpecializedQuantitationType isBackground="1" identifier="QuantitationType:GenePix-GPR-1.0-27" name="B Pixels"> <PropertySets_assnlist> <NameValueType value="34" name="Genex:column"> </NameValueType> </PropertySets_assnlist> <Scale_assn> <OntologyEntry category="QuantitationType:scale" value="no_scale"> </OntologyEntry> </Scale_assn> <DataType_assn> <OntologyEntry category="QuantitationType:data_type" value="int"> </OntologyEntry> </DataType_assn> </SpecializedQuantitationType> <SpecializedQuantitationType isBackground="0" identifier="QuantitationType:GenePix-GPR-1.0-28" name="Sum of Medians"> <PropertySets_assnlist> <NameValueType value="35" name="Genex:column"> </NameValueType> </PropertySets_assnlist> <Scale_assn> <OntologyEntry category="QuantitationType:scale" value="no_scale"> </OntologyEntry> </Scale_assn> <DataType_assn> <OntologyEntry category="QuantitationType:data_type" value="int"> </OntologyEntry> </DataType_assn> </SpecializedQuantitationType> <SpecializedQuantitationType isBackground="0" identifier="QuantitationType:GenePix-GPR-1.0-29" name="Sum of Means"> <PropertySets_assnlist> <NameValueType value="36" name="Genex:column"> </NameValueType> </PropertySets_assnlist> <Scale_assn> <OntologyEntry category="QuantitationType:scale" value="no_scale"> </OntologyEntry> </Scale_assn> <DataType_assn> <OntologyEntry category="QuantitationType:data_type" value="int"> </OntologyEntry> </DataType_assn> </SpecializedQuantitationType> <SpecializedQuantitationType isBackground="0" identifier="QuantitationType:GenePix-GPR-1.0-30" name="Log Ratio"> <PropertySets_assnlist> <NameValueType value="37" name="Genex:column"> </NameValueType> </PropertySets_assnlist> <Scale_assn> <OntologyEntry category="QuantitationType:scale" value="no_scale"> </OntologyEntry> </Scale_assn> <DataType_assn> <OntologyEntry category="QuantitationType:data_type" value="float"> </OntologyEntry> </DataType_assn> </SpecializedQuantitationType> <SpecializedQuantitationType isBackground="0" identifier="QuantitationType:GenePix-GPR-1.0-31" name="F635 Median - B635"> <PropertySets_assnlist> <NameValueType value="38" name="Genex:column"> </NameValueType> </PropertySets_assnlist> <Scale_assn> <OntologyEntry category="QuantitationType:scale" value="no_scale"> </OntologyEntry> </Scale_assn> <DataType_assn> <OntologyEntry category="QuantitationType:data_type" value="int"> </OntologyEntry> </DataType_assn> </SpecializedQuantitationType> <SpecializedQuantitationType isBackground="0" identifier="QuantitationType:GenePix-GPR-1.0-32" name="F532 Median - B532"> <PropertySets_assnlist> <NameValueType value="39" name="Genex:column"> </NameValueType> </PropertySets_assnlist> <Scale_assn> <OntologyEntry category="QuantitationType:scale" value="no_scale"> </OntologyEntry> </Scale_assn> <DataType_assn> <OntologyEntry category="QuantitationType:data_type" value="int"> </OntologyEntry> </DataType_assn> </SpecializedQuantitationType> <SpecializedQuantitationType isBackground="0" identifier="QuantitationType:GenePix-GPR-1.0-33" name="F635 Mean - B635"> <PropertySets_assnlist> <NameValueType value="40" name="Genex:column"> </NameValueType> </PropertySets_assnlist> <Scale_assn> <OntologyEntry category="QuantitationType:scale" value="no_scale"> </OntologyEntry> </Scale_assn> <DataType_assn> <OntologyEntry category="QuantitationType:data_type" value="int"> </OntologyEntry> </DataType_assn> </SpecializedQuantitationType> <SpecializedQuantitationType isBackground="0" identifier="QuantitationType:GenePix-GPR-1.0-34" name="F532 Mean - B532"> <PropertySets_assnlist> <NameValueType value="41" name="Genex:column"> </NameValueType> </PropertySets_assnlist> <Scale_assn> <OntologyEntry category="QuantitationType:scale" value="no_scale"> </OntologyEntry> </Scale_assn> <DataType_assn> <OntologyEntry category="QuantitationType:data_type" value="int"> </OntologyEntry> </DataType_assn> </SpecializedQuantitationType> <SpecializedQuantitationType isBackground="0" identifier="QuantitationType:GenePix-GPR-1.0-35" name="Flags"> <PropertySets_assnlist> <NameValueType value="42" name="Genex:column"> </NameValueType> </PropertySets_assnlist> <Scale_assn> <OntologyEntry category="QuantitationType:scale" value="no_scale"> </OntologyEntry> </Scale_assn> <DataType_assn> <OntologyEntry category="QuantitationType:data_type" value="char12"> </OntologyEntry> </DataType_assn> </SpecializedQuantitationType> </QuantitationType_assnlist> </QuantitationType_package> <BioAssayData_package> <QuantitationTypeDimension_assnlist> <QuantitationTypeDimension identifier="QuantitationType:GenePix-GPR-1.0" name="GenePix-GPR-1.0"> <QuantitationTypes_assnreflist> <MeasuredSignal_ref identifier="QuantitationType:GenePix-GPR-1.0-1"/> <MeasuredSignal_ref identifier="QuantitationType:GenePix-GPR-1.0-2"/> <DerivedSignal_ref identifier="QuantitationType:GenePix-GPR-1.0-3"/> <MeasuredSignal_ref identifier="QuantitationType:GenePix-GPR-1.0-4"/> <MeasuredSignal_ref identifier="QuantitationType:GenePix-GPR-1.0-5"/> <DerivedSignal_ref identifier="QuantitationType:GenePix-GPR-1.0-6"/> <SpecializedQuantitationType_ref identifier="QuantitationType:GenePix-GPR-1.0-7"/> <SpecializedQuantitationType_ref identifier="QuantitationType:GenePix-GPR-1.0-8"/> <SpecializedQuantitationType_ref identifier="QuantitationType:GenePix-GPR-1.0-9"/> <MeasuredSignal_ref identifier="QuantitationType:GenePix-GPR-1.0-10"/> <MeasuredSignal_ref identifier="QuantitationType:GenePix-GPR-1.0-11"/> <DerivedSignal_ref identifier="QuantitationType:GenePix-GPR-1.0-12"/> <MeasuredSignal_ref identifier="QuantitationType:GenePix-GPR-1.0-13"/> <MeasuredSignal_ref identifier="QuantitationType:GenePix-GPR-1.0-14"/> <DerivedSignal_ref identifier="QuantitationType:GenePix-GPR-1.0-15"/> <SpecializedQuantitationType_ref identifier="QuantitationType:GenePix-GPR-1.0-16"/> <SpecializedQuantitationType_ref identifier="QuantitationType:GenePix-GPR-1.0-17"/> <SpecializedQuantitationType_ref identifier="QuantitationType:GenePix-GPR-1.0-18"/> <Ratio_ref identifier="QuantitationType:GenePix-GPR-1.0-19"/> <Ratio_ref identifier="QuantitationType:GenePix-GPR-1.0-20"/> <DerivedSignal_ref identifier="QuantitationType:GenePix-GPR-1.0-21"/> <DerivedSignal_ref identifier="QuantitationType:GenePix-GPR-1.0-22"/> <DerivedSignal_ref identifier="QuantitationType:GenePix-GPR-1.0-23"/> <SpecializedQuantitationType_ref identifier="QuantitationType:GenePix-GPR-1.0-24"/> <SpecializedQuantitationType_ref identifier="QuantitationType:GenePix-GPR-1.0-25"/> <SpecializedQuantitationType_ref identifier="QuantitationType:GenePix-GPR-1.0-26"/> <SpecializedQuantitationType_ref identifier="QuantitationType:GenePix-GPR-1.0-27"/> <SpecializedQuantitationType_ref identifier="QuantitationType:GenePix-GPR-1.0-28"/> <SpecializedQuantitationType_ref identifier="QuantitationType:GenePix-GPR-1.0-29"/> <SpecializedQuantitationType_ref identifier="QuantitationType:GenePix-GPR-1.0-30"/> <SpecializedQuantitationType_ref identifier="QuantitationType:GenePix-GPR-1.0-31"/> <SpecializedQuantitationType_ref identifier="QuantitationType:GenePix-GPR-1.0-32"/> <SpecializedQuantitationType_ref identifier="QuantitationType:GenePix-GPR-1.0-33"/> <SpecializedQuantitationType_ref identifier="QuantitationType:GenePix-GPR-1.0-34"/> <SpecializedQuantitationType_ref identifier="QuantitationType:GenePix-GPR-1.0-35"/> </QuantitationTypes_assnreflist> </QuantitationTypeDimension> </QuantitationTypeDimension_assnlist> </BioAssayData_package> </MAGE-ML> |
From: <tw...@us...> - 2002-12-02 17:03:47
|
Update of /cvsroot/genex/genex-server In directory sc8-pr-cvs1:/tmp/cvs-serv19618 Modified Files: Tag: Rel-1_0_1-branch INSTALL Log Message: added a note about initialize_db.sql Index: INSTALL =================================================================== RCS file: /cvsroot/genex/genex-server/INSTALL,v retrieving revision 1.14.2.18 retrieving revision 1.14.2.19 diff -C2 -d -r1.14.2.18 -r1.14.2.19 *** INSTALL 2 Dec 2002 16:44:26 -0000 1.14.2.18 --- INSTALL 2 Dec 2002 17:03:35 -0000 1.14.2.19 *************** *** 401,405 **** 4) We suggest that you cd to your installation directory, run the psql Postgres command line, and from inside psql, use the \i command to run ! the genex_schema.sql SQL commands. You can run the 'psql' command from any directory to get into the database. If you then choose to run the .sql file make sure you supply the path to the .sql file when using --- 401,405 ---- 4) We suggest that you cd to your installation directory, run the psql Postgres command line, and from inside psql, use the \i command to run ! the genex_schema.sql and initialize_db.sql SQL commands. You can run the 'psql' command from any directory to get into the database. If you then choose to run the .sql file make sure you supply the path to the .sql file when using *************** *** 410,414 **** --- 410,420 ---- $ psql -U postgres genex genex=# \i genex_schema.sql + genes=# \i initialize_db.sql genex=# \q + + genex_schema.sql creates all the tables, but leaves everthing empty. + + initialize_db.sql fills in a couple of dictionary tables (contact_type, species). + |
From: <tw...@us...> - 2002-12-02 16:44:30
|
Update of /cvsroot/genex/genex-server In directory sc8-pr-cvs1:/tmp/cvs-serv30851 Modified Files: Tag: Rel-1_0_1-branch INSTALL Log Message: added an Apache section. Index: INSTALL =================================================================== RCS file: /cvsroot/genex/genex-server/INSTALL,v retrieving revision 1.14.2.17 retrieving revision 1.14.2.18 diff -C2 -d -r1.14.2.17 -r1.14.2.18 *** INSTALL 2 Dec 2002 16:03:29 -0000 1.14.2.17 --- INSTALL 2 Dec 2002 16:44:26 -0000 1.14.2.18 *************** *** 164,167 **** --- 164,309 ---- interface + Apache configuration. + --------------------- + + GeneX will run from document root, or from a user's public_html + directory. We haven't done much testing with the user's public_html + option. + + I have the impression that Apache config files are not case sensitive, + but I always follow the convention mixed capitalization. + + Some options are just hanging out. Others must be inside pairs of + directive tags. The most common is the <Directory path> </Directory>. + + The changes we made to the Apache config file are listed below. Red + Hat puts the Apache config in /etc/httpd/conf/httpd.conf. + + Find the DocumentRoot option, and edit as appropriate. + + DocumentRoot "/var/www/html/genex" + + + There is a <Directory> </Directory> section for DocumentRoot. Set the + opening <Directory ...> to whatever you've chosen as DocumentRoot, or + to the directory containing DocumentRoot. If you set it to the + directory containing DocumentRoot, all the subdirectories below will have + the same privileges. + + <Directory "/var/www/html"> + + In this same section also change the Options to read as follows. + Add a DirectoryIndex like this if one doesn't exist. The AllowOverride + option enables the use of .htaccess files. GeneX uses .htaccess to + control Apache authentication for the security system. + + Options Indexes FollowSymLinks ExecCGI + DirectoryIndex index.shtml index.html index.pl + AllowOverride All + + To recap, my entire <Directory path> </Directory> directive looks + like: + + # + # This should be changed to whatever you set DocumentRoot to. + # + <Directory "/var/www/html"> + # + # Possible values for the Options directive are "None", "All", + # or any combination of: + # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI Multiviews + # + # Note that "MultiViews" must be named *explicitly* --- "Options All" + # doesn't give it to you. + # + # The Options directive is both complicated and important. Please see + # http://httpd.apache.org/docs-2.0/mod/core.html#options + # for more information. + # + Options Indexes FollowSymLinks ExecCGI + DirectoryIndex index.shtml index.html index.pl + # + # AllowOverride controls what directives may be placed in .htaccess files. + # It can be "All", "None", or any combination of the keywords: + # Options FileInfo AuthConfig Limit + # + AllowOverride All + + # + # Controls who can get stuff from this server. + # + Order allow,deny + Allow from all + + </Directory> + + + + You will need to uncomment or add the following line. Usually the AddHandler + options are grouped together. + + AddHandler cgi-script .cgi .pl + + In another section, comment out the UserDir disable option, and add a + new UserDir option. This isn't strictly speaking necessary for GeneX, + but it simplifies other testing. This option allows web pages to be + served from user's public_html directories. + + # UserDir disable + UserDir public_html + + <Directory /home/*/public_html> + AllowOverride FileInfo AuthConfig Limit + Options MultiViews All + # Indexes SymLinksIfOwnerMatch IncludesNoExec + <Limit GET POST OPTIONS> + Order allow,deny + Allow from all + </Limit> + <LimitExcept GET POST OPTIONS> + Order deny,allow + Deny from all + </LimitExcept> + </Directory> + + + Virtual hosting is a good idea, and not hard to set up. Substitute + your server's ip address and the fully qualified domain name assigned + to your server by your hostmaster. + + NameVirtualHost 10.10.1.5 + + <VirtualHost 10.10.1.5 > + DocumentRoot /var/www/html/genex + ServerName genes.med.virginia.edu + </VirtualHost> + + SSL is a bit of a mystery. On our production server is looks like + this: + + <IfDefine HAVE_SSL> + ## + ## SSL Virtual Host Context + ## + + # Apache will only listen on port 80 by default. Defining the virtual server + # (below) won't make it automatically listen on the virtual server's port. + Listen 443 + + <VirtualHost _default_:443> + + # General setup for the virtual host + DocumentRoot "/var/www/html" + + # SSL Engine Switch: + # Enable/Disable SSL for this virtual host. + SSLEngine on + ... + + I think the remainder of the options through the closing </VirtualHost> and </IfDefine> + are the defaults. + + + PostgreSQL installation. *************** *** 289,296 **** 7) Continue with the GeneX installation. - - - There are some basic pieces that you need to have in place before you - start. Some notes on Alien Platforms. --- 431,434 ---- |
From: <tw...@us...> - 2002-12-02 16:03:36
|
Update of /cvsroot/genex/genex-server In directory sc8-pr-cvs1:/tmp/cvs-serv21243 Modified Files: Tag: Rel-1_0_1-branch INSTALL Log Message: updated, old stuff removed. Still needs more Apache details. Index: INSTALL =================================================================== RCS file: /cvsroot/genex/genex-server/INSTALL,v retrieving revision 1.14.2.16 retrieving revision 1.14.2.17 diff -C2 -d -r1.14.2.16 -r1.14.2.17 *** INSTALL 5 Nov 2002 14:37:20 -0000 1.14.2.16 --- INSTALL 2 Dec 2002 16:03:29 -0000 1.14.2.17 *************** *** 1,151 **** ! Installation Notes for the GeneX WWW Interface ! ============================================== # CVS $Id$ ! For the actual install, see the section below: "Actually Installing the System". - There are some basic pieces that you need to have in place before you - start. ! Some notes on Alien Platforms ! ============================= ! * GeneX has been developed on Linux and that is the current ! system we support. Porting to another Unix-based system should not be ! difficult but we can't support all platforms obviously. ! ! * That said, the system is Open Source and we encourage people to try to ! break it by porting it to other platforms (that which does not kill us ! makes us stronger.) We've had requests to port it to various other ! platforms; below are some preliminary results and thoughts on this. ! * Mac OSX - as essentially BSD Unix under the hood, this should be a pretty ! straight port and as Daniel E Sabath <dsabath@u.washington.edu> discovered, ! it pretty much is. Gotchas are that since the g77 package isn't widely ! available for OSX, you may have to grab a binary package of R that has it ! built with another Fortran compiler, and due to a strange quirk of ! packaging, Apple has included the non-GNU version of several file utilities ! so you'll have to go get the utilities and compile them yourself. The ! installer should catch this deviation and tell you in a (possibly hard to ! understand) error message that starts: ! "Ugh! What gibberish! The [app] you have certainly does not ! taste like GNU [app]." ! and then it'll tell you where to get the appropriate one. ! ! * Microsoft Windows NT & 2000 - these creatures are apparantly POSIX compliant ! at some level and in a miracle of programming, the Cygnus people have ! provided a toolkit which enables them to behave like a unix system - the ! Cygwin tools: ! http://sources.redhat.com/cygwin/ [home] ! or ! http://xfree86.cygwin.com/docs/howto/cygwin-installing.html [fr XFree86] ! which gives Windows almost all the resources of Linux/Unix, including an X ! server if you install the XFree86 package as well. It's a huge package ! (175MB installed), but it's free, very high quality, and capable. Other ! more complex systems have been ported to this environment and as far as I ! know, almost of the subsystems that GeneX requires can be compiled and run ! on the Cygwin platform. ! ! HOWEVER, we have not done this and we'll probably not have the time for a ! while so if there are any enterprising young hackers out there with time on ! their grubby little hands looking to help out, this would obviously be a ! useful thing to do. ! What you need before you configure GeneX ! ======================================== ! - privilege: The two phases of installation require different user privileges ! * The first phase, installing the Pg DB dump (init-dump.pl) must be ! run as a user with permission to create new databases and users ! within your Postgres installation. This is usually the user 'postgres', if ! the DB was part of a RedHat or Debian installation. ! ! N O T E: When you untar the server package, the directory itself has to be ! EXECUTABLE by ALL, or the 'init-dump.pl' script will fail. If it is not ! mode 755, make it so with the command: ! chmod 755 GeneX-Server-X.Y.Z ! * The second phase general configuration and installation (using the ! 'install-all.pl' script) still needs to be run by a privileged user ! (usually root) who can write to system directories (the root of your CGI ! tree, and the root of your html document tree). ! - Utility software: All recent, full linux distros include (and ! GeneX depends on): ! * gnu tar, ! * gnu text & file utils ! * sendmail (or a sendmail replacement such as exim) ! * Perl >=5.005 ! * apache web server, configured to support Server-Side-Includes (see the ! apache documentation about this: ! <URL http://httpd.apache.org/docs/mod/mod_include.html>, ! esp. the tutorial: <URL http://httpd.apache.org/docs/howto/ssi.html> ! this can often be done by adding the following lines to your [httpd.conf] ! or [srm.conf] file and then rebooting. ! ! # Allow Server-side Includes ! Options +Includes ! AddType text/html .shtml ! AddHandler server-parsed .shtml ! DirectoryIndex index.html index.htm index.shtml index.cgi ! ! - Other Packages: Some distros will include these apps which are ! also needed for full functionality. If you cannot find them on your ! system already with 'which', 'whereis' or 'locate', you'll have to ! add them yourself via RPM or dpkg. Most easily found at rpmfind.net ! or deb or tarball from the URLs below. ! ! The file 'installation.scripts' in this directory will assist you in obtaining ! and installing some of these additional applications. ! Required Applications ! ===================== ! * Postgres (>=7.2) => http://www.postgresql.org ! The following link has the latest installation instructions: ! http://www.us.postgresql.org/users-lounge/docs/7.2/postgres/installation.html ! ! * pay close attention to the instructions if you are upgrading from a previous version of postgresql. If you have data that ! must be migrated to the new version you must follow specific steps before running the upgrade. ! Debian deb packages for PostgreSQL include: ! Required Optional ! =============== ================= ! postgresql postgresql-client ! postgresql-dev postgresql-doc ! libpgsql2 ecpg ! postgresql-pl ! libpgtcl ! ! * g77 GNU Fortran compiler (req. to compile R from source) ! * R (>= 1.1.1) => http://cran.r-project.org ! * ghostscript => http://www.cs.wisc.edu/~ghost ! * xgobi/xgobi => http://www.research.att.com/areas/stat/xgobi ! * vncserver => http://www.uk.research.att.com/vnc ! * mpage => http://rpmfind.net/linux/RPM/mpage.html ! * libexpat => http://sourceforge.net/projects/expat/ ! * perlSGML => http://genex.ncgr.org/genex/download/genex-server/perlSGML.2001Jan23.tar.gz ! (supplies the dtd2html utility to generate the docs for ! the DTDs) ! Optional: ! * xcluster => http://genome-www.stanford.edu/~sherlock/cluster.html ! * jpythonc => http://www.jpython.org ! * Java (>=1.2) => http://www-106.ibm.com/developerworks/java/jdk/ ! (at least one utility (jar) from the Java Runtime Environment is ! required for some scripts and a Java VM is required to run the ! Curation Tool, if you plan on running it on the server machine) ! !! These should be installed BEFORE ..repeat.. !! ! !! BEFORE trying to install the NCGR components !! ! What you have to know or be willing to learn: ! ============================================= June 26, 2002 Jodi Kanter. --- 1,170 ---- ! Installation Notes for GeneX ! ---------------------------- # CVS $Id$ ! GeneX 1.5.x is based on GeneX 1.4.x. This is a separate and different ! product from GeneX 2.x, although many of the goals are similar. ! Installation. ! ------------- ! This section updated December 2, 2002 by Tom Laudeman. ! As a convention, when showing Linux commands, we will put the command ! on a separate line. To distinguish what you type from the results, we ! use a prompt. The $ is the normal prompt when you are logged in as ! yourself. The # is the prompt when you have su'd to root. When we need ! an example userid (which in reality will usually be your userid) we ! will use mst3k. + 1) Install Apache and PostgreSQL. If you are running a modern Red Hat + system, you can get the Red Hat installer to install both at the same + time you install Red Hat. Installing later is not too difficult. ! Follow the instructions below about setting up the initial GeneX ! database/tables. ! 2) cd to the directory formed by the CVS checkout or by untarring the ! distribution tar file. ! $ cd /home/mst3k/public_html/genex-server + 3) Copy the options template (options.txt) to the local options file + (options.reminders). The local options filename is hardcoded, so you + must name it options.reminders. ! $ cp options.txt options.reminders ! 4) Use your favorite text editor to edit options.reminders so that the ! options are appropriate for you system. Most of the options you will ! want to change are in a stanza towards the top of the file. ! $ emacs options.reminders ! 5) If your Perl executable is not in the standard location ! /usr/bin/perl, then edit install_lib.pl and fix the #! line. ! 6) You will need to be root for the final part of the install. The ! install is handled by make. This should create destination ! directories, copy files, and run make in ./site and ./site/webtools. + $ su + <enter the root password> + # make ! 7) cd to the installed webtools directory, and use admin_cli.pl to ! create GeneX user accounts. This are NOT Linux or PostgreSQL accounts. ! 8) Test the install by going to your site with a web browser, and ! logging in. + Details. + -------- ! We ship GeneX with a default options.txt file which contains many ! common defaults. However, other options are necessarily different for ! each site. Options that we felt would be sure to differ between sites ! are gathered in a section near the top of the file. ! ! In order to customize settings for your site, copy options.txt to the ! default site settings file called options.reminders. This file name is ! historical, and may change, if for no other reason than file ! extensions are commonly only 3 characters. ! ! The format of the options file is simple. ! ! a) lines beginning with # are comments. ! b) comments are not recognized anywhere except at the beginning of a line. ! c) options are in the form ! key = value ! ! where "key" is the name of the value, and is separated from "value" by ! an equal sign. Space around the = sign is optional. Except for leading ! and trailing whitespace, everything to the left of the = is the key, ! and everything to the right is the value. ! ! The options files have what we hope are useful comments. ! ! If you download a new version of GeneX with a new default options.txt ! file, your settings will be preserved by using the upgrade_options.pl ! script. However, comments you add to options.reminders are not ! preserved. Settings are preserved, not comments. ! ! Once you have editted options.reminders, you can run the installation ! as often as necessary. As far as we know, running the installation ! does not destroy data, although you should keep backups and be careful. ! ! Once the script completes (assuming you have the skeleton database ! instantiated), you can test your GeneX installation by pointing your ! browser to the default URL presented to you at the end of the script. ! ! ! History. ! -------- ! ! Legacy code and files from earlier versions of GeneX are occasionally ! refered to in options.txt (your local copy options.reminders), but are ! not used. You'll see some of these options named SKIP_<name> where ! <name> is the name of some old feature. ! ! These have been left more or less intact for historical interest. ! ! ! ! Updating an existing installation. ! ---------------------------------- ! ! You start the update process by downloading a new tar file and ! un-tarring it, or if you originally got your GeneX via CVS, running a ! 'cvs update' command. ! ! If your updated GeneX is installed in the same directory, you only need ! to run upgrade_options.pl and install-al.pl again. If your update is in a ! different directory, copy your options.reminders to the ! new directory, and run upgrade_options.pl and install-all.pl ! ! % cd /home/install/genex/genex-server ! % ./upgrade_options.pl ! % ./install-all.pl ! ! Be sure to keep a copy of options.reminders in a safe place, outside ! the GeneX directory tree. ! ! ! What to do After Installaion. ! ----------------------------- ! ! Post installation you have a functional, but empty GeneX. ! ! 1) Your sysadmin must create a GeneX account for each user via the ! admin_cli.pl command found in the webtools directory where the web ! site is installed. The person running admin_cli.pl must be in the ! 'apache' group. admin_cli.pl has to be run from the installed webtools ! directory (usually /var/www/html/genex/webtools). ! ! GeneX accounts are also required for the curators. Unix accounts will ! be necessary for curators who load array layouts. ! ! 2) The admin or one of the curators must use loadaffylayout.pl to load ! Affymetrix layout files. There is one layout per chip, and the each ! layout only needs to be loaded once. ! ! 3) End users (who now have accounts and access via the web pages) need ! to create new experiment sets, and fill in the meta data. ! ! 4) Curators in your chip wet lab use the web site to lock experiment ! sets, and fill in data related to the actual sample ! preparation/annealing/scanning. MAS files ! ! ! The URL of the web pages will have been determined by your ! sysadmin. Creating new experiment sets is accomplished via the Web ! interface ! ! ! PostgreSQL installation. ! ------------------------ June 26, 2002 Jodi Kanter. *************** *** 271,294 **** Perl & Using the CPAN shell to install Modules ============================================== We also require the following modules that are not included with the ! standard perl library: ! Term::ReadKey - used by install-all.pl ! CGI - used by most cgi scripts ! XML::Parser - used by the GeneXML utils ! XML::DOM - used by the GeneXML utils ! Digest::MD5 - used by LoginUtils.pm ! DBI - used by everything (this *is* a gene expression DATABASE ;-) ! DBD::Pg - for the Postgres installation (see Known Problems below) ! GD - (optional, currently only used by draw-map.pl) ! Class::ObjectTemplate - used by everything \_ these 2 need to be ! Class::ObjectTemplate::DB - used by everything / installed separately ! Spreadsheet::WriteExcel - support writing native Excel files ! which requires Parse::RecDescent (should be detected and installed) ! You can install these in a single line by typing: perl -MCAPN -e 'install [module]' ie --- 290,399 ---- + + There are some basic pieces that you need to have in place before you + start. + + Some notes on Alien Platforms. + ------------------------------ + + Some of the information in this section is out of date. GeneX 1.5.10 + is far simpler than the original GeneX 1.4.x, so porting may be + easier. + + + * GeneX has been developed on Red Hat Linux and that is the current + system we support. Porting to another Unix-based system should not be + difficult but we can't support all platforms. + + * That said, the system is Open Source and we encourage people to try to + break it by porting it to other platforms (that which does not kill us + makes us stronger.) We've had requests to port it to various other + platforms; below are some preliminary results and thoughts on this. + + * Mac OSX - as essentially BSD Unix under the hood, this should be a pretty + straight port and as Daniel E Sabath <dsabath@u.washington.edu> discovered, + it pretty much is. Gotchas are that since the g77 package isn't widely + available for OSX, you may have to grab a binary package of R that has it + built with another Fortran compiler, and due to a strange quirk of + packaging, Apple has included the non-GNU version of several file utilities + so you'll have to go get the utilities and compile them yourself. The + installer should catch this deviation and tell you in a (possibly hard to + understand) error message that starts: + "Ugh! What gibberish! The [app] you have certainly does not + taste like GNU [app]." + and then it'll tell you where to get the appropriate one. + + * Microsoft Windows NT & 2000 - these creatures are apparantly POSIX compliant + at some level and in a miracle of programming, the Cygnus people have + provided a toolkit which enables them to behave like a unix system - the + Cygwin tools: + http://sources.redhat.com/cygwin/ [home] + or + http://xfree86.cygwin.com/docs/howto/cygwin-installing.html [fr XFree86] + which gives Windows almost all the resources of Linux/Unix, including an X + server if you install the XFree86 package as well. It's a huge package + (175MB installed), but it's free, very high quality, and capable. Other + more complex systems have been ported to this environment and as far as I + know, almost of the subsystems that GeneX requires can be compiled and run + on the Cygwin platform. + + HOWEVER, we have not done this and we'll probably not have the time for a + while so if there are any enterprising young hackers out there with time on + their grubby little hands looking to help out, this would obviously be a + useful thing to do. + + + What you need before you configure GeneX. + ----------------------------------------- + + - privilege: The phases of installation require different user + privileges. You will need to be able to login as yourself, as + postgres, and as root. + + - Utility software: All recent, Linux distributions include (and + GeneX depends on): + * gnu tar, + * gnu text & file utils + * sendmail (or a sendmail replacement such as exim) + * Perl >=5.005 + * Apache web server, configured to support Server-Side-Includes (see the + Apache documentation about this: + <URL http://httpd.apache.org/docs/mod/mod_include.html>, + especially the tutorial: <URL http://httpd.apache.org/docs/howto/ssi.html> + this can often be done by adding the following lines to your [httpd.conf] + or [srm.conf] file and then rebooting. + + Required Applications + ===================== + - Postgres (>=7.2) => http://www.postgresql.org + + The following link has the latest installation instructions: + + http://www.us.postgresql.org/users-lounge/docs/7.2/postgres/installation.html + + - Pay close attention to the instructions if you are upgrading from a previous version of postgresql. If you have data that + must be migrated to the new version you must follow specific steps before running the upgrade. + + Perl & Using the CPAN shell to install Modules ============================================== We also require the following modules that are not included with the ! standard perl 5.8.0 library: ! DBI - Perl's database interface ! DBD::Pg - the Postgresql DBI driver ! Spreadsheet-ParseExcel-0.2602 - used to parse Excel spread sheets (Affy layouts, Affy data) ! IO-stringy-2.108.tar - used by ParseExcel ! OLE-Storage_Lite-0.10.tar - used by ParseExcel ! The easiest way to get Perl modules is to visit the web site: ! http://search.cpan.org/ ! ! Find the module you want, download the tar or tgz file, unzip/untar, and follow the instructions ! in the INSTALL or README file. ! ! ! In theory, you can install these in a single line by typing: perl -MCAPN -e 'install [module]' ie *************** *** 324,336 **** but setting POSTGRES_INCLUDE wasn't required (YMMV) - * XML::DOM: Requires XML::Parser, which in turn requires that you - have libexpat.so installed. If you do not have libexpat.so, you - can download it from <URL http://sourceforge.net/projects/expat/>. - - One of the tests in XML::XQL seems broken, so 'install - XML::DOM' will fail after all the pre-requisite modules are - installed. Simply running 'force install XML::DOM' after this - will properly install it. - * Ron Ophir notes that when he tried to use CPAN, it bugged him to install 'Bundle::libnet' in order to be able to install NET::FTP. This may cause --- 429,432 ---- *************** *** 406,682 **** ! Installation script Assumptions ! ================================ The installation script assumes: ! - you've already installed the above-mentioned software, especially ! the PostgreSQL database system and have assigned the correct users. ! By default the installation assumes the following: * genex database owner = genex (password=yeastecol1), * user with SELECT only access = readonly (password=readonly). - These are configurable during the installation, so if you want the - user names and passwords to be different, you're free to set them to - whatever you want, provided you have the two accounts. ! - you have a /tmp or other temporary directory that is world ! writable and has enough space for all your temporary files to be ! written to for a day or so, until you decide to clean it out or run ! the included reaper script that will clean up after the hanging files. ! ! B E W A R E that Debian systems automatically clean out /tmp on reboot, so ! you may want to place the temporary files associated with the GeneX ! installation elsewhere. ! - it's acceptable to install the genex files in multiple directories ! around the system: ! 1) CGI-BIN for all the genex scripts (usually installed under ! cgi-bin/genex) ! 2) HTML_ROOT for all the HTML docs and nonCGI forms (ditto) ! 3) LOCAL_ROOT/bin for all the executables and scripts that are ! associated with GeneX. Some of these are useful on their own, ! hence installation in a (usually) universal location. However. also ! see "Suggestions' below for the direction in which we intend to go. ! NB: if you specify a genex directory for the local root (ie: ! '/usr/local/genex' instead of '/usr/local', most of the ! genex-related executables will be installed together, ! allowing easier manipulation or removal of them later on. ! ! 4) The layout immediately below is what we've been basing most of our ! installations on, although we've installed several variants to check ! for breakage. It's up to you as to which layout you use, but you'll ! probably have the best luck if you stick with this one: - [SYSTMP] (ie /tmp, /var/tmp, /usr/tmp, etc) - | - `--genex ! [HTMLDIR] (ie /home/httpd/html) ! `-- genex ! |-- CyberT-Demo ! |-- DTD ! | `-- html ! |-- RCluster-Demo ! |-- cybert ! |-- download ! | |-- curation_tool ! | `-- graphics ! |-- graphics ! |-- gxquery ! |-- include ! |-- mergem ! `-- rcluster ! ! [CGIDIR] (ie /home/httpd/cgi-bin) ! `-- genex ! |-- curation-tool ! |-- cybert ! |-- gxquery ! |-- login ! |-- mergem ! `-- rcluster ! ! ! ! ! Postgres dir (ie /var/lib/pgsql) ! `--base ! `-- genex ! ! [LOCAL_ROOT]/genex (ie /usr/local) ! |-- bin ! |-- cache ! | `-- db2xml ! | |-- cb ! | `-- exp ! |-- lib ! | |-- R ! | | `-- library ! | | |-- hdarray ! | | | `-- R ! | | `-- xgobi ! | | |-- R ! | | |-- R-ex ! | | |-- data ! | | |-- help ! | | |-- html ! | | `-- latex ! | `-- dtd ! | |-- dtd -> /usr/local/genex/lib/dtd ! | `-- genexml-html ! |-- man ! | `-- man3 ! |-- perl5 ! | |-- Bio ! | | `-- Genex ! | |-- RCluster ! | | `-- Services ! | `-- auto ! | `-- Bio ! | `-- Genex ! |-- rcluster ! | |-- bin ! | |-- lib ! | | `-- rcluster ! | | `-- r ! | |-- share ! | | `-- rcluster ! | | `-- sample_input ! | `-- var ! | |-- genex ! | `-- poqs ! | `-- jobs ! | |-- auth ! | |-- finished ! | |-- job9353.xxxxxx [the job files] ! | |-- job9961.xxxxxx ! | `-- request ! `-- submission ! ! ! ! Actually Installing the System ! ============================== ! This section updated May 29, 2002 by Tom Laudeman. ! ! Overview. ! --------- ! 1) Install the parts above. ! 2) su to root. It is almost certain that you'll have to be root. ! 3) cd to the directory formed by untarring the distribution tar file ! (GeneX-Server-[version#]) ! 4) Copy the options template to the local options file. The local options filename ! is hardcoded, so you must name it options.reminders. ! ! % cp options.txt options.reminders ! ! 5) Edit options.reminders so that the options are appropriate for you system ! 6) Edit install-all.pl and fix the #! line if your Perl executable is not in ! the standard location /usr/bin/perl ! 7) Running the install-all.pl script ! ! % ./install-all.pl ! ! or you can save all the output to a file with a command like this example ! for bash: ! ! % ./install-all.pl > install.out 2>&1 ! ! Details. ! -------- ! ! We ship GeneX with a default options.txt file which contains many common defaults. ! However, other options are necessarily different for each site. Options that we felt ! would be sure to differ between sites are gathered in a section near the ! top of the file. ! ! In order to customize settings for your site, copy options.txt to the default site ! settings file called options.reminders. This file name is historical, and may change, ! if for no other reason than file extensions are commonly only 3 characters. ! ! The format of the options file is simple. ! a) lines beginning with # are comments. ! b) comments are not recognized anywhere except at the beginning of a line. ! c) options are in the form ! key = value ! where "key" is the name of the value, and is separated from "value" by an ! equal sign. Space around the = sign is optional. Except for leading and trailing ! whitespace, everything to the left of the = is the key, and everything to the right ! is the value. ! ! The options files have what we hope are useful comments. ! ! If you download a new version of GeneX with a new default options.txt file, your ! settings will be preserved by using the upgrade_options.pl script. However, comments ! you add to options.reminders are not preserved. Settings are preserved, not comments. ! ! Once you have editted options.reminders, you can run the installation ! as often as necessary. As far as we know, running the installation ! does not destroy data, although you should keep backups and be careful. ! ! Since GeneX is not fully mature, it is likely that you will run into ! minor configuration issues, and that you'll need to run install-all.pl ! several times. ! ! The install-all.pl script is semi-smart about checking your settings. ! If you find a place where the response is not what you'd expect, please ! contact one of the developers. ! ! One place where many people have trouble (often because the wrong name is ! picked as the postgres administrator) is at the stage where the skeleton ! database is instantiated. If the script fails at this point all you ! have to do is execute it manually: ! ! su -c 'init-dump.pl' <postgres_admin> ! ! where <postgres_admin> is the postgres admin name, normally 'postgres'. ! For example ! ! % su -c 'init-dump.pl' postgres ! ! Then re-start the installation script as before; it should now pick up that you ! have a working database. ! ! Once the script completes (assuming you have the skeleton database ! instantiated), you can test your GeneX installation by pointing your ! browser to the default URL presented to you at the end of the script. ! ! ! History. ! -------- ! ! Legacy code and files from earlier versions of GeneX may still be present ! in the system, but are not used. You'll see some of these options named ! SKIP_<name> where <name> is the name of some old feature that ! install-all.pl no longer supports. ! ! These have been left more or less intact for historical interest. ! ! ! ! Updating an existing installation. ! ---------------------------------- ! ! You start the update process by downloading a new tar file and ! un-tarring it, or if you originally got your GeneX via CVS, running a ! 'cvs update' command. ! ! If your updated GeneX is installed in the same directory, you only need ! to run upgrade_options.pl and install-al.pl again. If your update is in a ! different directory, copy your options.reminders to the ! new directory, and run upgrade_options.pl and install-all.pl ! ! % cd /home/install/genex/genex-server ! % ./upgrade_options.pl ! % ./install-all.pl ! ! Be sure to keep a copy of options.reminders in a safe place, outside ! the GeneX directory tree. ! ! ! What to do After Installaion. ! ----------------------------- ! ! Post installation you have a functional, but empty GeneX. ! ! 1) Your sysadmin must create a GeneX account for each user via the admin_cli.pl command found in ! the webtools directory where the web site is installed. GeneX accounts are also required for the curators. Unix accounts will be necessary for curators who load array layouts and load actual data files. ! ! 2) The admin or one of the curators must use loadaffylayout.pl to load Affymetrix layout files. There is one layout per chip, and the each layout only needs to be loaded once. ! ! 3) End users (who now have accounts and access via the web pages) need to create new experiment sets, and fill in the meta data. ! ! 4) Curators in your chip wet lab use the web site to lock experiment sets, and fill in data related to the actual sample preparation/annealing/scanning. MAS files ! ! The URL of the web pages will have ! been determined by your sysadmin. Creating new experiment sets is accomplished via the Web interface ! Suggestions ! =========== Please keep track of things that you didn't understand or weren't --- 502,550 ---- ! Installation script Assumptions. ! -------------------------------- The installation script assumes: ! - You've already installed the above-mentioned software, especially ! the PostgreSQL database system and have assigned the correct users. ! By default the installation assumes the following: ! * genex database owner = genex (password=yeastecol1), * user with SELECT only access = readonly (password=readonly). ! These are configurable during the installation, so if you want the ! user names and passwords to be different, you're free to set them to ! whatever you want, provided you have the two accounts. ! - If you checkout GeneX from via the CVS commands, you'll have a directory tree ! something like (our example userid is mst3k): ! /home/mst3k/public_html ! |-- genex-server ! |-- site ! |-- graphics ! |-- webtools ! |-- analysis ! - The layout immediately below is the default GeneX install. It is ! theoretically possible to change this, but we haven't tested any variants. ! There is no separate cgi-bin, since that is a somewhat outdated ! concept. We have Apache configuration instructions to set up ExecCGI ! in the webtools directory. ! [HTMLDIR] (i.e. /var/www/html/) ! -- genex ! |-- graphics ! |-- webtools ! - The GeneX user file repository defaults to /var/genres/<userid>, and ! is owned by apache. ! Suggestions. ! ------------ Please keep track of things that you didn't understand or weren't *************** *** 684,738 **** - 1) It's been suggested that the entirety of the GeneX system gets - installed in a single directory and that all other required locations - be supplied by symlink. Apache is theoretically able to deal with - this arrangement, so it's a possibility. What remains is to see if - enough people want this same thing. This would make the installation - look like this: - - user-defined root (ie /usr/local/genex) symlinked from HTTPD_ROOT - |-- html* - | |-- CyberT-Demo - | |-- DTD - | | `-- html - | |-- RCluster-Demo - | |-- cybert - | |-- download - | | |-- curation_tool - | | `-- graphics - | |-- graphics - | |-- gxquery - | |-- include - | |-- mergem - | `-- rcluster - | - |-- cgi-bin* - | |-- curation-tool - | |-- cybert - | |-- gxquery - | |-- login - | |-- mergem - | `-- rcluster - | - |-- tmp - | - |-- genex-local - | |-- bin - | | '-- local binaries (munge4R.pl, mergem) - | |-- lib - | | `--R - | | `--library - | | |--hdarray (called explicitly from these locations) - | | `--xgobi - | `-- lib - | `--perl5 (Genex.pm) - | - `-- database (set PGDATA2 env variable to point to this location) - `-genex - - - * maybe linked from HTTPD_HTML_ROOT/html/genex or set via - apache Alias/ScriptAlias settings - GeneX Open Source Plug --- 552,555 ---- *************** *** 757,786 **** software with us). ! We have a Bugzilla bug-tracking site set up to monitor bugs, but it's admittedly ! difficult for a beginner to use. While you're welcome to use it, we'd rather ! hear from you in ANY form rather than NOT hear from you in an official Bugzilla ! log, so if you come across a bug, or even something that you think should be ! done differently, please just send us an email at: ge...@nc.... ! Thanks for reading through this to this point. ! <the genex development team> ! * Greg Colello ! * Harry Mangalam ! * Michael Pear (honorary) ! * Jason Stewart ! * Kathy Waugh ! ! > William Anderson ! > Andrew Dalke ! > Carol Harger ! > Peter Hraber ! > Lonnie Montoya ! > Todd Peterson ! > Karen Schlauch ! > Mark Waugh ! > Jennifer Weller ! > Jiaye Zhou ! * - current ! > - alumni (thanks guys!) --- 574,611 ---- software with us). ! We have a Bugzilla bug-tracking site set up to monitor bugs. If you ! Bugzilla doesn't work for you for whatever reason, please email us. ! Thanks to everyone who has helped with testing and suggestions! ! ! Genex 1.5.x developers: ! ! Jae K. Lee ! Jodi Kanter ! Tom Laudeman ! Greg Riddick ! Dawn Adelsberger ! Teela James ! Karen Schlauch ! ! ! Genex 1.4.x developers: ! ! Greg Colello ! Harry Mangalam ! Michael Pear (honorary) ! Jason Stewart ! Kathy Waugh ! William Anderson ! Andrew Dalke ! Carol Harger ! Peter Hraber ! Lonnie Montoya ! Todd Peterson ! Karen Schlauch ! Mark Waugh ! Jennifer Weller ! Jiaye Zhou ! |
From: <tw...@us...> - 2002-12-02 15:38:47
|
Update of /cvsroot/genex/genex-server In directory sc8-pr-cvs1:/tmp/cvs-serv3326 Modified Files: Tag: Rel-1_0_1-branch install-all.pl Log Message: Put in a comment to the effect that we don't use this script. Index: install-all.pl =================================================================== RCS file: /cvsroot/genex/genex-server/Attic/install-all.pl,v retrieving revision 1.84.2.24 retrieving revision 1.84.2.25 diff -C2 -d -r1.84.2.24 -r1.84.2.25 *** install-all.pl 4 Sep 2002 14:12:06 -0000 1.84.2.24 --- install-all.pl 2 Dec 2002 15:38:41 -0000 1.84.2.25 *************** *** 1,3 **** --- 1,6 ---- #!/usr/bin/perl + + # This script has been replaced by install_lib.pl and several make files. + #--------------------------------------------------------------------------# # # *************** *** 80,83 **** --- 83,89 ---- main: { + print " This script has been replaced by install_lib.pl and several make files.\n"; + exit(); + # # Put command line args into a hash %opt, and foreach through %opt copying values into |
From: <tw...@us...> - 2002-12-02 14:40:01
|
Update of /cvsroot/genex/genex-server/site In directory sc8-pr-cvs1:/tmp/cvs-serv26090 Modified Files: Tag: Rel-1_0_1-branch layout_creation.html Log Message: Updated. Index: layout_creation.html =================================================================== RCS file: /cvsroot/genex/genex-server/site/Attic/layout_creation.html,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -C2 -d -r1.1.2.1 -r1.1.2.2 *** layout_creation.html 24 Oct 2002 18:35:16 -0000 1.1.2.1 --- layout_creation.html 2 Dec 2002 14:39:54 -0000 1.1.2.2 *************** *** 2,6 **** <html> <head> ! <title>GeneX: Creating Affymetrix Chip Layout Files</title> </head> --- 2,6 ---- <html> <head> ! <title>Genex Introduction</title> </head> *************** *** 8,14 **** <table width="760" border="0" cellspacing="0" cellpadding="0"> <tr valign="top"> <td width="20"> </td> ! <td width="160"><font face="Verdana, Arial, Helvetica, sans-serif" size="+1"><a href="./index.html">GeneX</a></font></td> ! <td width="580"><font face="Verdana, Arial, Helvetica, sans-serif" size="+1">GeneX: Creating Layout Files for Affymetrix Chips</font> <br> </td> </tr> --- 8,15 ---- <table width="760" border="0" cellspacing="0" cellpadding="0"> <tr valign="top"> <td width="20"> </td> ! <td width="160"><font face="Verdana, Arial, Helvetica, sans-serif" size="+1"><a href="./index.shtml">GeneX</a></font></td> ! <td width="580"><font face="Verdana, Arial, Helvetica, sans-serif" size="+1">GeneX: ! a Collaborative Internet Database and Toolset for Gene Expression Data</font> <br> </td> </tr> *************** *** 35,39 **** instructions below).<br><br> ! The NetAffx method will be more reliable. It also loads faster.<br><br> --- 36,40 ---- instructions below).<br><br> ! The NetAffx method will be more reliable going forward. It also loads faster.<br><br> *************** *** 100,104 **** 2. Click on "interactive query."<br><br> ! 3. To create a custom view with the desired fields, click the "views" tab in the secondary navigation bar (this navigation bar also has "top page" "query" "results" "sessions" and "databanks" tabs). <br><br> 4. Type a name for your custom view in the "view name" text field on the left. <br><br> --- 101,105 ---- 2. Click on "interactive query."<br><br> ! 3. To create a custom view with the desired fields Click the "views" tab in the secondary navigation bar (this navigation bar also has "top page" "query" "results" "sessions" and "databanks" tabs). <br><br> 4. Type a name for your custom view in the "view name" text field on the left. <br><br> |
From: <tw...@us...> - 2002-12-02 14:38:09
|
Update of /cvsroot/genex/genex-server In directory sc8-pr-cvs1:/tmp/cvs-serv24601 Modified Files: Tag: Rel-1_0_1-branch layout.pl Log Message: Updated. Index: layout.pl =================================================================== RCS file: /cvsroot/genex/genex-server/Attic/layout.pl,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -C2 -d -r1.1.2.1 -r1.1.2.2 *** layout.pl 21 Nov 2002 15:57:28 -0000 1.1.2.1 --- layout.pl 2 Dec 2002 14:38:03 -0000 1.1.2.2 *************** *** 20,46 **** # To run loadaffylayout.pl in test mode, call it with --nocommit ! `$wdir/loadaffylayout.pl --name=RT-U34 --input=$ldir/rt-u34.txt --speciesid=53 --login=$uid --dbname=genex >> layout.log`; ! `$wdir/loadaffylayout.pl --name=RN-U34 --input=$ldir/rn-u34.txt --speciesid=53 --login=$uid --dbname=genex >> layout.log`; ! `$wdir/loadaffylayout.pl --name=RG-U34A --input=$ldir/RG-U34A.xls --speciesid=53 --login=$uid --dbname=genex >> layout.log`; ! `$wdir/loadaffylayout.pl --name=RG-U34B --input=$ldir/RG-U34B.xls --speciesid=53 --login=$uid --dbname=genex >> layout.log`; ! `$wdir/loadaffylayout.pl --name=RG-U34C --input=$ldir/RG-U34C.xls --speciesid=53 --login=$uid --dbname=genex >> layout.log`; ! `$wdir/loadaffylayout.pl --name=MG-U74Av2 --input=$ldir/mg-u74av2.txt --speciesid=41 --login=$uid --dbname=genex >> layout.log`; ! `$wdir/loadaffylayout.pl --name=MG-U74Bv2 --input=$ldir/mg-u74bv2.txt --speciesid=41 --login=$uid --dbname=genex >> layout.log`; ! `$wdir/loadaffylayout.pl --name=MG-U74Cv2 --input=$ldir/mg-u74cv2.txt --speciesid=41 --login=$uid --dbname=genex >> layout.log`; ! `$wdir/loadaffylayout.pl --name=Mu11KA --input=$ldir/Mu11KA.xls --speciesid=41 --login=$uid --dbname=genex >> layout.log`; ! `$wdir/loadaffylayout.pl --name=Mu11KB --input=$ldir/Mu11KB.xls --speciesid=41 --login=$uid --dbname=genex >> layout.log`; ! `$wdir/loadaffylayout.pl --name=HG-U133B --input=$ldir/HG-U133b.xls --speciesid=50 --login=$uid --dbname=genex >> layout.log`; ! `$wdir/loadaffylayout.pl --name=HG-U133A --input=$ldir/HG-U133a.xls --speciesid=50 --login=$uid --dbname=genex >> layout.log`; ! `$wdir/loadaffylayout.pl --name=HUFL --input=$ldir/HUFL.xls --speciesid=50 --login=$uid --dbname=genex >> layout.log`; ! `$wdir/loadaffylayout.pl --name=HG-U95Av2 --input=$ldir/HgU95Av2.xls --speciesid=50 --login=$uid --dbname=genex >> layout.log`; ! `$wdir/loadaffylayout.pl --name=HG-U95B --input=$ldir/HG-U95B.xls --speciesid=50 --login=$uid --dbname=genex >> layout.log`; ! `$wdir/loadaffylayout.pl --name=HG-U95C --input=$ldir/HG-U95C.xls --speciesid=50 --login=$uid --dbname=genex >> layout.log`; ! `$wdir/loadaffylayout.pl --name=HG-U95D --input=$ldir/HG-U95D.xls --speciesid=50 --login=$uid --dbname=genex >> layout.log`; ! `$wdir/loadaffylayout.pl --name=HG-U95E --input=$ldir/HG-U95E.xls --speciesid=50 --login=$uid --dbname=genex >> layout.log`; ! `$wdir/loadaffylayout.pl --name=YG-S98 --input=$ldir/YG-S98.xls --speciesid=5 --login=$uid --dbname=genex >> layout.log`; ! `$wdir/loadaffylayout.pl --name=E_coli --input=$ldir/E_coli.xls --speciesid=4 --login=$uid --dbname=genex >> layout.log`; ! `$wdir/loadaffylayout.pl --name=DROSOPHILA --input=$ldir/drosophila.txt --speciesid=44 --login=$uid --dbname=genex >> layout.log`; ! `$wdir/loadaffylayout.pl --name="P.AERUGINOSA" --input=$ldir/p-aeruginosa.txt --speciesid=108 --login=$uid --dbname=genex >> layout.log`; ! `$wdir/loadaffylayout.pl --name=Arabidopsis --input=$ldir/Arabidopsis.xls --speciesid=6 --login=$uid --dbname=genex >> layout.log`; --- 20,48 ---- # To run loadaffylayout.pl in test mode, call it with --nocommit ! chdir($wdir); ! ! `./loadaffylayout.pl --name=RT-U34 --input=$ldir/rt-u34.txt --speciesid=53 --login=$uid --dbname=genex >> layout.log`; ! `./loadaffylayout.pl --name=RN-U34 --input=$ldir/rn-u34.txt --speciesid=53 --login=$uid --dbname=genex >> layout.log`; ! `./loadaffylayout.pl --name=RG-U34A --input=$ldir/RG-U34A.xls --speciesid=53 --login=$uid --dbname=genex >> layout.log`; ! `./loadaffylayout.pl --name=RG-U34B --input=$ldir/RG-U34B.xls --speciesid=53 --login=$uid --dbname=genex >> layout.log`; ! `./loadaffylayout.pl --name=RG-U34C --input=$ldir/RG-U34C.xls --speciesid=53 --login=$uid --dbname=genex >> layout.log`; ! `./loadaffylayout.pl --name=MG-U74Av2 --input=$ldir/mg-u74av2.txt --speciesid=41 --login=$uid --dbname=genex >> layout.log`; ! `./loadaffylayout.pl --name=MG-U74Bv2 --input=$ldir/mg-u74bv2.txt --speciesid=41 --login=$uid --dbname=genex >> layout.log`; ! `./loadaffylayout.pl --name=MG-U74Cv2 --input=$ldir/mg-u74cv2.txt --speciesid=41 --login=$uid --dbname=genex >> layout.log`; ! `./loadaffylayout.pl --name=Mu11KA --input=$ldir/Mu11KA.xls --speciesid=41 --login=$uid --dbname=genex >> layout.log`; ! `./loadaffylayout.pl --name=Mu11KB --input=$ldir/Mu11KB.xls --speciesid=41 --login=$uid --dbname=genex >> layout.log`; ! `./loadaffylayout.pl --name=HG-U133B --input=$ldir/HG-U133b.xls --speciesid=50 --login=$uid --dbname=genex >> layout.log`; ! `./loadaffylayout.pl --name=HG-U133A --input=$ldir/HG-U133a.xls --speciesid=50 --login=$uid --dbname=genex >> layout.log`; ! `./loadaffylayout.pl --name=HUFL --input=$ldir/HUFL.xls --speciesid=50 --login=$uid --dbname=genex >> layout.log`; ! `./loadaffylayout.pl --name=HG-U95Av2 --input=$ldir/HgU95Av2.xls --speciesid=50 --login=$uid --dbname=genex >> layout.log`; ! `./loadaffylayout.pl --name=HG-U95B --input=$ldir/HG-U95B.xls --speciesid=50 --login=$uid --dbname=genex >> layout.log`; ! `./loadaffylayout.pl --name=HG-U95C --input=$ldir/HG-U95C.xls --speciesid=50 --login=$uid --dbname=genex >> layout.log`; ! `./loadaffylayout.pl --name=HG-U95D --input=$ldir/HG-U95D.xls --speciesid=50 --login=$uid --dbname=genex >> layout.log`; ! `./loadaffylayout.pl --name=HG-U95E --input=$ldir/HG-U95E.xls --speciesid=50 --login=$uid --dbname=genex >> layout.log`; ! `./loadaffylayout.pl --name=YG-S98 --input=$ldir/YG-S98.xls --speciesid=5 --login=$uid --dbname=genex >> layout.log`; ! `./loadaffylayout.pl --name=E_coli --input=$ldir/E_coli.xls --speciesid=4 --login=$uid --dbname=genex >> layout.log`; ! `./loadaffylayout.pl --name=DROSOPHILA --input=$ldir/drosophila.txt --speciesid=44 --login=$uid --dbname=genex >> layout.log`; ! `./loadaffylayout.pl --name="P.AERUGINOSA" --input=$ldir/p-aeruginosa.txt --speciesid=108 --login=$uid --dbname=genex >> layout.log`; ! `./loadaffylayout.pl --name=Arabidopsis --input=$ldir/Arabidopsis.xls --speciesid=6 --login=$uid --dbname=genex >> layout.log`; |
From: <tw...@us...> - 2002-12-02 14:35:16
|
Update of /cvsroot/genex/genex-server/site/webtools In directory sc8-pr-cvs1:/tmp/cvs-serv22599 Modified Files: Tag: Rel-1_0_1-branch analysis_tree_lib.pl Added Files: Tag: Rel-1_0_1-branch get_data1.pl Log Message: Fixes. --- NEW FILE: get_data1.pl --- #!/usr/bin/perl use strict; use CGI; use CGI::Carp qw(fatalsToBrowser); require "sessionlib.pl"; main: { my $debug; my $q = new CGI; my $dbh = new_connection(); # sessionlib.pl my $us_fk = get_us_fk($dbh); my %ch = $q->Vars(); # # Turn message param in the form 0m1m2m back into a message text. # Notice the /e regex which evals the right side expression! # $ch{message} =~ s/(\d+)m/messages($1)/eg; # # Show the user a list of hybridizations that are >>readable<< by the user. # my $sth = getq("hybs_readable", $dbh); # getq() is in sql_lib.pl my $owner_sth = getq("hyb_owner_info", $dbh); # args (smp_pk) my $sample_sth = getq("sample_info", $dbh); # args (smp_pk) (my $allhtml,my $loop_template) = readtemplate("get_data1.html"); # readtemplate() is in sessionlib.pl my $e_hr; my $xx = 0; my $select_exp = select_exp($dbh, $us_fk, "ec_pk"); $sth->execute() || die "Query hybs_readable execute failed.\n$DBI::errstr\n"; while($e_hr = $sth->fetchrow_hashref()) { my $data_count_sth = getq("data_count", $dbh); $data_count_sth->execute($e_hr->{am_pk}) || die "Query data_count execute failed. $DBI::errstr\n"; (my $data_count) = $data_count_sth->fetchrow_array(); if ($data_count == 0) { next; } $owner_sth->execute($e_hr->{smp_fk}) || die "Query hyb_owner_info execute failed. $DBI::errstr\n"; $sample_sth->execute($e_hr->{smp_fk}) || die "Query sample_info execute failed. $DBI::errstr\n"; ($e_hr->{login}, $e_hr->{contact_fname}, $e_hr->{contact_lname}) = $owner_sth->fetchrow_array(); ($e_hr->{ec_pk}, $e_hr->{notes}, $e_hr->{abbrev_name}, $e_hr->{description}) = $sample_sth->fetchrow_array(); $e_hr->{select_exp} = fixselect("ec_pk",$e_hr->{ec_pk}, $select_exp); my $loop_instance = $loop_template; $loop_instance =~ s/{(.*?)}/$e_hr->{$1}/g; $loop_instance =~ s/name=\"(.*?)\"/name=\"$1_$xx\"/g; $xx++; $allhtml =~ s/<loop_here>/$loop_instance\n<loop_here>/; } # # This is really lazy, but I can't see why it would fail. It is a tad computationally intensive # but it saves explicitly saying which vars are in checkboxes, and it will # only update checkbox inputs. # foreach my $key (keys(%ch)) { $allhtml = fixradiocheck($key, $ch{$key}, "checkbox", $allhtml); } $allhtml =~ s/<loop_here>//; # remove lingering template loop tag $allhtml =~ s/{(.*?)}/$e_hr->{$1}$ch{$1}/g; # substitute fields outside the loop, especially am_pk $allhtml =~ s/{debug}/$debug/; print "Content-type: text/html\n\n"; print "$allhtml\n"; #$sth->finish(); $owner_sth->finish(); $sample_sth->finish(); $dbh->disconnect; exit(0); } Index: analysis_tree_lib.pl =================================================================== RCS file: /cvsroot/genex/genex-server/site/webtools/Attic/analysis_tree_lib.pl,v retrieving revision 1.1.2.30 retrieving revision 1.1.2.31 diff -C2 -d -r1.1.2.30 -r1.1.2.31 *** analysis_tree_lib.pl 19 Nov 2002 22:16:35 -0000 1.1.2.30 --- analysis_tree_lib.pl 2 Dec 2002 14:35:13 -0000 1.1.2.31 *************** *** 46,57 **** my $sth = getq("select_tree", $dbh); $sth->execute() || die "Query select_tree execute error: $DBI::errstr\n"; ! my $st_html = "<select name=\"tree_pk\">\n"; ! while((my $name, my $tree_pk) = $sth->fetchrow_array()) { ! $st_html .= "<option value=\"$tree_pk\">$name</option>\n"; } - $st_html .= "</select>\n"; - $sth->finish(); - return $st_html; } --- 46,73 ---- my $sth = getq("select_tree", $dbh); $sth->execute() || die "Query select_tree execute error: $DBI::errstr\n"; ! my $do_select = 0; # do the radion button version instead ! if ($do_select == 1) { ! my $st_html = "<select name=\"tree_pk\">\n"; ! while((my $name, my $tree_pk) = $sth->fetchrow_array()) ! { ! $st_html .= "<option value=\"$tree_pk\">$name</option>\n"; ! } ! $st_html .= "</select>\n"; ! $sth->finish(); ! return $st_html; ! } ! else ! { ! my $st_html = ""; ! my $checked = "checked"; ! while((my $name, my $tree_pk) = $sth->fetchrow_array()) ! { ! $st_html .= "<input type=\"radio\" name=\"tree_pk\" value=\"$tree_pk\" $checked> $name<br>\n"; ! $checked = ""; # only set checked on the first one ! } ! $sth->finish(); ! return $st_html; } } |
From: <tw...@us...> - 2002-12-02 14:34:27
|
Update of /cvsroot/genex/genex-server/site/webtools In directory sc8-pr-cvs1:/tmp/cvs-serv21395 Modified Files: Tag: Rel-1_0_1-branch sessionlib.pl Log Message: Fixed a bug in the security code. Records were returned twice due to an incorrect constraint. Index: sessionlib.pl =================================================================== RCS file: /cvsroot/genex/genex-server/site/webtools/Attic/sessionlib.pl,v retrieving revision 1.1.2.11 retrieving revision 1.1.2.12 diff -C2 -d -r1.1.2.11 -r1.1.2.12 *** sessionlib.pl 27 Nov 2002 14:29:49 -0000 1.1.2.11 --- sessionlib.pl 2 Dec 2002 14:34:24 -0000 1.1.2.12 *************** *** 1326,1334 **** my $from = "groupref, grouplink"; my $where = "(groupref.ref_fk=$table.$pkey and ((groupref.us_fk=$userid and groupref.us_fk=grouplink.us_fk and ! grouplink.gs_fk=grouplink.us_fk and (groupref.permissions&128)>0) or --- 1326,1335 ---- my $from = "groupref, grouplink"; + # was grouplink.gs_fk=grouplink.us_fk my $where = "(groupref.ref_fk=$table.$pkey and ((groupref.us_fk=$userid and groupref.us_fk=grouplink.us_fk and ! grouplink.gs_fk=groupref.gs_fk and (groupref.permissions&128)>0) or |
Update of /cvsroot/genex/genex-server/site/webtools In directory sc8-pr-cvs1:/tmp/cvs-serv21683 Modified Files: Tag: Rel-1_0_1-branch index.html chgrp_study2.pl chgrp_order2.pl sql_lib.pl Added Files: Tag: Rel-1_0_1-branch chgrp_file2.pl chgrp_file1.html chgrp_file1.pl Log Message: Add chgrp/permission for files. --- NEW FILE: chgrp_file2.pl --- #!/usr/bin/perl use strict; use CGI; use CGI::Carp qw(fatalsToBrowser); require "./sessionlib.pl"; main: { my $q = new CGI; my $dbh = new_connection(); my %ch = $q->Vars; my $ref_fk = $ch{ref_fk}; my $message = ""; # # This is a powerful (and robust?) way to process # as many _xx fields as existed in the submitted CGI form. # The older scripts counted some field to get a max xx. This is more elegant. # The older stuff also required two hashes %all_ch and %ch. # Here we only have one hash, but the keys must always have the _$xx on the end, # and the keys must always be interpolated. # for(my $xx=0; exists($ch{"gs_fk_$xx"}); $xx++) { my $perm = $ch{"permissions_$xx"}; # # Users can't change user read or user write under most circumstances. # If not user_write, don't allow group_write # if ($ch{"group_read_$xx"}) { $perm |= 040; # 040 octal = 32 decimal } else { $perm &= 0730; # 0730 is 0770-040 or in decimal (511-32) } if ($ch{"group_write_$xx"} && ($ch{"permissions_$xx"} & 0200)) { $perm |= 020; # 020 is 16 decimal } else { $perm &= 0750; # 0750 is 0770-020 or in decimal (511-16) } # # Check that $ch{"select_gs_name_$xx"} is a group I own # The update_db query also has this constraint. # my $sth = getq("select_gs_name", $dbh); $sth->execute() || die "Query select_gs_name execute fails.\n$DBI::errstr\n"; my %gname; while( (my $gs_pk, my $gs_name) = $sth->fetchrow_array()) { $gname{$gs_pk} = $gs_name; } if (exists($gname{$ch{"select_gs_name_$xx"}})) { $sth = getq("update_gp", $dbh); $sth->execute($perm, $ch{"select_gs_name_$xx"}, $ch{"ref_fk_$xx"}) || die "Query update_gp execute fails.\n$DBI::errstr\n"; if ($message !~ m/^21m|m21m/ ) { $message .= "21m"; # see messages() in sessionlib.pl } } else { my $selected_gs = $ch{"select_gs_name_$xx"}; write_log("User is not owner of $selected_gs"); } } $dbh->commit(); $dbh->disconnect(); if ((length($message) > 0)) { my $url = index_url(); # see sessionlib.pl $url =~ s/(.*)\/.*/$1\/chgrp_file1.pl/; print "Location: $url?message=$message\n\n"; exit(); } else { my $url = index_url(); # see sessionlib.pl print "Location: $url\n\n"; } } --- NEW FILE: chgrp_file1.html --- <html><head><title>Manage File group ownership and permissions</title></head> <body bgcolor="#FFFFFF"> <table width="600" border=0 cellpadding=0 cellspacing=0> <tr><td align=top><img src="../graphics/genex_logo.jpg" align="left">Change File group, permissions<br><br> <a href="./">Return to Genex Member Home</a> <br><br clear=all><br> Change the group ownership and/or group read-write permissions.<br> <font color="#FF0000">{message}</font> </td> </tr> </table> <br> <form action="chgrp_file2.pl" method="post"> <input type="submit" name="submit" value="Update"> <table width="800" border=1 cellspacing=0 cellpadding=3> <tr bgcolor="#ccccff"> <td valign=top width="83"> </td> <td valign=top width="99"> Name</td> <td valign=top width="112"> Group</td> <td valign=top width="104"> User Read</td> <td valign=top width="103"> User Write</td> <td valign=top width="127"> Group Read</td> <td valign=top width="114"> Group Write</td> <td valign=top > Permissions (octal)</td> </tr> <loop> <tr> <td valign=top width="84"> </td> <td valign=top width="84"> {file_name} <input type="hidden" name="ref_fk" value="{ref_fk}"> <input type="hidden" name="gs_fk" value="{gs_fk}"> <input type="hidden" name="permissions" value="{permissions}"> </td> <td valign=top width="72"> {select_gs_name} </td> <td valign=top width="105"> {user_read} </td> <td valign=top width="102"> {user_write} </td> <td valign=top width="126"> <input type="checkbox" name="group_read" value="1"> </td> <td valign=top width="110"> <input type="checkbox" name="group_write" value="1"> </td> <td valign=top> {octal_permissions} </td> </tr> </loop> </table> <input type="submit" name="submit" value="Update"> </form> <br> <table width="600" border=0 cellpadding=0 cellspacing=0> <tr> <td align=top valign="top"> Studies are always user read/write, so we don't give you the option of changing those permissions.<br> <br> User (aka owner) read/write permissions are determined by the system. Unlike a computer file systems, we do not allow you to remove read and/or write permissions for yourself. In order to preserve data integrity, some data created by GeneX processes is readable by you, but cannot be overwritten except by the GeneX system.</td> </tr> </table> <p> </p> </body> </html> --- NEW FILE: chgrp_file1.pl --- #!/usr/bin/perl use strict; use CGI; use CGI::Carp qw(fatalsToBrowser); require "sessionlib.pl"; main: { my $q = new CGI; my $dbh = new_connection(); my %ch = $q->Vars(); # # Turn message param in the form 0m1m2m back into a message text. # Use the wonderful and dangerous /e switch to eval the right side # of the regex. See sub messages() in sessionlib.pl # $ch{message} =~ s/(\d+)m/messages($1)/eg; # list all the studies, orders, files I own (my $all_html, my $loop_template) = readtemplate("chgrp_file1.html"); # # Do the whole field_xx thing so all fields are in one big form, # and any number of records can be change with a single submit. # my $sth = getq("files_i_own", $dbh); $sth->execute() || die "Query files_i_own execute fails.\n$DBI::errstr\n"; my $rows = $sth->rows(); my $hr; #hash ref my $xx = 0; while( $hr = $sth->fetchrow_hashref()) { # study_name, ref_fk, gs_fk, gs_name, permissions, user_read, user_write, group_read, group_write $hr->{select_gs_name} = select_gs_name($dbh); # see sessionlib.pl $hr->{octal_permissions} = sprintf("%o", $hr->{permissions}); if ($hr->{user_read} == 1) { $hr->{user_read} = "Yes"; } if ($hr->{user_write} == 1) { $hr->{user_write} = "Yes"; } else { $hr->{user_write} = "Locked"; } my $loop_instance = $loop_template; $loop_instance =~ s/{(.*?)}/$hr->{$1}/gs; $loop_instance = fixselect("select_gs_name", $hr->{gs_fk}, $loop_instance); $loop_instance = fixradiocheck("group_read", $hr->{group_read}, "checkbox", $loop_instance); $loop_instance = fixradiocheck("group_write", $hr->{group_write}, "checkbox", $loop_instance); $loop_instance =~ s/name=\"(.*?)\"/name=\"$1_$xx\"/g; $xx++; $all_html =~ s/<loop_here>/$loop_instance<loop_here>/s; } $all_html =~ s/<loop_here>//s; $all_html =~ s/{(.*?)}/$ch{$1}/sg; print "Content-type: text/html\n\n$all_html\n"; $dbh->disconnect(); } Index: index.html =================================================================== RCS file: /cvsroot/genex/genex-server/site/webtools/Attic/index.html,v retrieving revision 1.1.2.4 retrieving revision 1.1.2.5 diff -C2 -d -r1.1.2.4 -r1.1.2.5 *** index.html 27 Nov 2002 14:29:49 -0000 1.1.2.4 --- index.html 27 Nov 2002 14:49:42 -0000 1.1.2.5 *************** *** 53,60 **** <td bgcolor="#FFFFFF"> <p><a href="files.pl">View my files</a><br> ! Change file group ownership and read/write permissions<br> ! <a href="choose_hybs.pl">Run analysis: Quality Control, Stat Analysis, ! Westfall & Young</a><br> ! View my existing data.<br> <a href="get_data1.pl">Extract data into a file</a><br> <a href="choose_tree.pl">Update an existing Analysis Tree<br> --- 53,57 ---- <td bgcolor="#FFFFFF"> <p><a href="files.pl">View my files</a><br> ! <a href="chgrp_file1.pl">Change file group ownership and read/write permissions</a><br> <a href="get_data1.pl">Extract data into a file</a><br> <a href="choose_tree.pl">Update an existing Analysis Tree<br> Index: chgrp_study2.pl =================================================================== RCS file: /cvsroot/genex/genex-server/site/webtools/Attic/chgrp_study2.pl,v retrieving revision 1.1.2.2 retrieving revision 1.1.2.3 diff -C2 -d -r1.1.2.2 -r1.1.2.3 *** chgrp_study2.pl 26 Nov 2002 21:36:12 -0000 1.1.2.2 --- chgrp_study2.pl 27 Nov 2002 14:49:42 -0000 1.1.2.3 *************** *** 15,19 **** my $message = ""; - # # This is a powerful (and robust?) way to process --- 15,18 ---- *************** *** 47,53 **** $perm &= 0750; # 0750 is 0770-020 or in decimal (511-16) } ! my $tp = ($ch{"permissions_$xx"} & 0200); ! my $pp = $ch{"permissions_$xx"}; ! write_log("tp:$tp p:$pp"); # # Check that $ch{"select_gs_name_$xx"} is a group I own --- 46,50 ---- $perm &= 0750; # 0750 is 0770-020 or in decimal (511-16) } ! # # Check that $ch{"select_gs_name_$xx"} is a group I own Index: chgrp_order2.pl =================================================================== RCS file: /cvsroot/genex/genex-server/site/webtools/Attic/chgrp_order2.pl,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -C2 -d -r1.1.2.1 -r1.1.2.2 *** chgrp_order2.pl 26 Nov 2002 21:36:11 -0000 1.1.2.1 --- chgrp_order2.pl 27 Nov 2002 14:49:42 -0000 1.1.2.2 *************** *** 20,24 **** my $message = ""; - # # This is a powerful (and robust?) way to process --- 20,23 ---- *************** *** 52,58 **** $perm &= 0750; # 0750 is 0770-020 or in decimal (511-16) } ! my $tp = ($ch{"permissions_$xx"} & 0200); ! my $pp = $ch{"permissions_$xx"}; ! write_log("tp:$tp p:$pp"); # # Check that $ch{"select_gs_name_$xx"} is a group I own --- 51,55 ---- $perm &= 0750; # 0750 is 0770-020 or in decimal (511-16) } ! # # Check that $ch{"select_gs_name_$xx"} is a group I own Index: sql_lib.pl =================================================================== RCS file: /cvsroot/genex/genex-server/site/webtools/Attic/sql_lib.pl,v retrieving revision 1.1.2.17 retrieving revision 1.1.2.18 diff -C2 -d -r1.1.2.17 -r1.1.2.18 *** sql_lib.pl 26 Nov 2002 21:36:12 -0000 1.1.2.17 --- sql_lib.pl 27 Nov 2002 14:49:42 -0000 1.1.2.18 *************** *** 235,239 **** ORDER BY order_number"; - } elsif ($q_name eq "select_smp_pk") --- 235,238 ---- *************** *** 244,247 **** --- 243,271 ---- { $sql = "select am_pk,permissions from arraymeasurement,groupref where smp_fk=? and ref_fk=am_pk"; + } + elsif ($q_name eq "files_i_own") + { + my $us_fk = get_us_fk($dbh); + $sql = " + SELECT + file_name, + ref_fk, + gs_fk, + gs_name, + permissions, + (permissions&256=256) as user_read, + (permissions&128=128) as user_write, + (permissions&32=32) as group_read, + (permissions&16=16) as group_write + FROM + file_info,groupref,groupsec + WHERE + groupref.us_fk=$us_fk AND + groupref.gs_fk=groupsec.gs_pk AND + (groupref.us_fk=groupsec.gs_owner OR + groupsec.gs_pk=groupsec.gs_owner) AND + ref_fk=fi_pk + ORDER BY + file_name"; } |
Update of /cvsroot/genex/genex-server/site/webtools In directory sc8-pr-cvs1:/tmp/cvs-serv14308 Modified Files: Tag: Rel-1_0_1-branch delete_order1.html delete_order1.pl sessionlib.pl choose_order.pl choose_order.html choose_study.html choose_study.pl edit_study1.pl edit_study1.html edit_study2.pl index.html Log Message: improved look and feel for choose/delete orders and studies Index: delete_order1.html =================================================================== RCS file: /cvsroot/genex/genex-server/site/webtools/Attic/delete_order1.html,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -C2 -d -r1.1.2.1 -r1.1.2.2 *** delete_order1.html 24 Oct 2002 18:26:53 -0000 1.1.2.1 --- delete_order1.html 27 Nov 2002 14:29:48 -0000 1.1.2.2 *************** *** 8,13 **** </table> ! <a href="./">Cancel</a> ! <br> <br> <loop> --- 8,12 ---- </table> ! <a href="./choose_order.pl">Cancel</a> <br> <br> <loop> Index: delete_order1.pl =================================================================== RCS file: /cvsroot/genex/genex-server/site/webtools/Attic/delete_order1.pl,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -C2 -d -r1.1.2.1 -r1.1.2.2 *** delete_order1.pl 24 Oct 2002 18:26:53 -0000 1.1.2.1 --- delete_order1.pl 27 Nov 2002 14:29:49 -0000 1.1.2.2 *************** *** 58,62 **** $sc_sth->execute($rec->{oi_pk}) || die "$sc_sql\n$DBI::errstr\n"; ($rec->{number_of_samples}) = $sc_sth->fetchrow_array(); ! ($rec->{sample_info}) = sample_info($dbh, $us_fk, $rec->{oi_pk}); my $loop_instance = $loop_template; $loop_instance =~ s/{(.*?)}/$rec->{$1}/g; --- 58,62 ---- $sc_sth->execute($rec->{oi_pk}) || die "$sc_sql\n$DBI::errstr\n"; ($rec->{number_of_samples}) = $sc_sth->fetchrow_array(); ! ($rec->{sample_info}) = sample_info($dbh, $us_fk, $rec->{oi_pk}); # ignore the second returned value my $loop_instance = $loop_template; $loop_instance =~ s/{(.*?)}/$rec->{$1}/g; *************** *** 64,94 **** } return $looplist; - } - - sub sample_info - { - (my $dbh, my $us_fk, my $oi_pk) = @_; - - (my $fclause, my $wclause) = read_where_clause("sample", "smp_pk", $us_fk ); - my $sql = "select smp_pk,timestamp, exp_condition.name, study.study_name from sample,exp_condition,study,$fclause where study.sty_pk=exp_condition.sty_fk and exp_condition.ec_pk=sample.ec_fk and oi_fk=$oi_pk and $wclause order by smp_pk"; - my $sth = $dbh->prepare($sql) || die "$sql\n$DBI::errstr\n"; - $sth->execute() || die "$sql\n$DBI::errstr\n"; - - my $hyb_sql = "select count(am_pk) from arraymeasurement where smp_fk=?"; - my $hyb_sth = $dbh->prepare($hyb_sql); - - my $rec; - my $results; - my $xx = 0; - while($rec = $sth->fetchrow_hashref()) - { - $hyb_sth->execute($rec->{smp_pk}); - ($rec->{number_of_hybridizations}) = $hyb_sth->fetchrow_array(); - $rec->{timestamp} = sql2date($rec->{timestamp}); - $xx++; # we want a one's based counting number in the line below, so increment here. - $results .= "$xx: $rec->{study_name} / $rec->{name} / $rec->{timestamp} / $rec->{number_of_hybridizations}<br>"; - } - - return ($results, $xx); } --- 64,67 ---- Index: sessionlib.pl =================================================================== RCS file: /cvsroot/genex/genex-server/site/webtools/Attic/sessionlib.pl,v retrieving revision 1.1.2.10 retrieving revision 1.1.2.11 diff -C2 -d -r1.1.2.10 -r1.1.2.11 *** sessionlib.pl 26 Nov 2002 21:36:12 -0000 1.1.2.10 --- sessionlib.pl 27 Nov 2002 14:29:49 -0000 1.1.2.11 *************** *** 58,61 **** --- 58,112 ---- } + # called from choose_order.pl + # and delete_order1.pl + + sub sample_info + { + (my $dbh, my $us_fk, my $oi_pk) = @_; + my $message; + + (my $fclause, my $wclause) = read_where_clause("sample", "smp_pk", $us_fk ); + my $sql = "select smp_pk,timestamp, exp_condition.name, study.study_name from sample,exp_condition,study,$fclause where study.sty_pk=exp_condition.sty_fk and exp_condition.ec_pk=sample.ec_fk and oi_fk=$oi_pk and $wclause order by smp_pk"; + my $sth = $dbh->prepare($sql) || die "$sql\n$DBI::errstr\n"; + $sth->execute() || die "$sql\n$DBI::errstr\n"; + my $scc_sth = getq("sample_chip_check", $dbh); + + my $hyb_sql = "select count(am_pk) from arraymeasurement where smp_fk=?"; + my $hyb_sth = $dbh->prepare($hyb_sql); + + my $temp = verify_order($dbh, $oi_pk); + if ($message !~ m/^$temp|m$temp/) + { + $message .= "$temp"; + } + + + my $rec; + my $results; + my $xx = 0; + my $hyb_check; + $results = "<table border=\"1\" width=\"100%\" cellpadding=\"3\" cellspacing=\"0\">\n"; + $results .= "<tr><td> </td><td valign=\"top\"><div align=\"center\">Study name</div></td><td valign=\"top\"><div align=\"center\">Procotol name</div></td><td valign=\"top\"><div align=\"center\">Run date</div></td><td valign=\"top\"><div align=\"center\">Number of hybridizations</div></td></tr>\n"; + + while($rec = $sth->fetchrow_hashref()) + { + $scc_sth->execute($rec->{smp_pk}) || die "Query sample_chip_check execute fails. $DBI::errstr\n"; + ($hyb_check) = $scc_sth->fetchrow_array(); + if (($hyb_check > 0) && + $message !~ m/^19m|m19m/) + { + $message .= "19m"; + } + + $hyb_sth->execute($rec->{smp_pk}); + ($rec->{number_of_hybridizations}) = $hyb_sth->fetchrow_array(); + $rec->{timestamp} = sql2date($rec->{timestamp}); + $xx++; # we want a one's based counting number in the line below, so increment here. + $results .= "<tr><td valign=\"top\">$xx</td><td valign=\"top\"><div align=\"center\">$rec->{study_name}</div></td><td valign=\"top\"><div align=\"center\">$rec->{name}</div></td><td valign=\"top\"><div align=\"center\">$rec->{timestamp}</div></td><td valign=\"top\"><div align=\"center\">$rec->{number_of_hybridizations}</div></td></tr>\n"; + } + $results .= "</table>\n"; + return ($results, $message); + } + sub select_gs_name { Index: choose_order.pl =================================================================== RCS file: /cvsroot/genex/genex-server/site/webtools/Attic/choose_order.pl,v retrieving revision 1.1.2.3 retrieving revision 1.1.2.4 diff -C2 -d -r1.1.2.3 -r1.1.2.4 *** choose_order.pl 18 Nov 2002 21:20:53 -0000 1.1.2.3 --- choose_order.pl 27 Nov 2002 14:29:49 -0000 1.1.2.4 *************** *** 65,69 **** $sc_sth->execute($rec->{oi_pk}) || die "$sc_sql\n$DBI::errstr\n"; ($rec->{number_of_samples}) = $sc_sth->fetchrow_array(); ! ($rec->{sample_info}) = sample_info($dbh, $us_fk, $rec->{oi_pk}); my $loop_instance = $loop_template; $message =~ s/(\d+)m/messages($1)/eg; --- 65,70 ---- $sc_sth->execute($rec->{oi_pk}) || die "$sc_sql\n$DBI::errstr\n"; ($rec->{number_of_samples}) = $sc_sth->fetchrow_array(); ! ($rec->{sample_info}, my $temp_msg) = sample_info($dbh, $us_fk, $rec->{oi_pk}); ! $message .= $temp_msg; my $loop_instance = $loop_template; $message =~ s/(\d+)m/messages($1)/eg; *************** *** 75,119 **** } - sub sample_info - { - (my $dbh, my $us_fk, my $oi_pk) = @_; - - (my $fclause, my $wclause) = read_where_clause("sample", "smp_pk", $us_fk ); - my $sql = "select smp_pk,timestamp, exp_condition.name, study.study_name from sample,exp_condition,study,$fclause where study.sty_pk=exp_condition.sty_fk and exp_condition.ec_pk=sample.ec_fk and oi_fk=$oi_pk and $wclause order by smp_pk"; - my $sth = $dbh->prepare($sql) || die "$sql\n$DBI::errstr\n"; - $sth->execute() || die "$sql\n$DBI::errstr\n"; - my $scc_sth = getq("sample_chip_check", $dbh); - - my $hyb_sql = "select count(am_pk) from arraymeasurement where smp_fk=?"; - my $hyb_sth = $dbh->prepare($hyb_sql); - - my $temp = verify_order($dbh, $oi_pk); - if ($message !~ m/^$temp|m$temp/) - { - $message .= "$temp"; - } - - - my $rec; - my $results; - my $xx = 0; - my $hyb_check; - while($rec = $sth->fetchrow_hashref()) - { - $scc_sth->execute($rec->{smp_pk}) || die "Query sample_chip_check execute fails. $DBI::errstr\n"; - ($hyb_check) = $scc_sth->fetchrow_array(); - if (($hyb_check > 0) && - $message !~ m/^19m|m19m/) - { - $message .= "19m"; - } - - $hyb_sth->execute($rec->{smp_pk}); - ($rec->{number_of_hybridizations}) = $hyb_sth->fetchrow_array(); - $rec->{timestamp} = sql2date($rec->{timestamp}); - $xx++; # we want a one's based counting number in the line below, so increment here. - $results .= "$xx: $rec->{study_name} / $rec->{name} / $rec->{timestamp} / $rec->{number_of_hybridizations}<br>"; - } - return ($results, $xx); - } --- 76,78 ---- Index: choose_order.html =================================================================== RCS file: /cvsroot/genex/genex-server/site/webtools/Attic/choose_order.html,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -C2 -d -r1.1.2.1 -r1.1.2.2 *** choose_order.html 24 Oct 2002 18:26:53 -0000 1.1.2.1 --- choose_order.html 27 Nov 2002 14:29:49 -0000 1.1.2.2 *************** *** 8,49 **** </table> ! Orders with zero for "Number of hybridizations" for any sample are not complete. ! <br><br> ! After the BRF has accepted your order, you will not be able to change it. ! <br><br> ! ! <a href="./">Cancel</a> ! <br> ! <br> ! <loop> ! ! <table width=700 border=1 cellpadding=0 cellspacing=0> ! <tr> ! <td valign="top"> ! <form action="edit_sample1.pl" method=POST> ! <input type=hidden name="oi_pk" value="{oi_pk}"> ! <input type=submit name="submit" value="Edit/View"> ! <br><br> ! Order number: <b>{order_number}</b><br> ! Number of samples: {number_of_samples}<br> ! Study name / Protocol name / Run date / Number of hybridizations<br> ! {sample_info} ! </form> ! </td> ! <td valign="top" width="30%"> ! ! <form action="delete_order1.pl" method=POST> ! <input type="hidden" name="oi_pk" value="{oi_pk}"> ! <input type="submit" name="submit" value="Delete"> ! </form> ! ! </td> ! </tr> </table> - - </loop> - - <br> <br> </body> </html> --- 8,68 ---- </table> ! <p>Orders with zero for "Number of hybridizations" for any sample are not complete. ! <br> ! <br> ! After the BRF has accepted your order, you will not be able to change it. <br> ! <br> ! <a href="./">Cancel</a> </p> ! <loop> ! <table width="750" border="0" cellspacing="0" cellpadding="3"> ! <tr> ! <td bgcolor="#99CC99"> ! <table width="100%" border="0" cellspacing="5" cellpadding="0" bgcolor="#FFFFFF"> ! <tr> ! <td width="70%"> ! <form action="edit_sample1.pl" method=POST> ! <div align="right"> ! <input type=hidden name="oi_pk" value="{oi_pk}"> ! <input type=submit name="submit" value="Edit/View {order_number}"> ! <input type="image" border="0" name="imageField" src="../graphics/pencil.gif" width="25" height="25"> ! </div> ! </form> ! </td> ! <td width="30%"> </td> ! </tr> ! <tr> ! <td width="70%"> ! <div align="right">Order number:<b></b></div> ! </td> ! <td width="30%">{order_number}</td> ! </tr> ! <tr> ! <td width="70%"> ! <div align="right">Number of samples:</div> ! </td> ! <td width="30%">{number_of_samples}</td> ! </tr> ! <tr> ! <td width="70%">{sample_info} </td> ! <td width="30%"> </td> ! </tr> ! <tr> ! <td width="70%"> ! <form action="delete_order1.pl" method=POST> ! <div align="right"> ! <input type="hidden" name="oi_pk" value="{oi_pk}"> ! <input type="submit" name="submit" value="Delete {order_number}"> ! <input type="image" border="0" name="imageField2" src="../graphics/trash.gif" width="25" height="25"> ! </div> ! </form> ! </td> ! <td width="30%"> </td> ! </tr> ! </table> ! </td> ! </tr> </table> <br> + </loop> <br> </body> </html> Index: choose_study.html =================================================================== RCS file: /cvsroot/genex/genex-server/site/webtools/Attic/choose_study.html,v retrieving revision 1.1.2.2 retrieving revision 1.1.2.3 diff -C2 -d -r1.1.2.2 -r1.1.2.3 *** choose_study.html 21 Nov 2002 18:48:48 -0000 1.1.2.2 --- choose_study.html 27 Nov 2002 14:29:49 -0000 1.1.2.3 *************** *** 9,41 **** <a href="./">Cancel</a><br><br> ! ! <loop> ! <table width="600" border=1 cellspacing=0 cellpadding=3> ! <tr> ! <td valign="top"> ! <form action="edit_study1.pl" method="post"> ! <input type=hidden name="sty_pk" value="{sty_pk}"> ! <input type=submit name=submit value="Edit {name}"> ! <br><br> ! Study name: {study_name}<br> ! Date started: {start_date}<br> ! Comments: {sty_comments}<br> ! Number of conditions: {number_of_conditions} ! </form> ! <br><br> ! </td> ! <td valign=top width="30%"> ! <form action="delete_study.pl" method="post"> ! <input type="hidden" name="sty_pk" value="{sty_pk}"> ! <input type="submit" name="submit" value="Delete {name}"> ! </form> ! ! </td> ! </tr> </table> - - </loop> - <br> <br> </body> --- 9,71 ---- <a href="./">Cancel</a><br><br> ! <loop> ! <table width="700" border=0 cellspacing=0 cellpadding=3> ! <tr> ! <td valign="top" bgcolor="#99CC99"> ! <table width="100%" border="0" cellspacing="5" cellpadding="0" bgcolor="#FFFFFF"> ! <tr> ! <td width="70%"> ! <form action="edit_study1.pl" method="post"> ! <div align="right"> ! <input type=submit name=submit2 value="Edit {study_name}"> ! <input type="image" border="0" name="imageField" src="../graphics/pencil.gif" width="25" height="25"> ! <input type=hidden name="sty_pk" value="{sty_pk}"> ! </div> ! </form> ! </td> ! <td width="30%"> </td> ! </tr> ! <tr> ! <td width="70%"> ! <div align="right">Study name:</div> ! </td> ! <td width="30%">{study_name}</td> ! </tr> ! <tr> ! <td width="70%"> ! <div align="right">Date started:</div> ! </td> ! <td width="30%">{start_date}</td> ! </tr> ! <tr> ! <td width="70%"> ! <div align="right">Comments:</div> ! </td> ! <td width="30%">{sty_comments}</td> ! </tr> ! <tr> ! <td width="70%"> ! <div align="right">Number of conditions:</div> ! </td> ! <td width="30%">{number_of_conditions}</td> ! </tr> ! <tr> ! <td width="70%"> ! <form action="delete_study1.pl" method="post"> ! <div align="right"> ! <input type="submit" name="submit" value="Delete {study_name}"> ! <input type="image" border="0" name="imageField2" src="../graphics/trash.gif" width="25" height="25"> ! <input type="hidden" name="sty_pk" value="{sty_pk}"> ! </div> ! </form> ! </td> ! <td width="30%"> </td> ! </tr> ! </table> ! </td> ! </tr> </table> <br> + </loop> <br> <br> </body> Index: choose_study.pl =================================================================== RCS file: /cvsroot/genex/genex-server/site/webtools/Attic/choose_study.pl,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -C2 -d -r1.1.2.1 -r1.1.2.2 *** choose_study.pl 24 Oct 2002 18:26:53 -0000 1.1.2.1 --- choose_study.pl 27 Nov 2002 14:29:49 -0000 1.1.2.2 *************** *** 31,34 **** --- 31,38 ---- while($s_hr = $sth->fetchrow_hashref()) { + # when lab work started + $s_hr->{start_date} = sql2date($s_hr->{start_date}); + + # when the record was created $s_hr->{study_date} = sql2date($s_hr->{study_date}); Index: edit_study1.pl =================================================================== RCS file: /cvsroot/genex/genex-server/site/webtools/Attic/edit_study1.pl,v retrieving revision 1.1.2.2 retrieving revision 1.1.2.3 diff -C2 -d -r1.1.2.2 -r1.1.2.3 *** edit_study1.pl 21 Nov 2002 18:48:48 -0000 1.1.2.2 --- edit_study1.pl 27 Nov 2002 14:29:49 -0000 1.1.2.3 *************** *** 59,62 **** --- 59,64 ---- (($ch{study_name}, $ch{sty_comments}, $ch{start_date}) = $dbh->selectrow_array($sql)) || die "$sql\n$DBI::errstr\n" ; + # The record creation date of the study is study_date + # The date work on the study started. $ch{start_date} = sql2date($ch{start_date}); Index: edit_study1.html =================================================================== RCS file: /cvsroot/genex/genex-server/site/webtools/Attic/edit_study1.html,v retrieving revision 1.1.2.3 retrieving revision 1.1.2.4 diff -C2 -d -r1.1.2.3 -r1.1.2.4 *** edit_study1.html 21 Nov 2002 18:48:48 -0000 1.1.2.3 --- edit_study1.html 27 Nov 2002 14:29:49 -0000 1.1.2.4 *************** *** 77,83 **** <tr> ! <td valign="top"><div align="right">* Short name (5 chars. max) </div></td> <td> ! <input type="text" name="abbrev_name" value="{abbrev_name}" size="6" maxlength="5"> </td> </tr> --- 77,83 ---- <tr> ! <td valign="top"><div align="right">* Short name (6 chars. max) </div></td> <td> ! <input type="text" name="abbrev_name" value="{abbrev_name}" size="10" maxlength="6"> </td> </tr> Index: edit_study2.pl =================================================================== RCS file: /cvsroot/genex/genex-server/site/webtools/Attic/edit_study2.pl,v retrieving revision 1.1.2.2 retrieving revision 1.1.2.3 diff -C2 -d -r1.1.2.2 -r1.1.2.3 *** edit_study2.pl 21 Nov 2002 18:48:48 -0000 1.1.2.2 --- edit_study2.pl 27 Nov 2002 14:29:49 -0000 1.1.2.3 *************** *** 197,201 **** } ! if (length($ch{abbrev_name}) > 5 && $message !~ m/^10m|m10m/ ) { --- 197,201 ---- } ! if (length($ch{abbrev_name}) > 6 && $message !~ m/^10m|m10m/ ) { Index: index.html =================================================================== RCS file: /cvsroot/genex/genex-server/site/webtools/Attic/index.html,v retrieving revision 1.1.2.3 retrieving revision 1.1.2.4 diff -C2 -d -r1.1.2.3 -r1.1.2.4 *** index.html 26 Nov 2002 21:36:12 -0000 1.1.2.3 --- index.html 27 Nov 2002 14:29:49 -0000 1.1.2.4 *************** *** 36,40 **** <a href="choose_order.pl">Update an existing order</a><br> <a href="view_orders.pl">View all orders</a><br> ! Change order group ownership and read/write permissions<br> <br> Build an order. Describe the samples that you'll deliver to the chip --- 36,41 ---- <a href="choose_order.pl">Update an existing order</a><br> <a href="view_orders.pl">View all orders</a><br> ! <a href="chgrp_order1.pl">Change order group ownership and read/write ! permissions</a><br> <br> Build an order. Describe the samples that you'll deliver to the chip |
From: <tw...@us...> - 2002-11-27 14:29:04
|
Update of /cvsroot/genex/genex-server/site/webtools In directory sc8-pr-cvs1:/tmp/cvs-serv13935 Modified Files: Tag: Rel-1_0_1-branch delete_study1.html Log Message: improved look and feel for choose and delete orders and studies Index: delete_study1.html =================================================================== RCS file: /cvsroot/genex/genex-server/site/webtools/Attic/delete_study1.html,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -C2 -d -r1.1.2.1 -r1.1.2.2 *** delete_study1.html 24 Oct 2002 18:26:53 -0000 1.1.2.1 --- delete_study1.html 27 Nov 2002 14:29:01 -0000 1.1.2.2 *************** *** 8,22 **** </table> ! <a href="./">Cancel</a><br><br> <table width="600" border=1 cellspacing=0 cellpadding=3> <tr> ! <td valign="top"> ! <form action="edit_study1.pl" method="post"> ! <input type="hidden" name="sty_pk" value="{sty_pk}"> ! <input type="submit" name="submit" value="Edit "{study_name}""> ! </form> ! <br> ! Are you sure you want to delete study "{study_name}"? ! <br><br> Study name: {study_name}<br> Date started: {start_date}<br> --- 8,18 ---- </table> ! <a href="./choose_study.pl">Cancel</a><br> ! <br> <table width="600" border=1 cellspacing=0 cellpadding=3> <tr> ! <td valign="top"> Are you sure you want to delete study "{study_name}"? ! <br> ! <br> Study name: {study_name}<br> Date started: {start_date}<br> |
From: <tw...@us...> - 2002-11-26 21:36:15
|
Update of /cvsroot/genex/genex-server/site/webtools In directory sc8-pr-cvs1:/tmp/cvs-serv5595 Modified Files: Tag: Rel-1_0_1-branch sql_lib.pl chgrp_study2.pl chgrp_study1.html chgrp_study1.pl sessionlib.pl index.html Added Files: Tag: Rel-1_0_1-branch chgrp_order2.pl chgrp_order1.html chgrp_order1.pl Log Message: chgrp and chmod for orders, sample and hybs. Samples and hybs inherit the order group and privs. This is working. Add chgrp links to the home page. Move select_gs_name to sessionlib.pl since it is identical for studies and orders (and probably for files too). --- NEW FILE: chgrp_order2.pl --- #!/usr/bin/perl use strict; use CGI; use CGI::Carp qw(fatalsToBrowser); require "./sessionlib.pl"; # You can test this with a query like: # select ref_fk,gs_fk,permissions from groupref where ref_fk in ((select smp_pk from sample,arraymeasurement where oi_fk=51 and smp_fk=smp_pk) union (select am_pk from sample,arraymeasurement where oi_fk=51 and smp_fk=smp_pk)); # where you put in the oi_pk of your choice instead of 51. main: { my $q = new CGI; my $dbh = new_connection(); my %ch = $q->Vars; my $ref_fk = $ch{ref_fk}; my $message = ""; # # This is a powerful (and robust?) way to process # as many _xx fields as existed in the submitted CGI form. # The older scripts counted some field to get a max xx. This is more elegant. # The older stuff also required two hashes %all_ch and %ch. # Here we only have one hash, but the keys must always have the _$xx on the end, # and the keys must always be interpolated. # for(my $xx=0; exists($ch{"gs_fk_$xx"}); $xx++) { my $perm = $ch{"permissions_$xx"}; # # Users can't change user read or user write under most circumstances. # If not user_write, don't allow group_write # if ($ch{"group_read_$xx"}) { $perm |= 040; # 040 octal = 32 decimal } else { $perm &= 0730; # 0730 is 0770-040 or in decimal (511-32) } if ($ch{"group_write_$xx"} && ($ch{"permissions_$xx"} & 0200)) { $perm |= 020; # 020 is 16 decimal } else { $perm &= 0750; # 0750 is 0770-020 or in decimal (511-16) } my $tp = ($ch{"permissions_$xx"} & 0200); my $pp = $ch{"permissions_$xx"}; write_log("tp:$tp p:$pp"); # # Check that $ch{"select_gs_name_$xx"} is a group I own # The update_db query also has this constraint. # my $sth = getq("select_gs_name", $dbh); $sth->execute() || die "Query select_gs_name execute fails.\n$DBI::errstr\n"; my %gname; while( (my $gs_pk, my $gs_name) = $sth->fetchrow_array()) { $gname{$gs_pk} = $gs_name; } if (exists($gname{$ch{"select_gs_name_$xx"}})) { $sth = getq("update_gp", $dbh); $sth->execute($perm, $ch{"select_gs_name_$xx"}, $ch{"ref_fk_$xx"}) || die "Query update_gp execute fails.\n$DBI::errstr\n"; if ($message !~ m/^21m|m21m/ ) { $message .= "21m"; # see messages() in sessionlib.pl } # # The sample table has an oi_fk. Table arraymeasurement has an smp_fk. Therefore # it makes sense to call some hybridization permissions code from inside the loop # where we know the smp_pk. # set_sample_hyb_perms($dbh, $ch{"ref_fk_$xx"}, $perm, $ch{"select_gs_name_$xx"}); } else { my $selected_gs = $ch{"select_gs_name_$xx"}; write_log("User is not owner of $selected_gs"); } } $dbh->commit(); $dbh->disconnect(); if ((length($message) > 0)) { my $url = index_url(); # see sessionlib.pl $url =~ s/(.*)\/.*/$1\/chgrp_order1.pl/; print "Location: $url?message=$message\n\n"; exit(); } else { my $url = index_url(); # see sessionlib.pl print "Location: $url\n\n"; } } sub set_sample_hyb_perms { my $dbh = $_[0]; my $oi_pk = $_[1]; my $permissions = $_[2]; my $gs_fk = $_[3]; my $smp_sth = getq("select_smp_pk", $dbh); my $am_sth = getq("select_am_pk", $dbh); my $update_sth = getq("update_gp", $dbh); $smp_sth->execute($oi_pk) || die "Query select_smp_pk execute fails.\n$DBI::errstr\n"; while( (my $smp_pk, my $smp_permissions) = $smp_sth->fetchrow_array()) { $am_sth->execute($smp_pk) || die "Query select_am_pk excute fails.\n $DBI::errstr\n"; while( (my $am_pk, my $am_permissions) = $am_sth->fetchrow_array()) { # Yes, we are ignoring $am_permissions that we just got back from the db. $update_sth->execute($permissions, $gs_fk, $am_pk); } # Yes, we are ignoring $smp_permissions that we just got back from the db. $update_sth->execute($permissions, $gs_fk, $smp_pk); } } --- NEW FILE: chgrp_order1.html --- <html><head><title>Manage Order group ownership and permissions</title></head> <body bgcolor="#FFFFFF"> <table width="600" border=0 cellpadding=0 cellspacing=0> <tr> <td align=top><img src="../graphics/genex_logo.jpg" align="left">Change Order group, permissions<br> <br> <a href="./">Return to Genex Member Home</a> <br><br clear=all><br> Change the group and/or read-write permissions of your orders.<br> Samples and hybridizations within a given order will be given the same permissions as the order.<br> <font color="#FF0000">{message}</font> </td> </tr> </table> <br> <form action="chgrp_order2.pl" method="post"> <input type="submit" name="submit" value="Update"> <table width="800" border=1 cellspacing=0 cellpadding=3> <tr bgcolor="#ccccff"> <td valign=top width="83"> </td> <td valign=top width="99"> Name</td> <td valign=top width="112"> Group</td> <td valign=top width="104"> User Read</td> <td valign=top width="103"> User Write</td> <td valign=top width="127"> Group Read</td> <td valign=top width="114"> Group Write</td> <td valign=top > Permissions (octal)</td> </tr> <loop> <tr> <td valign=top width="84"> </td> <td valign=top width="84"> {order_number} <input type="hidden" name="ref_fk" value="{ref_fk}"> <input type="hidden" name="gs_fk" value="{gs_fk}"> <input type="hidden" name="permissions" value="{permissions}"> </td> <td valign=top width="72"> {select_gs_name} </td> <td valign=top width="105"> {user_read} </td> <td valign=top width="102"> {user_write} </td> <td valign=top width="126"> <input type="checkbox" name="group_read" value="1"> </td> <td valign=top width="110"> <input type="checkbox" name="group_write" value="1"> </td> <td valign=top> {octal_permissions} </td> </tr> </loop> </table> <input type="submit" name="submit" value="Update"> </form> <br> <table width="600" border="0" cellspacing="0" cellpadding="0"> <tr> <td>Orders can be locked by the microarray bioassay center (BRF). You cannot unlock orders, since they have been locked to preserve data integrity. If you need an order unlocked, please contact the BRF or the GeneX administrators. <br> <br> You can change the group ownership at any time, and you can change group permissions. You cannot make a locked order group writable.</td> </tr> </table> <br> </body> </html> --- NEW FILE: chgrp_order1.pl --- #!/usr/bin/perl use strict; use CGI; use CGI::Carp qw(fatalsToBrowser); require "sessionlib.pl"; main: { my $q = new CGI; my $dbh = new_connection(); my %ch = $q->Vars(); # # Turn message param in the form 0m1m2m back into a message text. # Use the wonderful and dangerous /e switch to eval the right side # of the regex. See sub messages() in sessionlib.pl # $ch{message} =~ s/(\d+)m/messages($1)/eg; # list all the orders I own (my $all_html, my $loop_template) = readtemplate("chgrp_order1.html"); # # Do the whole field_xx thing so all fields are in one big form, # and any number of records can be change with a single submit. # my $sth = getq("orders_i_own", $dbh); $sth->execute() || die "Query orders_i_own execute fails.\n$DBI::errstr\n"; my $rows = $sth->rows(); my $hr; #hash ref my $xx = 0; while( $hr = $sth->fetchrow_hashref()) { # study_name, ref_fk, gs_fk, gs_name, permissions, user_read, user_write, group_read, group_write $hr->{select_gs_name} = select_gs_name($dbh); $hr->{octal_permissions} = sprintf("%o", $hr->{permissions}); if ($hr->{user_read} == 1) { $hr->{user_read} = "Yes"; } if ($hr->{user_write} == 1) { $hr->{user_write} = "Yes"; } else { $hr->{user_write} = "Locked"; } my $loop_instance = $loop_template; $loop_instance =~ s/{(.*?)}/$hr->{$1}/gs; $loop_instance = fixselect("select_gs_name", $hr->{gs_fk}, $loop_instance); $loop_instance = fixradiocheck("group_read", $hr->{group_read}, "checkbox", $loop_instance); $loop_instance = fixradiocheck("group_write", $hr->{group_write}, "checkbox", $loop_instance); $loop_instance =~ s/name=\"(.*?)\"/name=\"$1_$xx\"/g; $xx++; $all_html =~ s/<loop_here>/$loop_instance<loop_here>/s; } $all_html =~ s/<loop_here>//s; $all_html =~ s/{(.*?)}/$ch{$1}/sg; print "Content-type: text/html\n\n$all_html\n"; $dbh->disconnect(); } Index: sql_lib.pl =================================================================== RCS file: /cvsroot/genex/genex-server/site/webtools/Attic/sql_lib.pl,v retrieving revision 1.1.2.16 retrieving revision 1.1.2.17 diff -C2 -d -r1.1.2.16 -r1.1.2.17 *** sql_lib.pl 25 Nov 2002 21:39:44 -0000 1.1.2.16 --- sql_lib.pl 26 Nov 2002 21:36:12 -0000 1.1.2.17 *************** *** 152,159 **** { my $us_fk = get_us_fk($dbh); ! # select permissions and only allow group_write to be set if user_write ! # need some exclusive or comb like (?&(128/8)&16) ! # Keep us_fk=$us_fk as a constraint. Only the owner of the record is allowed to change permissions $sql = "update groupref set permissions=?, gs_fk=? where ref_fk=? and us_fk=$us_fk"; } --- 152,161 ---- { my $us_fk = get_us_fk($dbh); ! # ! # The calling Perl code needs to determine what ever rules apply. Once the ! # requirements have been met, and the permissions field is correct, this will update the db. ! # # Keep us_fk=$us_fk as a constraint. Only the owner of the record is allowed to change permissions + # $sql = "update groupref set permissions=?, gs_fk=? where ref_fk=? and us_fk=$us_fk"; } *************** *** 205,209 **** --- 207,248 ---- "; } + elsif ($q_name eq "select_ec_pk") + { + $sql = "select ec_pk,permissions from exp_condition,groupref where sty_fk=? and ref_fk=ec_pk"; + } + elsif ($q_name eq "orders_i_own") + { + my $us_fk = get_us_fk($dbh); + $sql = " + SELECT + order_number, + ref_fk, + gs_fk, + gs_name, + permissions, + (permissions&256=256) as user_read, + (permissions&128=128) as user_write, + (permissions&32=32) as group_read, + (permissions&16=16) as group_write + FROM + order_info,groupref,groupsec + WHERE + groupref.us_fk=$us_fk AND + groupref.gs_fk=groupsec.gs_pk AND + (groupref.us_fk=groupsec.gs_owner OR + groupsec.gs_pk=groupsec.gs_owner) AND + ref_fk=oi_pk + ORDER BY + order_number"; + } + elsif ($q_name eq "select_smp_pk") + { + $sql = "select smp_pk,permissions from sample,groupref where oi_fk=? and ref_fk=smp_pk"; + } + elsif ($q_name eq "select_am_pk") + { + $sql = "select am_pk,permissions from arraymeasurement,groupref where smp_fk=? and ref_fk=am_pk"; + } Index: chgrp_study2.pl =================================================================== RCS file: /cvsroot/genex/genex-server/site/webtools/Attic/chgrp_study2.pl,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -C2 -d -r1.1.2.1 -r1.1.2.2 *** chgrp_study2.pl 26 Nov 2002 19:28:39 -0000 1.1.2.1 --- chgrp_study2.pl 26 Nov 2002 21:36:12 -0000 1.1.2.2 *************** *** 83,87 **** { my $url = index_url(); # see sessionlib.pl ! $url =~ s/(.*)\/.*/$1\/chgrp1.pl/; print "Location: $url?message=$message\n\n"; exit(); --- 83,87 ---- { my $url = index_url(); # see sessionlib.pl ! $url =~ s/(.*)\/.*/$1\/chgrp_study1.pl/; print "Location: $url?message=$message\n\n"; exit(); Index: chgrp_study1.html =================================================================== RCS file: /cvsroot/genex/genex-server/site/webtools/Attic/chgrp_study1.html,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -C2 -d -r1.1.2.1 -r1.1.2.2 *** chgrp_study1.html 26 Nov 2002 19:28:39 -0000 1.1.2.1 --- chgrp_study1.html 26 Nov 2002 21:36:12 -0000 1.1.2.2 *************** *** 5,10 **** <a href="./">Return to Genex Member Home</a> <br><br clear=all><br> ! Change the group and/or read-write permissions.<br> ! Experimental conditions for each study will be changed to reflect study permissions (as appropriate)<br> <font color="#FF0000">{message}</font> </td> --- 5,11 ---- <a href="./">Return to Genex Member Home</a> <br><br clear=all><br> ! Change the group ownership and/or group read-write permissions.<br> ! The experimental conditions for each study will be changed to reflect study ! permissions (as appropriate)<br> <font color="#FF0000">{message}</font> </td> *************** *** 12,16 **** </table> <br> ! <form action="chgrp2.pl" method="post"> <input type="submit" name="submit" value="Update"> <table width="800" border=1 cellspacing=0 cellpadding=3> --- 13,17 ---- </table> <br> ! <form action="chgrp_study2.pl" method="post"> <input type="submit" name="submit" value="Update"> <table width="800" border=1 cellspacing=0 cellpadding=3> *************** *** 58,61 **** --- 59,76 ---- <input type="submit" name="submit" value="Update"> </form> + <br> + <table width="600" border=0 cellpadding=0 cellspacing=0> + <tr> + <td align=top valign="top"> Studies are always user read/write, so we don't + give you the option of changing those permissions.<br> + <br> + User (aka owner) read/write permissions are determined by the system. Unlike + a computer file systems, we do not allow you to remove read and/or write + permissions for yourself. In order to preserve data integrity, some data + created by GeneX processes is readable by you, but cannot be overwritten + except by the GeneX system.</td> + </tr> + </table> + <p> </p> </body> </html> Index: chgrp_study1.pl =================================================================== RCS file: /cvsroot/genex/genex-server/site/webtools/Attic/chgrp_study1.pl,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -C2 -d -r1.1.2.1 -r1.1.2.2 *** chgrp_study1.pl 26 Nov 2002 19:28:39 -0000 1.1.2.1 --- chgrp_study1.pl 26 Nov 2002 21:36:12 -0000 1.1.2.2 *************** *** 21,25 **** # list all the studies, orders, files I own ! (my $all_html, my $loop_template) = readtemplate("chgrp1.html"); # --- 21,25 ---- # list all the studies, orders, files I own ! (my $all_html, my $loop_template) = readtemplate("chgrp_study1.html"); # *************** *** 35,40 **** { # study_name, ref_fk, gs_fk, gs_name, permissions, user_read, user_write, group_read, group_write ! # write_log("sn: $hr->{study_name}"); ! $hr->{select_gs_name} = select_gs_name($dbh); $hr->{octal_permissions} = sprintf("%o", $hr->{permissions}); if ($hr->{user_read} == 1) --- 35,39 ---- { # study_name, ref_fk, gs_fk, gs_name, permissions, user_read, user_write, group_read, group_write ! $hr->{select_gs_name} = select_gs_name($dbh); # see sessionlib.pl $hr->{octal_permissions} = sprintf("%o", $hr->{permissions}); if ($hr->{user_read} == 1) *************** *** 64,80 **** print "Content-type: text/html\n\n$all_html\n"; $dbh->disconnect(); - } - - sub select_gs_name - { - my $dbh = $_[0]; - my $sth = getq("select_gs_name", $dbh); - $sth->execute(); - my $sel = "<select name=\"select_gs_name\">\n"; - while((my $gs_pk, my $gs_name) = $sth->fetchrow_array()) - { - $sel .= "<option value=\"$gs_pk\">$gs_name</option>\n"; - } - $sel .= "</select>\n"; - return $sel; } --- 63,65 ---- Index: sessionlib.pl =================================================================== RCS file: /cvsroot/genex/genex-server/site/webtools/Attic/sessionlib.pl,v retrieving revision 1.1.2.9 retrieving revision 1.1.2.10 diff -C2 -d -r1.1.2.9 -r1.1.2.10 *** sessionlib.pl 26 Nov 2002 14:29:15 -0000 1.1.2.9 --- sessionlib.pl 26 Nov 2002 21:36:12 -0000 1.1.2.10 *************** *** 58,61 **** --- 58,75 ---- } + sub select_gs_name + { + my $dbh = $_[0]; + my $sth = getq("select_gs_name", $dbh); + $sth->execute(); + my $sel = "<select name=\"select_gs_name\">\n"; + while((my $gs_pk, my $gs_name) = $sth->fetchrow_array()) + { + $sel .= "<option value=\"$gs_pk\">$gs_name</option>\n"; + } + $sel .= "</select>\n"; + return $sel; + } + # *************** *** 771,777 **** $priv_mask = 0640; # 416; # octal \640 rw- r-- --- u+rw,g+r } ! $sql = "select ec_pk from exp_condition where sty_fk=$sty_pk"; ! $sth = $dbh->prepare($sql); ! $sth->execute() || die "sql: $sql\n$DBI::errstr\n"; while ((my $ec_pk) = $sth->fetchrow_array()) { --- 785,790 ---- $priv_mask = 0640; # 416; # octal \640 rw- r-- --- u+rw,g+r } ! $sth = getq("select_ec_pk", $dbh); # see sql_lib.pl ! $sth->execute($sty_pk) || die "sql: $sql\n$DBI::errstr\n"; while ((my $ec_pk) = $sth->fetchrow_array()) { Index: index.html =================================================================== RCS file: /cvsroot/genex/genex-server/site/webtools/Attic/index.html,v retrieving revision 1.1.2.2 retrieving revision 1.1.2.3 diff -C2 -d -r1.1.2.2 -r1.1.2.3 *** index.html 11 Nov 2002 20:26:10 -0000 1.1.2.2 --- index.html 26 Nov 2002 21:36:12 -0000 1.1.2.3 *************** *** 11,21 **** <table width="100%" border="0" cellpadding="3" cellspacing="0"> <tr> ! <td bgcolor="#FFFFFF"> <a href="insert_study.pl">Create new study</a><br> ! <a href="choose_study.pl">Update an existing study</a><br> ! <br> ! Use these links to create a study and then to add or modify experimental ! conditions of that study. <br> ! In other words, this is how GeneX describes the group of protocols ! that define a single research project. </td> </tr> </table> --- 11,25 ---- <table width="100%" border="0" cellpadding="3" cellspacing="0"> <tr> ! <td bgcolor="#FFFFFF"> ! <p><a href="insert_study.pl">Create new study</a><br> ! <a href="choose_study.pl">Update an existing study</a><br> ! <a href="chgrp_study1.pl">Change study group ownership and read/write ! permissions</a> <br> ! <br> ! Use these links to create a study and then to add or modify experimental ! conditions of that study. <br> ! In other words, this is how GeneX describes the group of protocols ! that define a single research project. </p> ! </td> </tr> </table> *************** *** 32,35 **** --- 36,40 ---- <a href="choose_order.pl">Update an existing order</a><br> <a href="view_orders.pl">View all orders</a><br> + Change order group ownership and read/write permissions<br> <br> Build an order. Describe the samples that you'll deliver to the chip *************** *** 47,50 **** --- 52,56 ---- <td bgcolor="#FFFFFF"> <p><a href="files.pl">View my files</a><br> + Change file group ownership and read/write permissions<br> <a href="choose_hybs.pl">Run analysis: Quality Control, Stat Analysis, Westfall & Young</a><br> |
From: <tw...@us...> - 2002-11-26 19:28:43
|
Update of /cvsroot/genex/genex-server/site/webtools In directory sc8-pr-cvs1:/tmp/cvs-serv14521 Added Files: Tag: Rel-1_0_1-branch chgrp_study1.pl chgrp_study1.html chgrp_study2.pl Log Message: chgrp and chmod for studies and experimental conditions --- NEW FILE: chgrp_study1.pl --- #!/usr/bin/perl use strict; use CGI; use CGI::Carp qw(fatalsToBrowser); require "sessionlib.pl"; main: { my $q = new CGI; my $dbh = new_connection(); my %ch = $q->Vars(); # # Turn message param in the form 0m1m2m back into a message text. # Use the wonderful and dangerous /e switch to eval the right side # of the regex. See sub messages() in sessionlib.pl # $ch{message} =~ s/(\d+)m/messages($1)/eg; # list all the studies, orders, files I own (my $all_html, my $loop_template) = readtemplate("chgrp1.html"); # # Do the whole field_xx thing so all fields are in one big form, # and any number of records can be change with a single submit. # my $sth = getq("studies_i_own", $dbh); $sth->execute() || die "Query studies_i_own execute fails.\n$DBI::errstr\n"; my $rows = $sth->rows(); my $hr; #hash ref my $xx = 0; while( $hr = $sth->fetchrow_hashref()) { # study_name, ref_fk, gs_fk, gs_name, permissions, user_read, user_write, group_read, group_write # write_log("sn: $hr->{study_name}"); $hr->{select_gs_name} = select_gs_name($dbh); $hr->{octal_permissions} = sprintf("%o", $hr->{permissions}); if ($hr->{user_read} == 1) { $hr->{user_read} = "Yes"; } if ($hr->{user_write} == 1) { $hr->{user_write} = "Yes"; } else { $hr->{user_write} = "Locked"; } my $loop_instance = $loop_template; $loop_instance =~ s/{(.*?)}/$hr->{$1}/gs; $loop_instance = fixselect("select_gs_name", $hr->{gs_fk}, $loop_instance); $loop_instance = fixradiocheck("group_read", $hr->{group_read}, "checkbox", $loop_instance); $loop_instance = fixradiocheck("group_write", $hr->{group_write}, "checkbox", $loop_instance); $loop_instance =~ s/name=\"(.*?)\"/name=\"$1_$xx\"/g; $xx++; $all_html =~ s/<loop_here>/$loop_instance<loop_here>/s; } $all_html =~ s/<loop_here>//s; $all_html =~ s/{(.*?)}/$ch{$1}/sg; print "Content-type: text/html\n\n$all_html\n"; $dbh->disconnect(); } sub select_gs_name { my $dbh = $_[0]; my $sth = getq("select_gs_name", $dbh); $sth->execute(); my $sel = "<select name=\"select_gs_name\">\n"; while((my $gs_pk, my $gs_name) = $sth->fetchrow_array()) { $sel .= "<option value=\"$gs_pk\">$gs_name</option>\n"; } $sel .= "</select>\n"; return $sel; } --- NEW FILE: chgrp_study1.html --- <html><head><title>Manage Study group ownership and permissions</title></head> <body bgcolor="#FFFFFF"> <table width="600" border=0 cellpadding=0 cellspacing=0> <tr><td align=top><img src="../graphics/genex_logo.jpg" align="left">Change Study group, permissions<br><br> <a href="./">Return to Genex Member Home</a> <br><br clear=all><br> Change the group and/or read-write permissions.<br> Experimental conditions for each study will be changed to reflect study permissions (as appropriate)<br> <font color="#FF0000">{message}</font> </td> </tr> </table> <br> <form action="chgrp2.pl" method="post"> <input type="submit" name="submit" value="Update"> <table width="800" border=1 cellspacing=0 cellpadding=3> <tr bgcolor="#ccccff"> <td valign=top width="83"> </td> <td valign=top width="99"> Name</td> <td valign=top width="112"> Group</td> <td valign=top width="104"> User Read</td> <td valign=top width="103"> User Write</td> <td valign=top width="127"> Group Read</td> <td valign=top width="114"> Group Write</td> <td valign=top > Permissions (octal)</td> </tr> <loop> <tr> <td valign=top width="84"> </td> <td valign=top width="84"> {study_name} <input type="hidden" name="ref_fk" value="{ref_fk}"> <input type="hidden" name="gs_fk" value="{gs_fk}"> <input type="hidden" name="permissions" value="{permissions}"> </td> <td valign=top width="72"> {select_gs_name} </td> <td valign=top width="105"> {user_read} </td> <td valign=top width="102"> {user_write} </td> <td valign=top width="126"> <input type="checkbox" name="group_read" value="1"> </td> <td valign=top width="110"> <input type="checkbox" name="group_write" value="1"> </td> <td valign=top> {octal_permissions} </td> </tr> </loop> </table> <input type="submit" name="submit" value="Update"> </form> </body> </html> --- NEW FILE: chgrp_study2.pl --- #!/usr/bin/perl use strict; use CGI; use CGI::Carp qw(fatalsToBrowser); require "./sessionlib.pl"; main: { my $q = new CGI; my $dbh = new_connection(); my %ch = $q->Vars; my $ref_fk = $ch{ref_fk}; my $message = ""; # # This is a powerful (and robust?) way to process # as many _xx fields as existed in the submitted CGI form. # The older scripts counted some field to get a max xx. This is more elegant. # The older stuff also required two hashes %all_ch and %ch. # Here we only have one hash, but the keys must always have the _$xx on the end, # and the keys must always be interpolated. # for(my $xx=0; exists($ch{"gs_fk_$xx"}); $xx++) { my $perm = $ch{"permissions_$xx"}; # # Users can't change user read or user write under most circumstances. # If not user_write, don't allow group_write # if ($ch{"group_read_$xx"}) { $perm |= 040; # 040 octal = 32 decimal } else { $perm &= 0730; # 0730 is 0770-040 or in decimal (511-32) } if ($ch{"group_write_$xx"} && ($ch{"permissions_$xx"} & 0200)) { $perm |= 020; # 020 is 16 decimal } else { $perm &= 0750; # 0750 is 0770-020 or in decimal (511-16) } my $tp = ($ch{"permissions_$xx"} & 0200); my $pp = $ch{"permissions_$xx"}; write_log("tp:$tp p:$pp"); # # Check that $ch{"select_gs_name_$xx"} is a group I own # The update_db query also has this constraint. # my $sth = getq("select_gs_name", $dbh); $sth->execute() || die "Query select_gs_name execute fails.\n$DBI::errstr\n"; my %gname; while( (my $gs_pk, my $gs_name) = $sth->fetchrow_array()) { $gname{$gs_pk} = $gs_name; } if (exists($gname{$ch{"select_gs_name_$xx"}})) { $sth = getq("update_gp", $dbh); $sth->execute($perm, $ch{"select_gs_name_$xx"}, $ch{"ref_fk_$xx"}) || die "Query update_gp execute fails.\n$DBI::errstr\n"; if ($message !~ m/^21m|m21m/ ) { $message .= "21m"; # see messages() in sessionlib.pl } set_ec_perms($dbh, $ch{"ref_fk_$xx"}, $perm, $ch{"select_gs_name_$xx"}); } else { my $selected_gs = $ch{"select_gs_name_$xx"}; write_log("User is not owner of $selected_gs"); } } $dbh->commit(); $dbh->disconnect(); if ((length($message) > 0)) { my $url = index_url(); # see sessionlib.pl $url =~ s/(.*)\/.*/$1\/chgrp1.pl/; print "Location: $url?message=$message\n\n"; exit(); } else { my $url = index_url(); # see sessionlib.pl print "Location: $url\n\n"; } } # # Experimental conditions can be locked if there is an order using them that is locked. # Don't allow an ec_pk to be group writable if it is not user_writeable, and # don't change the user write bit. # Different exp. conds. in a study may have different lock status and therefore different permissions. # To reiterate, the permissions of the study may not be correct for the exp. conds. # sub set_ec_perms { my $dbh = $_[0]; my $sty_pk = $_[1]; my $permissions = $_[2]; my $gs_fk = $_[3]; my $sth = getq("select_ec_pk", $dbh); my $update_sth = getq("update_gp", $dbh); $sth->execute($sty_pk); while( (my $ec_pk, my $ec_permissions) = $sth->fetchrow_array()) { if (! ($ec_permissions & 0200)) { $ec_permissions = ($permissions & 0550) # if ! user write (0200) then clear user and group write (0770-0220=0550) } else { $ec_permissions = $permissions; } $update_sth->execute($ec_permissions, $gs_fk, $ec_pk); } } |
From: <tw...@us...> - 2002-11-26 19:27:51
|
Update of /cvsroot/genex/genex-server/site/webtools In directory sc8-pr-cvs1:/tmp/cvs-serv14126 Removed Files: Tag: Rel-1_0_1-branch chgrp1.pl chgrp1.html chgrp2.pl Log Message: chgrp* renamed to chgrp_study* --- chgrp1.pl DELETED --- --- chgrp1.html DELETED --- --- chgrp2.pl DELETED --- |