is it possible to get the User (or userid) who authored a change to an ExpandoValue row?
===

In Liferay 5.2.x, I'm trying to get the User or userid of the person who did something which triggered a change in an `ExpandoValue` instance/record.  Is this possible?

The custom attribute/expando data model is represented by `ExpandoTable`, `ExpandoColumn`, `ExpandoRow`, and `ExpandoValue`.  `ExpandoValue` does not appear to have a field to track who made the last change.  What would I need to do to add one?  Is this a good idea?

Alternatively, I have an `ExpandoValueListener` model listener.  Model Listeners seems to be divorced from any particular Request though, because listener methods get fired "reactively" to changes in the model.  None of the method headers in the `ModelListener` interface contain a Request of any kind, or even a ServiceContext (built off of a Request).

Still, is there a way to access the Request, or ServiceContext, or some other mechanism to get the current UserId from within any ModelListener method (perhaps one of the `onBefore*()` methods?  I've seen some people recommend using `PrincipalThreadLocal` but that seems to return `null` sometimes.

Any ideas?  Do i need to just trap the button click instead?  I'm trying to avoid that because it's messy and harder to maintain than, say, a DB trigger or model listener.  

Thanks in advance!