Browse Source

Fixed order for permission resolving

tags/1.0-rc
RogueException 8 years ago
parent
commit
70e8cea6e2
1 changed files with 6 additions and 3 deletions
  1. +6
    -3
      src/Discord.Net.Core/Utils/Permissions.cs

+ 6
- 3
src/Discord.Net.Core/Utils/Permissions.cs View File

@@ -118,6 +118,7 @@ namespace Discord
//Start with this user's guild permissions
resolvedPermissions = guildPermissions;

//Give/Take Role permissions
OverwritePermissions? perms;
var roleIds = user.RoleIds;
if (roleIds.Count > 0)
@@ -128,15 +129,17 @@ namespace Discord
perms = channel.GetPermissionOverwrite(guild.GetRole(roleId));
if (perms != null)
{
deniedPermissions |= perms.Value.DenyValue;
allowedPermissions |= perms.Value.AllowValue;
deniedPermissions |= perms.Value.DenyValue;
}
}
resolvedPermissions = (resolvedPermissions & ~deniedPermissions) | allowedPermissions;
resolvedPermissions = (resolvedPermissions | allowedPermissions) & ~deniedPermissions;
}

//Give/Take User permissions
perms = channel.GetPermissionOverwrite(user);
if (perms != null)
resolvedPermissions = (resolvedPermissions & ~perms.Value.DenyValue) | perms.Value.AllowValue;
resolvedPermissions = (resolvedPermissions | perms.Value.AllowValue) & ~perms.Value.DenyValue;

//TODO: C#7 Typeswitch candidate
var textChannel = channel as ITextChannel;


Loading…
Cancel
Save