Richard Lowe wrote:

>>   (I am assuming that the employee_id is only editable by site
>>   administrators, and is presumed valid.)
> 
> Contributor agreements are ephemeral.  Sun employees are under a
> blanket SCA (in effect), a person leaving Sun should not lose their
> access, but it *would* require they then sign an SCA.  (the same is
> true for companies signing agreements)
> 
> Possession of an agreement when added isn't enough, they aren't
> pertpetually valid.

Spot on.

The sort of corner cases that need to be catered for are best 
illustrated with an example.

0. Harry signed an indidual SCA at some point in the past.
1. FooCorp signs a blanket SCA from 2008 to 2011
2. At startup, Tom and Dick are covered by it
3. In 2009 Harry joins FooCorp and is added to the blanket SCA
4. In 2010 Tom and Dick leave, Tom signs an individual SCA, Dick doesn't
5. In 2010 FooCorp extends the SCA until 2012
6. In 2011 Harry leaves, signs a new individual SCA and Louise joins.
7. In 2012 the group SCA expires.

FC = FooCorp SCA
I  = Individual SCA

       Tom    Dick  Harry  Louise
2008  FC     FC    I
2009  FC     FC    FC
2010  I            FC
2011  I            FC     FC
2012  I            I      FC

We need to maintain the details of the FooCorp agreement after it 
expires in 2012 so we can track it through time, but we can't let people 
associate with it after 2012 because it is no longer valid.  And we 
don't want to store the details of the FooCorp agreement in the FooCorp 
employee's data, as when the agreement is extended in 2010 we only want 
to update the agreement in one place.  However, when someone leaves or 
joins FooCorp we want to know when their participation in the group SCA 
starts and/or finishes.

The current database schema allows for most of this - for example if you 
associate a user with a SCA but don't specify any dates they 'inherit' 
the start and end dates of the underlying group SCA.  You can override 
these dates for each individual user as required.

However what it doesn't allow for is multiple SCAs for a user to track 
their status over time, it only records the 'current' state.  That 
obviously needs to change so that we can track each user's SCA history.

-- 
Alan Burlison
--

Reply via email to