#5947

feat: Add Client peripheral permissions

OpenNamytswants to merge intofrom

Description

What? Added input permissions for each client (enable/disable mouse, keyboard, controller). Added a button to kick clients (does not prevent rejoin)

Why? I really like this project but wish that I could eventually use it to invite friends to play, just like Parsec. That is a larger piece of work - but a small step is to have configurable permissions per client. That is the aim of this PR

Screenshot

Haven't built this - am on Windows with Sunshine already installed. However the code is reasonably minimal and makes sense.

Issues Fixed or Closed

Roadmap Issues

Testing

Added tests covering the functionality. UI & BE.

Type of Change

  • feat: New feature (non-breaking change which adds functionality)
  • fix: Bug fix (non-breaking change which fixes an issue)
  • docs: Documentation only changes
  • style: Changes that do not affect the meaning of the code (white-space, formatting, missing semicolons, etc.)
  • refactor: Code change that neither fixes a bug nor adds a feature
  • perf: Code change that improves performance
  • test: Adding missing tests or correcting existing tests
  • build: Changes that affect the build system or external dependencies
  • ci: Changes to CI configuration files and scripts
  • chore: Other changes that don't modify src or test files
  • revert: Reverts a previous commit
  • BREAKING CHANGE: Introduces a breaking change (can be combined with any type above)

Checklist

  • Code follows the style guidelines of this project
  • Code has been self-reviewed
  • Code has been commented, particularly in hard-to-understand areas
  • Code docstring/documentation-blocks for new or existing methods/components have been added or updated
  • Tests have been added or updated for new or modified functionality, including regression tests for bug fixes

AI Usage

See our AI usage policy.

  • AI tools were used while preparing this PR

I am a developer, but I used AI to prepare this PR. I incrementally improve on the output until the code in a state that I am satisfied and would have written it by hand the same way...

For the tests - I give a bit less attention apart from just roughly scanning that they are doing what they are meant to.

Activity

12
N
3aea6f6
ReenigneArcher14d ago
Namyts12d ago

Have fixed the quality gate issues & merge conflict.

Switching to SQLite sounds like a good idea to me - but I am concerned that it might not happen for a while...

This change would essentially just be adding 3 new fields to the new client table to represent their permissions. Not sure how I can prepare this PR in a way that makes it easier for your migration work in the roadmap - but I am not sure it makes it much harder either?

Let me know if there is anything you would like me to consider/change!