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 --