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 //Start with this user's guild permissions
resolvedPermissions = guildPermissions; resolvedPermissions = guildPermissions;


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

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


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


Loading…
Cancel
Save