11
11
12
12
from player_cmd import register
13
13
from plugin_helpers import tell
14
- from helpers import all_users
14
+ from helpers import all_users , ops
15
15
from zones import get_zones
16
16
from acls import ALL_PERMS , ADMIN
17
17
@@ -20,10 +20,10 @@ def on_start():
20
20
re_name = r'(?:[^"][^ ]+|"(?:[^"]|\\")+")'
21
21
register ("/acls help" , aclhelp )
22
22
register ("/acls commands" , aclcmdhelp )
23
- register ("/acls %s set ([^ ]+)((?: [A-Z]+)+)" % re_name , aclset )
24
- register ("/acls %s add ([^ ]+) ([A-Z]+)" % re_name , acladd )
25
- register ("/acls %s remove ([^ ]+) ([A-Z]+)" % re_name , aclrm )
26
- register ("/acls %s clear ([^ ]+)" % re_name , aclclear )
23
+ register ("/acls (%s) set ([^ ]+)((?: [A-Z]+)+)" % re_name , aclset )
24
+ register ("/acls (%s) add ([^ ]+) ([A-Z]+)" % re_name , acladd )
25
+ register ("/acls (%s) remove ([^ ]+) ([A-Z]+)" % re_name , aclrm )
26
+ register ("/acls (%s) clear ([^ ]+)" % re_name , aclclear )
27
27
28
28
29
29
def aclhelp (message , user ):
@@ -62,6 +62,7 @@ def wrapped_fn(message, user, zone, name, *args):
62
62
zone = zone .strip ('"' )
63
63
if zone not in get_zones ():
64
64
tell (user , "Zone does not exist." )
65
+ print zone
65
66
return
66
67
zone = get_zones ()[zone ]
67
68
if 'acls' not in zone :
@@ -75,12 +76,13 @@ def wrapped_fn(message, user, zone, name, *args):
75
76
tell (user , "Warning: %s is not a player known to this server.\n "
76
77
"If you have made a mistake, type:\n /acls %s clear %s" % (zone_original , name ))
77
78
78
- if ADMIN not in zone ['acls' ].get (name , zone ['acls' ]['EVERYONE' ]):
79
+ if ADMIN not in zone ['acls' ].get (name , zone ['acls' ]['EVERYONE' ]) and user . username not in ops () :
79
80
tell (user , "You do not have permission to modify ACLs for this zone. "
80
81
"If you have accidentially locked yourself out, please contact an op for assistance." )
81
82
return
82
83
83
84
return fn (message , user , zone , name , * args )
85
+ return wrapped_fn
84
86
85
87
86
88
@common
@@ -100,7 +102,7 @@ def acladd(message, user, zone, name, perm):
100
102
tell (user , "%s not an ACL." % perm )
101
103
current = zone ['acls' ].setdefault (name , zone ['acls' ]['EVERYONE' ][:])
102
104
if perm in current :
103
- tell (user , "%s can already %s" % (name , perm )
105
+ tell (user , "%s can already %s" % (name , perm ))
104
106
else :
105
107
current .append (perm )
106
108
tell (user , "Success" )
@@ -111,8 +113,8 @@ def aclrm(message, user, zone, name, perm):
111
113
if perm not in ALL_PERMS :
112
114
tell (user , "%s not an ACL." % perm )
113
115
current = zone ['acls' ].setdefault (name , zone ['acls' ]['EVERYONE' ][:])
114
- if perm in current :
115
- tell (user , "%s can already %s" % (name , perm )
116
+ if perm not in current :
117
+ tell (user , "%s already can't %s" % (name , perm ) )
116
118
else :
117
119
current .remove (perm )
118
120
tell (user , "Success" )
0 commit comments