Ticket #749 (closed Enhancement: fixed)

Opened 6 years ago

Last modified 6 years ago

Maintain a "modifier" info for each topic/association

Reported by: jri Owned by: jri
Priority: Major Milestone: Release 4.5
Component: DeepaMehta Standard Distribution Version: 4.4
Keywords: Cc: dgf, Malte, JuergeN
Complexity: 3 Area:
Module: deepamehta-accesscontrol

Description

For each topic/association DM should store the information which user did the most recent modification.

This is needed for #747.

Change History

comment:1 Changed 6 years ago by jri

  • Status changed from new to accepted

comment:2 Changed 6 years ago by Jörg Richter <jri@…>

In cd8f2ba70a805db88ef498140571131815ec2022/deepamehta:

Add "modifier" info to each topic/assoc (#749).

Every time a topic/association is updated DM attaches the "modifying user" (a username) to the topic/association.
So, DM can tell which user did the most recent modification on a topic/association.

Access Control API

New method:

String getModifier(DeepaMehtaObject object)

Returns the modifier of a topic or an association, or null if no modifier is set.

See #749.

comment:3 Changed 6 years ago by Jörg Richter <jri@…>

In ba6821482cbbfc40cac9a202f98cc45a6d525cd5/deepamehta:

3 more Access Control calls are RESTful (#749).

GET /accesscontrol/object/{id}/creator
GET /accesscontrol/object/{id}/owner
GET /accesscontrol/object/{id}/modifier

Returns a topic's/association's creator, owner, modifier respectively.

BREAKING CHANGE

Access Control API

3 getter methods have changed signatures. Instead of an object they take a sole object ID.

String getCreator(DeepaMehtaObject object)  -> String getCreator(long objectId)
String getOwner(DeepaMehtaObject object)    -> String getOwner(long objectId)
String getModifier(DeepaMehtaObject object) -> String getModifier(long objectId)

See #749.

comment:4 Changed 6 years ago by Jörg Richter <jri@…>

In 4d25473979ffeb5e778144993828858c0bf7c74f/deepamehta:

2 more Time service calls are RESTful (#749).

GET /time/object/{id}/created
GET /time/object/{id}/modified

Returns a topic's/association's creation and modification timestamps respectively.

BREAKING CHANGE

Time API

2 getter methods have changed signatures. Instead of an object they take a sole object ID.

long getCreationTime(DeepaMehtaObject object)     -> long getCreationTime(long objectId)
long getModificationTime(DeepaMehtaObject object) -> long getModificationTime(long objectId)

See #749.

comment:5 Changed 6 years ago by Jörg Richter <jri@…>

In 819d1488852d8951128d74e961bd250427b2de5a/deepamehta:

Extend client-side AccsCtrl? and Time APIs (#749).

New methods:

dm4c.restc.get_creator(object_id)
dm4c.restc.get_owner(object_id)
dm4c.restc.get_modifier(object_id)

dm4c.restc.get_creation_time(object_id)
dm4c.restc.get_modification_time(object_id)

See #749.

comment:6 Changed 6 years ago by Jörg Richter <jri@…>

In 4b802b15e33870e9a7e82099c5ab076784a8f5d1/deepamehta:

AcssCtrl?: set modifier user also on create (#749).

The "modifying user" (a username) is also set on topic/association creation time (besides update time).

This is analogous to the Time module which sets the modification timestamp already on creation time. (This in turn is required for the caching mechanism which expects each topic/association having a modification timestamp.)

So, when there is a modification timestamp the corresponding modifying user is supposed to be known as well.

See #749.

comment:7 Changed 6 years ago by jri

  • Status changed from accepted to closed
  • Resolution set to fixed
Note: See TracTickets for help on using tickets.