Browse Source

Make Channel.overwrites_for return PermissionOverwrite

pull/245/merge
Rapptz 9 years ago
parent
commit
08674f115b
  1. 21
      discord/channel.py

21
discord/channel.py

@ -25,7 +25,7 @@ DEALINGS IN THE SOFTWARE.
import copy import copy
from . import utils from . import utils
from .permissions import Permissions from .permissions import Permissions, PermissionOverwrite
from .enums import ChannelType from .enums import ChannelType
from collections import namedtuple from collections import namedtuple
from .mixins import Hashable from .mixins import Hashable
@ -33,7 +33,6 @@ from .role import Role
from .member import Member from .member import Member
Overwrites = namedtuple('Overwrites', 'id allow deny type') Overwrites = namedtuple('Overwrites', 'id allow deny type')
PermissionOverwrite = namedtuple('PermissionOverwrite', 'allow deny')
class Channel(Hashable): class Channel(Hashable):
"""Represents a Discord server channel. """Represents a Discord server channel.
@ -162,17 +161,18 @@ class Channel(Hashable):
return utils.snowflake_time(self.id) return utils.snowflake_time(self.id)
def overwrites_for(self, obj): def overwrites_for(self, obj):
"""Returns a namedtuple that gives you the channel-specific overwrites """Returns the channel-specific overwrites for a member or a role.
for a member or a role.
The named tuple is a tuple of (allow, deny) :class:`Permissions`
with the appropriately named entries.
Parameters Parameters
----------- -----------
obj obj
The :class:`Role` or :class:`Member` or :class:`Object` denoting The :class:`Role` or :class:`Member` or :class:`Object` denoting
whose overwrite to get. whose overwrite to get.
Returns
---------
:class:`PermissionOverwrite`
The permission overwrites for this object.
""" """
if isinstance(obj, Member): if isinstance(obj, Member):
@ -184,10 +184,11 @@ class Channel(Hashable):
for overwrite in filter(predicate, self._permission_overwrites): for overwrite in filter(predicate, self._permission_overwrites):
if overwrite.id == obj.id: if overwrite.id == obj.id:
return PermissionOverwrite(allow=Permissions(overwrite.allow), allow = Permissions(overwrite.allow)
deny=Permissions(overwrite.deny)) deny = Permissions(overwrite.deny)
return PermissionOverwrite.from_pair(allow, deny)
return PermissionOverwrite(allow=Permissions.none(), deny=Permissions.none()) return PermissionOverwrite()
def permissions_for(self, member): def permissions_for(self, member):
"""Handles permission resolution for the current :class:`Member`. """Handles permission resolution for the current :class:`Member`.

Loading…
Cancel
Save