aboutsummaryrefslogtreecommitdiff
path: root/hotline/server.go
diff options
context:
space:
mode:
authorJeff Halter <868228+jhalter@users.noreply.github.com>2022-06-25 21:10:55 -0700
committerJeff Halter <868228+jhalter@users.noreply.github.com>2022-06-25 21:10:55 -0700
commit688c86d220b0d2eef1f2a3ef0a389261dc48be93 (patch)
treeba99952597be980098ac49004920046cd2701d4a /hotline/server.go
parent264b7c27c7a46e2d0eb699812c8e38cf771fcf00 (diff)
Implement Don't Show Agreement permission
Diffstat (limited to 'hotline/server.go')
-rw-r--r--hotline/server.go8
1 files changed, 6 insertions, 2 deletions
diff --git a/hotline/server.go b/hotline/server.go
index 41b9a97..f3574de 100644
--- a/hotline/server.go
+++ b/hotline/server.go
@@ -653,8 +653,12 @@ func (s *Server) handleNewConnection(ctx context.Context, rwc io.ReadWriteCloser
// Send user access privs so client UI knows how to behave
c.Server.outbox <- *NewTransaction(tranUserAccess, c.ID, NewField(fieldUserAccess, *c.Account.Access))
- // Show agreement to client
- c.Server.outbox <- *NewTransaction(tranShowAgreement, c.ID, NewField(fieldData, s.Agreement))
+ // Users with accessNoAgreement do not receive the server agreement on login
+ if c.Authorize(accessNoAgreement) {
+ c.Server.outbox <- *NewTransaction(tranShowAgreement, c.ID, NewField(fieldNoServerAgreement, []byte{1}))
+ } else {
+ c.Server.outbox <- *NewTransaction(tranShowAgreement, c.ID, NewField(fieldData, s.Agreement))
+ }
// Used simplified hotline v1.2.3 login flow for clients that do not send login info in tranAgreed
if c.Version == nil || bytes.Equal(c.Version, nostalgiaVersion) {