1. A method of controlling access to and manipulation of a data object in a computer system, the method comprising: determining a current user role of a current user requesting interaction with the data object, the current user role being one of a set of defined user roles for accessing the data object; determining a current lifecycle state of the data object, the current lifecycle state being one of a set of states the data object can transition to; and restricting, by a computer processor, interaction with the data object by the current user based on at least the current user role of the current user and the current lifecycle state of the data object.