Implement a way to create, read, update and delete Memories with proper authentication and permissions handling. Provide comprehensive unit tests.