Added hooks at_access_success and at_access_failure to allow for custom messaging for certain lock errors. Resolves Issue 311.
This commit is contained in:
parent
ee7a175bf4
commit
52af816977
2 changed files with 35 additions and 5 deletions
|
|
@ -98,6 +98,9 @@ class ExampleObject(Object):
|
||||||
at_server_reload() - called before server is reloaded
|
at_server_reload() - called before server is reloaded
|
||||||
at_server_shutdown() - called just before server is fully shut down
|
at_server_shutdown() - called just before server is fully shut down
|
||||||
|
|
||||||
|
at_access_success(accessing_obj, access_type) - called if an lock access check succeeded on this object
|
||||||
|
at_access_failure(accessing_obj, access_type) - called if an lock access check failed on this object
|
||||||
|
|
||||||
at_before_move(destination) - called just before moving object to the destination. If returns False, move is cancelled.
|
at_before_move(destination) - called just before moving object to the destination. If returns False, move is cancelled.
|
||||||
announce_move_from(destination) - called in old location, just before move, if obj.move_to() has quiet=False
|
announce_move_from(destination) - called in old location, just before move, if obj.move_to() has quiet=False
|
||||||
announce_move_to(source_location) - called in new location, just after move, if obj.move_to() has quiet=False
|
announce_move_to(source_location) - called in new location, just after move, if obj.move_to() has quiet=False
|
||||||
|
|
|
||||||
|
|
@ -343,8 +343,17 @@ class Object(TypeClass):
|
||||||
accessing_obj (Object)- object trying to access this one
|
accessing_obj (Object)- object trying to access this one
|
||||||
access_type (string) - type of access sought
|
access_type (string) - type of access sought
|
||||||
default (bool) - what to return if no lock of access_type was found
|
default (bool) - what to return if no lock of access_type was found
|
||||||
|
|
||||||
|
This function will call at_access_success or at_access_failure depending on the
|
||||||
|
outcome of the access check.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
return self.dbobj.access(accessing_obj, access_type=access_type, default=default)
|
if self.dbobj.access(accessing_obj, access_type=access_type, default=default):
|
||||||
|
self.at_access_success(accessing_obj, access_type)
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
self.at_access_failure(accessing_obj, access_type)
|
||||||
|
return False
|
||||||
|
|
||||||
def check_permstring(self, permstring):
|
def check_permstring(self, permstring):
|
||||||
"""
|
"""
|
||||||
|
|
@ -486,6 +495,23 @@ class Object(TypeClass):
|
||||||
"""
|
"""
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
def at_access_success(self, accessing_obj, access_type):
|
||||||
|
"""
|
||||||
|
This hook is called whenever accessing_obj succeed a lock check of type access_type
|
||||||
|
on this object, for whatever reason. The return value of this hook is not used,
|
||||||
|
the lock will still pass regardless of what this hook does (use lockstring/funcs to tweak
|
||||||
|
the lock result).
|
||||||
|
"""
|
||||||
|
pass
|
||||||
|
|
||||||
|
def at_access_failure(self, accessing_obj, access_type):
|
||||||
|
"""
|
||||||
|
This hook is called whenever accessing_obj fails a lock check of type access_type
|
||||||
|
on this object, for whatever reason. The return value of this hook is not used, the
|
||||||
|
lock will still fail regardless of what this hook does (use lockstring/funcs to tweak the
|
||||||
|
lock result).
|
||||||
|
"""
|
||||||
|
pass
|
||||||
|
|
||||||
# hooks called when moving the object
|
# hooks called when moving the object
|
||||||
|
|
||||||
|
|
@ -571,7 +597,6 @@ class Object(TypeClass):
|
||||||
"""
|
"""
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
def at_before_traverse(self, traversing_object):
|
def at_before_traverse(self, traversing_object):
|
||||||
"""
|
"""
|
||||||
Called just before an object uses this object to
|
Called just before an object uses this object to
|
||||||
|
|
@ -621,9 +646,11 @@ class Object(TypeClass):
|
||||||
msg is passed on to the user sesssion. If this
|
msg is passed on to the user sesssion. If this
|
||||||
method returns False, the msg will not be
|
method returns False, the msg will not be
|
||||||
passed on.
|
passed on.
|
||||||
|
Input:
|
||||||
msg = the message received
|
msg = the message received
|
||||||
from_obj = the one sending the message
|
from_obj = the one sending the message
|
||||||
|
Output:
|
||||||
|
boolean True/False
|
||||||
"""
|
"""
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue