Ejemplo n.º 1
0
    public async Task <Result <FeedbackMessage> > RevokeAsync
    (
        IRole discordRole,
        string permissionName,
        PermissionTarget revokedTarget = PermissionTarget.Self
    )
    {
        var getPermissionResult = _permissionRegistry.GetPermission(permissionName);

        if (!getPermissionResult.IsSuccess)
        {
            return(Result <FeedbackMessage> .FromError(getPermissionResult));
        }

        var permission             = getPermissionResult.Entity;
        var revokePermissionResult = await _permissions.RevokePermissionAsync
                                     (
            discordRole.ID,
            permission,
            revokedTarget
                                     );

        if (!revokePermissionResult.IsSuccess)
        {
            return(Result <FeedbackMessage> .FromError(revokePermissionResult));
        }

        return(new FeedbackMessage
               (
                   $"{permission.FriendlyName} revoked from <&@{discordRole.ID}>.",
                   _feedback.Theme.Secondary
               ));
    }
Ejemplo n.º 2
0
    public async Task <Result <FeedbackMessage> > GrantAsync
    (
        IUser discordUser,
        string permissionName,
        PermissionTarget grantedTarget = PermissionTarget.Self
    )
    {
        var getPermissionResult = _permissionRegistry.GetPermission(permissionName);

        if (!getPermissionResult.IsSuccess)
        {
            return(Result <FeedbackMessage> .FromError(getPermissionResult));
        }

        var permission            = getPermissionResult.Entity;
        var grantPermissionResult = await _permissions.GrantPermissionAsync
                                    (
            _context.GuildID.Value,
            discordUser.ID,
            permission,
            grantedTarget,
            this.CancellationToken
                                    );

        if (!grantPermissionResult.IsSuccess)
        {
            return(Result <FeedbackMessage> .FromError(grantPermissionResult));
        }

        return(new FeedbackMessage
               (
                   $"{permission.FriendlyName} granted to <@{discordUser.ID}>.",
                   _feedback.Theme.Secondary
               ));
    }
Ejemplo n.º 3
0
 /// <summary>
 /// Initializes a new instance of the <see cref="RequireSelfOrPermissionAttribute"/> class.
 /// </summary>
 /// <param name="permissionType">The permission to require.</param>
 /// <param name="target">The target to require.</param>
 public RequireSelfOrPermissionAttribute(Type permissionType, PermissionTarget target)
 {
     _permissionType = permissionType;
     _target         = target;
 }