Skip to content

fix: copy checks when inheriting #1342

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged

Conversation

AstreaTSS
Copy link
Member

Pull Request Type

  • Feature addition
  • Bugfix
  • Documentation update
  • Code refactor
  • Tests improvement
  • CI/CD pipeline enhancement
  • Other: [Replace with a description]

Description

When inheriting checks, slash commands would pass in their own checks to the subcommand. This makes sense logically, however, what wasn't being caught was that these were being passed by reference, and so any edit to the checks in one subcommand would affect potentially EVERY command.

This PR fixes that by passing in a copy instead, preventing this bug.

This PR is arguably very urgent. The bug introduces unsafe behavior that could have devastating consequences if users don't understand it.

Changes

  • Pass in a copy of the checks list when making groups/subcommands if inheriting.

Related Issues

Test Scenarios

  • Make subcommands with the default options (inherit_checks should be True). Any of the methods will do.
  • Add a check to one subcommand.
  • Verify that the other subcommands have the same check.

Python Compatibility

  • I've ensured my code works on Python 3.10.x
  • I've ensured my code works on Python 3.11.x

Checklist

  • I've run the pre-commit code linter over all edited files
  • I've tested my changes on supported Python versions
  • I've added tests for my code, if applicable
  • I've updated / added documentation, where applicable

@AstreaTSS AstreaTSS marked this pull request as ready for review April 12, 2023 16:31
@Developer89899 Developer89899 merged commit f3705e6 into interactions-py:unstable Apr 12, 2023
Developer89899 pushed a commit that referenced this pull request Apr 12, 2023
Co-authored-by: Astrea49 <25420078+Astrea49@users.noreply.github.com>
@AstreaTSS AstreaTSS deleted the inherit-checks-fix branch April 17, 2023 18:26
Developer89899 added a commit that referenced this pull request Apr 22, 2023
* feat: support regex component callbacks (#1332)

* feat: support regex component callbacks

* docs: document regex matching component callback

* ci: correct from checks.

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* chore: switch to MIT license (#1334)

* chore: switch to MIT license

* ci: correct from checks.

* docs: update license through github 

Uses githubs own license tools so the correct license is detected

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* feat: add audit events (#1335)

* feat: add audit new mod events to audit log enum

* feat: add onboarding related events

see discord/discord-api-docs#6041

* refactor: change log level of missing value to warning (#1339)

Lets not scare people with "error"s ay?

* feat: add missing message types (#1338)

* feat: add missing message types

* feat: add deletable message types helper

* build: correct manifest

* feat: support avatar decorations (#1329)

* build: mirrored publish to d.py-interactions and interactions.py (#1336)

* style: add newline to end of manifest

* ci: fix migration issues in integration test bot

* fix: copy checks when inheriting (#1342)

Co-authored-by: Astrea49 <25420078+Astrea49@users.noreply.github.com>

* feat: cooldown upgrades (#1323)

* docs: add changelog page

* style: add EOF newline

* docs: add 5.1.0 to changelog.md

* style: remove trailing whitespace

* fix: reintroduce imports at namespace linter removed

* feat: sync improvements (#1328)

* refactor: improve readability of sync logic

* fix: improve initial sync caching

* docs: add docstring to update_command_cache

* feat: add command deletion to debug ext

* feat: rate limit improvements  (#1321)

* fix: refactor all http routes to generate buckets properly

* fix: resolve routes regex missed

* feat: allow concurrent api calls from the same bucket

* feat: restore bucketLock.locked property

* feat: further bucketlock improvements

* feat: allow bucketlock blocking to be toggled

* refactor: resolve ruff compliant

* fix: correct webhook http

* fix: wrong check condition in the component callback (#1352)

* fix: error when dispatch component callback (#1351)

* docs: adjust and fix many parts of the docs (#1353)

* docs: adjust and fix many parts of the docs

* docs: add note about event object for v4 migration

* docs: replace more instances of InteractionContext

---------

Co-authored-by: Astrea49 <25420078+Astrea49@users.noreply.github.com>

* feat: caching improvements (#1350)

* feat: add support for force fetching

* feat: track if a user object has been fetched

* feat: add force flag to client helper methods

* feat: update all cache fetch methods to have  a force param

* feat: add reset_with_key and get_cooldown_time_with_key (#1345)

* made get_cooldown_with_key async for consistency, added reset_with_key and get_cooldown_time_with_key

* ci: correct from checks.

* fixed pre-commit problems

* comment on #1345, resolved

* made Cooldown.reset_all async #1345

* bot.load => bot.load_extension

* reverted 8217f4e

* made get_cooldown_time_with_key and reset_with_key sync

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Astrea <25420078+AstreaTSS@users.noreply.github.com>
Co-authored-by: Astrea49 <25420078+Astrea49@users.noreply.github.com>
Co-authored-by: Damego <damego.dev@gmail.com>
Co-authored-by: chronosirius <73508925+chronosirius@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants