Skip to content

Commit 5f5df93

Browse files
committed
add generic lock/unlock commands that work based on the full srg name passed in
1 parent 4e9a874 commit 5f5df93

File tree

1 file changed

+11
-5
lines changed

1 file changed

+11
-5
lines changed

MCPBot.py

+11-5
Original file line numberDiff line numberDiff line change
@@ -93,9 +93,11 @@ def __init__(self, configfile=None, nspass=None, backupcfg=False):
9393
self.registerCommand('sp', self.setMember, ['any'], 2, 999, "<srg name> <new name> [<comment>]", "Sets the MCP name and comment for the SRG method parameter specified. SRG index can also be used.", allowpub=True)
9494
self.registerCommand('fsp', self.setMember, ['maintainer', 'mcp_team'], 2, 999, "<srg name> <new name> [<comment>]", "Force sets the MCP name and comment for the SRG method parameter specified. SRG index can also be used.", allowpub=True)
9595

96+
self.registerCommand('lock', self.setLocked, ['lock_control', 'mcp_team'], 1, 1, "<srg name>", "Locks the given field/method/parameter from being edited. Full SRG name must be used.")
9697
self.registerCommand('lockf', self.setLocked, ['lock_control', 'mcp_team'], 1, 1, "<srg name>", "Locks the given field from being edited. SRG index can also be used.")
9798
self.registerCommand('lockm', self.setLocked, ['lock_control', 'mcp_team'], 1, 1, "<srg name>", "Locks the given method from being edited. SRG index can also be used.")
9899
self.registerCommand('lockp', self.setLocked, ['lock_control', 'mcp_team'], 1, 1, "<srg name>", "Locks the given method parameter from being edited. SRG index can also be used.")
100+
self.registerCommand('unlock', self.setLocked, ['lock_control', 'mcp_team'], 1, 1, "<srg name>", "Unlocks the given field/method/parameter to allow editing. Full SRG name must be used.")
99101
self.registerCommand('unlockf', self.setLocked, ['lock_control', 'mcp_team'], 1, 1, "<srg name>", "Unlocks the given field to allow editing. SRG index can also be used.")
100102
self.registerCommand('unlockm', self.setLocked, ['lock_control', 'mcp_team'], 1, 1, "<srg name>", "Unlocks the given method to allow editing. SRG index can also be used.")
101103
self.registerCommand('unlockp', self.setLocked, ['lock_control', 'mcp_team'], 1, 1, "<srg name>", "Unlocks the given method parameter to allow editing. SRG index can also be used.")
@@ -461,12 +463,16 @@ def listMembers(self, bot, sender, dest, cmd, args):
461463
# Setters
462464

463465
def setLocked(self, bot, sender, dest, cmd, args):
464-
member_type = 'method'
466+
member_type = None
465467
is_lock = cmd['command'][0] == 'l'
466-
if cmd['command'].find('f') > -1: member_type = 'field'
467-
elif cmd['command'].find('p') > -1: member_type = 'method_param'
468-
val, status = self.db.setMemberLock(member_type, is_lock, cmd['command'], sender, args)
469-
self.sendSetLockResults(member_type, sender, dest, val, status, args[0], is_lock)
468+
if cmd['command'].find('f') > -1 or args[0].beginswith('field_'): member_type = 'field'
469+
elif cmd['command'].find('m') > -1 or args[0].beginswith('func_'): member_type = 'method'
470+
elif cmd['command'].find('p') > -1 or args[0].beginswith('p_'): member_type = 'method_param'
471+
if member_type:
472+
val, status = self.db.setMemberLock(member_type, is_lock, cmd['command'], sender, args)
473+
self.sendSetLockResults(member_type, sender, dest, val, status, args[0], is_lock)
474+
else:
475+
self.sendNotice(sender.nick, '§BFull SRG name is required for the %s command.' % cmd['command'])
470476

471477

472478
def undoChange(self, bot, sender, dest, cmd, args):

0 commit comments

Comments
 (0)