All new accounts created on Gitlab now require administrator approval. If you invite any collaborators, please let Flux staff know so they can approve the accounts.

  1. 02 Aug, 2010 1 commit
  2. 22 Jun, 2010 2 commits
  3. 28 Apr, 2010 1 commit
  4. 09 Feb, 2010 1 commit
  5. 03 Dec, 2009 1 commit
  6. 30 Nov, 2009 1 commit
  7. 08 May, 2009 1 commit
  8. 26 Feb, 2009 1 commit
  9. 23 Oct, 2008 1 commit
  10. 21 Oct, 2008 1 commit
    • Kevin Atkinson's avatar
      If a known user (based on stored cookies) is not logged in than · 846a98d6
      Kevin Atkinson authored
      redirect to the login page rather than printing a message with a link
      to the page.  Otherwise send a "403 Forbidden" to keep robots from
      indexing the page.  Also send appreciate HTTP responses on other
      precheck errors to keep a robot from indexing the page.  In order to
      do this the PAGEHEADER call needed to be moved to after
      CheckLoginOrDie and Required/OptionalPageArguments on many pages.  A
      warning will be printed if either CheckLoginOrDie or
      Required/OptionalPageArguments detects that PAGEHEADER was already
      called.
      
      Also change the redirect in kb-show to be a permanent redirect (301)
      rather than a temporary one (302) which is the default unless a status
      code is given.
      846a98d6
  11. 21 Aug, 2008 1 commit
    • David Johnson's avatar
      Add a new client side script, osconfig, that can update an MFS or a · dc10d326
      David Johnson authored
      frisbee-loaded slice based on a tarball downloaded from boss.  For now,
      the tarball is dynamically created by boss based on params sent to the
      osconfig_dump.php script; it is populated with files and a MANIFEST based
      on the files and constraints in the osconfig_* tables, which are pretty
      self-explanatory.  Transport is not secure, nor intended to be -- nodes on
      the control net or widearea nodes auth'd with a privkey can grab stuff
      destined to them based on their IP addr.  For the MFS case, the tarball is
      unpacked and the MANIFEST entries are executed/copied/extracted, and
      (nearly all of) the client side is re-run.  For the slicefix case, we just
      execute/copy/extract the MANIFEST entries in the mounted slice... there
      are some useful env vars set for scripts to use.
      
      If this mechanism ever becomes generally useful, or we're pushing big update
      tarballs, we'll have to add a caching mechanism (doh).  Right now, it's just
      for dongle-booted nodes or widearea nodes on which we cannot update the
      physical boot media without much pain; as well as for making major whacks
      to frisbee-loaded slices, which we need for the widearea case.
      
      Also, call this from rc.cdboot (to update a "read-only" (real media is
      mounted ro, but other parts of the fs are rw via unionfs or mfs) MFS),
      and from slicefix.
      
      NOTE: the client side osconfig script does not get installed from the
      makefile; this is intentional.  This script should not be placed in our
      local tftp'd MFSes, at least until there's some need for it!
      dc10d326
  12. 25 Jul, 2008 1 commit
  13. 18 Jul, 2008 1 commit
  14. 17 Jul, 2008 1 commit
  15. 15 Jul, 2008 1 commit
  16. 08 Jul, 2008 2 commits
  17. 11 Jun, 2008 1 commit
    • Kevin Atkinson's avatar
      · 425c4b89
      Kevin Atkinson authored
      Set the charset for all emulab pages to utf-8 which is needed to
      display foreign names correctly.  Also added three rows to table_regex:
      tinytext_utf8, text_utf8, fulltext_utf8
      
      Enhanced form_defs.php:
      
        - Add Support for Textarea
      
        - Add Support for a vertical list, for example see Category in
          submitpub.php
      
        - Add support for dumping the form values in plain text, used in the
          email I send to testbed-ops.
      
        - Change Error Reporting text for subfields such as in a list so
          they also include the text from the outer field, for example in
          newosid "ping" will become "OS Features, ping".  I needed this
          since some of my subfields didn't have labels and it seamed like
          the right thing to do.
      
        - Set #return_value to 1 in FormRenderCheckBox if it not already
          specified
      
        - In FormRenderSelect, if the #value is not in the list add it to
          the end.
      
        - Add support for "display" type, to just display some text in the
          table
      
        - Possibly some other little things I forgot about.
      
      New site variable PUBSUPPORT.
      
      Implement FS#201: Provide users a way to add a paper that used Emulab
      see (https://users.emulab.net/flyspray/?do=details&id=201), summary of
      changes:
      
        - Controlled via the new site variable PUBSUPPORT.
      
        - The emulab_papers spread sheet is now frozen all new changes
          should be made using the new system.
      
        - New pages submitpub.php for users to submit a new publication
          with different views for admins and non-admins.
      
        - New page expubs.php to replace doc/expubs.html, lists publications
          in database.  Also allows admins to edit publications.
      
        - Project members can edit papers associated with the project as
          long as they have local_root or higher privileges. Papers for a
          project are listed under a new tab in the showproject page. I keep
          track of the last person to edit the paper submission in addition
          to who initially submitted it.
      
        - Users can modify papers they submitted which is needed if the
          project was N/A. Papers users submitted now appear in a new tab in
          the showuser page.
      
        - Script to import spreadsheet to the database is in
          utah/bibliography/emulab_pubs-import.pl.
      
        - Changes web pages that point to doc/expubs.html to instead point
          to expubs.php
      425c4b89
  18. 09 May, 2008 1 commit
    • Kevin Atkinson's avatar
      Make project approval mail truly anonymous. Also make membership · 503bb661
      Kevin Atkinson authored
      acceptance email truly anonymous.  A few other emails related to
      project membership are still not anonymous though.  New function
      AnonSENDMAIL in libtestbed which will try to make sure there is no
      trace of the current user in the mail sent.
      
      For now, stop sending membership approval related email to the project
      admin list since this will also go to testbed-approval.  There is also
      some code to remove testbed-approval from the proj-admin list after
      the acceptance email but this is disabled for now since some times people
      reply to the approval email.
      503bb661
  19. 01 May, 2008 1 commit
    • Kevin Atkinson's avatar
      Implemt FS#187 -- Show admin history of projects: · 8054f5f8
      Kevin Atkinson authored
        When a project is initially created a new mailing list is created,
        PROJ-admin@emulab.net.
      
        testbed-approval is subscribed to the list
      
        Several emails that originally went to testbed-approval now go to the
        mailing list instead.  The From, To, fields are basically the same
        with testbed-approval becoming PROJ-admin.  This means some mail
        is sent with a From PROJ-admin and Bcc the mailing list.  Note that
        some mail still goes to testbed-approval directly, in particular
        ones where there is no clear project involved, and when a project is
        denied.
      
        In addition notifications of approval status of new members is also
        sent to the list.  These emails use to only go to testbed-audit@.
      
        Currently All mail sent to PROJ-admin is also sent to testbed-audit
        (via a Bcc).  This means that some mail that didn't use to go to
        testbed-audit now does.
      
        The mailing list is deleted when a project is deleted with out first
        being approved.  Becuase of this notified that a project is denied
        is sent to testbed-approval instead of PROJ-admin.
      
        Admins can access the mailing list from the Project Profile page.
      
        The mailing list is open in order to allow users to reply to the
        mailing list, in addition the check that PROJ-admin is in the To or
        CC field is disabled.  There is currently no spam control on the
        mailing lists.  However, since the mailing list address is not posted
        anywhere it should't pick up to much spam.  If it does we can deal
        with it then.
      
        Finally, a new script is created to create the per-project admin
        mailing list.  See doc/UPDATING.
      
      Also add DBQuerySingleFatal to libdb, which is like DBQueryFatal but
      also fails if the query didn't return any results.  Basically
      identical to he version in libtblog.  Eventually libtblog should be
      modified to use this version.
      8054f5f8
  20. 16 Apr, 2008 1 commit
  21. 24 Mar, 2008 1 commit
  22. 04 Feb, 2008 1 commit
  23. 07 Nov, 2007 1 commit
    • Leigh B. Stoller's avatar
      Just for kicks and cause I'm such a fan of "the wiki" I went ahead and · b15d5f78
      Leigh B. Stoller authored
      fully integrated Trac. I put a new installation in /usr/local/www/data/trac
      and I added all the hooks for adding users and doing the cross machine
      login. Only STUDLY() users will actually see the new option in the collab
      dropdown menu.
      
      I have not done anything to make the trac installation look like Emulab.
      b15d5f78
  24. 31 Oct, 2007 1 commit
    • Leigh B. Stoller's avatar
      Convert the usage box at the top from an iframe to an inline table so that · b3210aa7
      Leigh B. Stoller authored
      it can be actively clicked and toggled between the short status view and
      the long freenode view. There was no way to do this when it was an iframe,
      and the upside of not using an iframe is that iframes often mess up rendering
      and cause many cross-browser problems.
      
      Since its not an iframe, I have to hook into the Sajax stuff even on
      pages that already use Sajax, and I want to go to a different URL then
      the current page (want to use currentusage.php3). So I tweaked the Sajax
      stuff a bit, and roll out some inline sajax code in PAGEFOOTER().
      
      Also, at Rob's request I added a cookie to remember the state of the
      user's choice so that subsequent page loads get the same view. This
      is done with an inline cookie in the javascript (document.cookies).
      b3210aa7
  25. 23 Apr, 2007 1 commit
  26. 17 Apr, 2007 1 commit
  27. 07 Mar, 2007 2 commits
  28. 14 Feb, 2007 1 commit
  29. 12 Feb, 2007 2 commits
    • Robert Ricci's avatar
      New front page text, for the first time in a few years. More clearly · b3e8a3e5
      Robert Ricci authored
      enumerates the different experimental environments we support. Most
      of the new text only gets displayed at Utah, since no one else has
      wireless nodes, etc. Other sites get some short generic text.
      
      New banner, plus other visual tweaks. The new banner is turned on via
      the new @FANCYBANNER@ autoconf variable. This is turned on for
      TBMAINSITE, but defaults to off for other sites. This is so that
      existing sites which already have their own versions of the old banner
      don't have to update them right away.
      
      Made the usage iframe a little less prominent, by darkening it, and
      making it ever so slightly transparent on browsers that support it.
      
      Some minor visual tweaks to the background and content area.
      
      Added specific IDs for the main menu subgroups so that if we want, we
      can style them differently.
      
      Man, IE is a pain in the ass.
      b3e8a3e5
    • Leigh B. Stoller's avatar
      * Replace the argument processing code in all pages. Currently we rely on · 48acc8e3
      Leigh B. Stoller authored
        register_globals=1 to turn POST/GET/COOKIES arguments in local variables.
        This is known to be a terrible security risk, and we keep saying we are
        going to fix it, and now I am. In order to accomplish this on a
        transitional basis (since I don't want the entire web interface to stop
        working while I debug it), and because the code just needs the cleanup, I
        am doing it like this: Each page will sport new declarations at the top:
      
      	RequiredPageArguments("experiment", PAGEARG_EXPERIMENT,
                                    "template",   PAGEARG_TEMPLATE,
                                    "instance",   PAGEARG_INSTANCE,
                                    "metadata",   PAGEARG_METADATA,
                                    "osinfo",     PAGEARG_OSINFO,
                                    "image",      PAGEARG_IMAGE,
                                    "project",    PAGEARG_PROJECT,
                                    "group",      PAGEARG_GROUP,
                                    "user",       PAGEARG_USER,
      			      "node",       PAGEARG_NODE,
      			      "yesno",      PAGEARG_BOOLEAN,
      			      "message",    PAGEARG_STRING,
      			      "age",        PAGEARG_INTEGER,
                                    "cost",       PAGEARG_NUMERIC,
                                    "formfields", PAGEARG_ARRAY,
                                    "unknown",    PAGEARG_ANYTHING);
      
      	OptionalPageArguments("canceled", PAGEARG_BOOLEAN);
      
        The first token in each pair is the name of the global variable to
        set, and the second token is the type. So, for "experiment" we look at
        the URL for a pid/eid or exptidx, etc, sanity check them (safe for a
        DB query), and then try to find that experiment in the DB. If it maps
        to an experiment, set global variable $experiment to the object. Since
        its a required argument, produce an error if not supplied. Similar
        treatment for optional arguments, with the obvious difference.
      
        The goal is to have ALL argument processing in one place, consistent,
        and correct. I've found numerous places where we leak unchecked
        arguments into queries. It also cuts out a lot of duplicated code.
      
      * To make the above easier to deal with, I've been replacing lots of
        hardcoded URLS in the code of the form:
      
      	foo.php3?pid=$pid&eid=$eid ...
      
        with
      
              CreateURL("foo", $experiment)
      
        which creates and returns the neccessary url string, by looking at
        the type of its arguments (experiment, template, instance, etc.)
      
        Eventually plan to replace them all so that URL handling throughout
        the code is all defined in one place (all the new URL code is in
        url_defs.php).
      
      * I have cranked up error reporting to tell me anytime a variable is
        used before it is initialized, plus a bunch of other stuff that PHP
        deems improper. Think of it like -Wall ... and boy we get a lot of
        warnings.  A very large percentage of the diffs are to fix all these
        warnings.
      
        The warnings are currently going to /usr/testbed/log/php-errors.log,
        and I'll be adding a script to capture them each night and mail them
        to tbops. This file also gets errors (this will be a change for
        developers; rather then seeing errors and warnings dumped in the
        middle of web pages, they will go to this file instead).
      
      * Major refactoring of the code. More objects (nodes, images, osids).
        Moving tons of queries into the objects in the hopes of someday
        getting to a point where we can split the web interface onto a
        different server.  Lots of general cleanup.
      48acc8e3
  30. 23 Jan, 2007 1 commit
  31. 16 Jan, 2007 1 commit
    • Leigh B. Stoller's avatar
      Move the bulk (or guts) of newuser and newproject from the web · 16aaa101
      Leigh B. Stoller authored
      interface to the backend. There are new scripts that can be called
      from the command line:
      
      	newuser xmlfile
      	newproj xmlfile
      
      They both run from small xmlfiles that are generated by the web
      interface from the form data. I also moved user verification to the
      backend so that we do not have duplicated email functions, but that
      was a small change.
      
      Upon error, the xmlfile is saved and sent to tbops so that we can
      rerun the command by hand, rather then force user to fill out form
      again. I also do a better job of putting the form back up intact when
      there are internal errors.
      
      If the user provides an initial public key, that is put into the xml
      file as well and addpubkey is called from newuser instead of the web
      interface. A more general change to addpukey is that it is now
      *always* called as "nobody". This script was a morass of confusion
      cause of having to call it as nobody before the user actually
      exists. In fact, another of my ongoing projects is to reduce the
      number of scripts called as a particular user, but thats a story for
      another day. Anyway, the script is always called as nobody, but we
      pass along the implied user in the environment so that it can do
      permission checks.
      16aaa101
  32. 09 Jan, 2007 1 commit
  33. 20 Dec, 2006 2 commits
  34. 01 Dec, 2006 1 commit
  35. 27 Nov, 2006 1 commit