• Leigh B. Stoller's avatar
    Big set of changes intended to solve a couple of problems with long · ff9061d4
    Leigh B. Stoller authored
    term archiving of firstclass objects like users, projects, and of
    course templates.
    * Projects, Users, and Groups are now uniquely identified inside the
      DB by a index value that will not be reused. If necessary, this
      could easily be a globally unique identifier, but without federation
      there is no reason to do that yet.
    * Currently, pid, gid, and uid still need to be locally unique until
      all of the changes are in place (which is going to take a fairly
      long time since the entire system operates in terms of those, except
      for the few places that I had to change to get the ball rolling).
    * We currently archive deleted users to the deleted_users table (their
      user_stats are kept forever since they are indexed by the new index
      column). Eventually do the same with projects (not sure about
      groups) but since we rarely if ever delete a project, there is no
      rush on this one.
    * At the same time, I have started a large reorg of the code, to move
      all of the user, group, project code into modules, both in php and
      perl, turning them into first class "objects" (as far as that goes
      in php and perl). Eventually, the number of query statements
      scattered around the code will be manageable, or so I hope.
    * Another related part of this reorg is to make it easier to move the
      new user/project/group code in the perl backend so that it can be
      made available via the xmlrpc interface (without duplication of the