diff options
| author | Jeff Halter <868228+jhalter@users.noreply.github.com> | 2022-06-25 21:12:03 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-06-25 21:12:03 -0700 |
| commit | da5bdd82beef668f49c2cec09cea85435c0bec34 (patch) | |
| tree | fd0734aa654e78ee9ddfcbe98998d55208ce1e9f /hotline/server.go | |
| parent | cb162e0bcfeb3c3d06e85a82ecbc47e6de951406 (diff) | |
| parent | 688c86d220b0d2eef1f2a3ef0a389261dc48be93 (diff) | |
Merge pull request #46 from jhalter/implement_access_no_agreement
Implement Don't Show Agreement permission
Diffstat (limited to 'hotline/server.go')
| -rw-r--r-- | hotline/server.go | 8 |
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) { |