Repository navigation
[ADD] pms_smartlock_salto: Salto KS vendor + base hooks - #86
Merged
Merged
Conversation
jesusVMayor
changed the base branch from
16.0_add_smartlocks_integration
to
16.0
June 12, 2026 06:56
jesusVMayor
force-pushed
the
16.0_add_smartlock_salto
branch
2 times, most recently
from
June 12, 2026 07:15
4a36095 to
6016286
Compare
Diff CoverageDiff: origin/16.0...HEAD, staged and unstaged changes
Summary
|
jesusVMayor
force-pushed
the
16.0_add_smartlock_salto
branch
2 times, most recently
from
June 12, 2026 07:48
2947802 to
d49b227
Compare
jesusVMayor
marked this pull request as ready for review
June 16, 2026 13:31
Salto KS smartlock provider for the PMS. pms_smartlock_salto: - lock.vendor dispatch + get_connector; guest identity passed per reservation via context (name + access-group label). Email is deliberately not sent so Salto does not email the guest. - salto.role submodel + "Fetch Salto roles" button so the operator picks the basic User role (role ids are unique per site). - Enter (U+21B5) keypad confirm key default. - purged flag + retention cron that hard-deletes suspended grants 15 days after checkout (revoke only suspends to free the license). pms_smartlock_base: - _apply_grant keeps the stored PIN when the vendor reports it unchanged (AccessGrant.pin=None), instead of overwriting it on modify. - _sync_create puts the reservation on the context for user-centric vendors; other vendors ignore it.
Salto enforces time-schedule datetimes in the IQ's local timezone (the hotel's), not UTC; pass pms.property.tz on the context so the connector localizes the window. Also guard single-word/empty guest names, which left last_name blank and made Salto reject the user.
jesusVMayor
force-pushed
the
16.0_add_smartlock_salto
branch
from
June 17, 2026 06:49
cb2f1fb to
b970e23
Compare
Member
Author
|
commitsun/roomdoo-smartlocks#18 ya mergeado, via libre a este |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds the Salto KS vendor to the smartlock integration. Pairs with library PR commitsun/roomdoo-smartlocks#18 (
feat/salto-license-lifecycle).Salto is user-centric (a guest = a site user assigned to a lock group), unlike the passcode vendors. All Salto-specific behaviour lives in this module; the base contract is untouched.
pms_smartlock_saltolock.vendordispatch +get_connector. Guest identity is passed per reservation via context (_sync_createsets it): the guest name fills the Salto user and the reservation locator labels the access group, so the hotel can tell whose credential is whose. Email is deliberately not sent — Salto would email the guest, and PIN delivery is a separate concern.salto.rolesubmodel + "Fetch Salto roles" button (role ids are unique per site, so they're pulled from the API; the operator picks the basic User role — never admin).↵, U+21B5).purgedflag + retention cron:revoke_accessonly suspends the user (frees the per-user license, disables the PIN); this cron hard-deletes the suspended grant 15 days after checkout.pms_smartlock_base(minimal hooks, vendor-agnostic)_apply_grantkeeps the stored PIN when the vendor reports it unchanged (AccessGrant.pin=None) instead of overwriting it on modify._sync_createputs the reservation on the context for user-centric vendors; other vendors ignore it.Notes
main(requirements points at@main).SALTO_CLIENT_ID/SALTO_CLIENT_SECRETin the deployment env.test_vendor,test_purge_cron) but not run here — left to CI on a clean DB.