class OAuthUserProxy(object): """Proxy object to an Invenio User.""" def __init__(self, user): """Initialize proxy object with user instance.""" self._user = user def __getattr__(self, name): """Pass any undefined attribute to the underlying object.""" return getattr(self._user, name) def __getstate__(self): """Return the id.""" return self.id def __setstate__(self, state): """Set user info.""" self._user = UserInfo(state) @property def id(self): """Return user identifier.""" return self._user.get_id() def check_password(self, password): """Check user password.""" return self.password == password @classmethod def get_current_user(cls): """Return an instance of current user object.""" return cls(current_user._get_current_object())
def test_create(self): """Test.""" from invenio_ext.login.legacy_user import UserInfo from invenio_deposit.models import Deposition user = UserInfo(uid=1) d = Deposition.create(user) assert d.type == self.DefaultType assert Deposition.get(d.id).type == self.DefaultType d2 = Deposition.create(user, type=self.AnotherType) assert d2.type == self.AnotherType assert Deposition.get(d2.id).type == self.AnotherType # remove the records Deposition.delete(d) Deposition.delete(d2)
def __setstate__(self, state): """Set user info.""" self._user = UserInfo(state)