4 def __init__(self
, level
, symbol
=None, name
=None):
8 Perms
.symbols
[symbol
] = self
11 Perms
.names
[name
] = self
12 def __cmp__(self
, other
):
13 return self
.level
- other
.level
20 return str(self
.level
)
22 def from_symbol(symbol
):
23 return Perms
.symbols
.get(symbol
, Perms(0))
24 from_symbol
= staticmethod(from_symbol
)
27 return Perms
.names
.get(name
.lower(), Perms(0))
28 from_name
= staticmethod(from_name
)
29 ban
= Perms(-2, None, "banned")
30 none
= Perms(-1, None, "none")
31 present
= Perms(0, None, "present") # Default for from_symbol, albeit == not is.
32 voice
= Perms(1, "+", "voice")
33 hop
= Perms(2, "%", "halfop")
34 op
= Perms(3, "@", "op")
35 admin
= Perms(4, "&", "admin")
36 owner
= Perms(5, "~", "owner")
37 ircop
= Perms(6, None, "ircop")
39 def get_perms(who
, where
, info
):
40 from globals import private
, my_users
46 server_perm
= info
.channel_perms
.get(where
, none
)
48 my_perm
= my_users
.get(who
, none
)
51 return max(server_perm
, my_perm
)