Commit Graph
164 Commits
Author SHA1 Message Date
Aine 40f2ec9492 fix command parsing 2022-09-07 23:51:37 +03:00
Aine 715ec1ef2a fix #19 2022-09-07 20:24:49 +03:00
Aine 4d01579505 move email sending to b.runSend() 2022-09-06 22:43:04 +03:00
Aine db135c0cb1 deconstruct getSubject and getBody 2022-09-06 22:34:21 +03:00
Aine bbb6bec35f update SetMTA comment 2022-09-06 22:21:23 +03:00
Aine af1b664274 cache empty settings 2022-09-06 22:02:21 +03:00
Aine 085cdf5dbf refactor email2content 2022-09-06 18:39:35 +03:00
Aine 7d435f7ba8 move email composing to utils 2022-09-05 20:38:58 +03:00
Aine 2427d41ae3 move parsing of !pm send to utils, update !pm send instructions 2022-09-05 20:10:07 +03:00
Aine 12a2d4c6f9 dkim 2022-09-05 17:02:00 +03:00
Aine fda0d62087 send emails 2022-09-04 22:09:53 +03:00
Aine a92b4c64ae Merge branch 'only-follow-invites-for-allowed' into 'main'
Only auto-join rooms when invited by allowed users

Closes #17

See merge request etke.cc/postmoogle!28
2022-08-31 12:59:04 +00:00
Slavi Pantaleev 61cc9b21c5 Only auto-join rooms when invited by allowed users
Previously, anyone (even across federation) could invite you to a
room and the bot would join. It may not have provided a useful purpose,
but it still joined all rooms it was invited to.

We now only join rooms when we're invited by a person who is actually
allowed to use the bot.

Fixes https://gitlab.com/etke.cc/postmoogle/-/issues/17
2022-08-31 15:54:56 +03:00
Aine a3c81ab232 Merge branch 'better-introduction' into 'main'
Improve introduction and getters usability

See merge request etke.cc/postmoogle!26
2022-08-31 07:40:25 +00:00
Aine ab95fe5d2d refactor to fmt.Sprintf() 2022-08-31 10:39:30 +03:00
Aine 104e948b9c remove migrations 2022-08-31 10:33:13 +03:00
Slavi Pantaleev 4b1ce195b4 Do not append domain twice when updating mailbox (again)
Fixes:

> `mailbox` of this room set to `test@domain@domain`

Previously fixed in 97a4d6c7bc, but it seems like we unintentionally
reintroduced this bug again at some point after that.
2022-08-31 09:16:16 +03:00
Slavi Pantaleev 60d3fbbba5 Improve introduction and getters usability
When someone first joins a room, they see some commands (`mailbox`,
`owner`, ..) and they know they are getters and setters, but they have
no good example as to how to use them.

Is it `!pm mailbox SOMETHING` or `!pm mailbox=SOMETHING` or something
else?

It's better if the introduction text gives you the full command you need
to get started (e.g. `!pm mailbox SOME_MAILBOX`), instead of a partial
command that you don't know how to use (e.g. `!pm mailbox` - this is
merely a getter and will not set your mailbox to `SOME_MAILBOX`).

Starting from this, I thought it would be a good idea to make all
option getters tell you how the commands are to be used. If you send
`!pm mailbox` and it tells you "not yet set", it should also tell you
how to actually set it (e.g. `!pm mailbox VALUE`).
2022-08-31 09:08:49 +03:00
Aine 75e5ed8245 Merge branch 'improve-help-wording' into 'main'
Improve help message wording

See merge request etke.cc/postmoogle!25
2022-08-30 16:43:02 +00:00
Slavi Pantaleev 7315013912 Improve help message wording
If're an admin and mess up the `users` list, you won't see "owner"
commands.

If you're just a regular room user (not an admin, not an owner), you'll
only see the `help` command in the `help` message.

Both of these situations may make you wonder:

- is that all there is?
- earlier I saw more commands, so what's going on?

Adding "and accessible to you" hopefully clears things up, or at least
it tries to make the help message more correct.
2022-08-30 19:04:44 +03:00
Aine 233d212143 fix botSettings.Users() 2022-08-30 18:35:10 +03:00
Aine 84b1900dbb adjust initBotUsers() 2022-08-30 18:29:16 +03:00
Aine 0c74ae02fb fix one value 2022-08-30 16:13:10 +03:00
Aine cec2761911 users adjustments 2022-08-30 15:43:06 +03:00
Aine ea1ef9da7f !pm users changes 2022-08-30 15:00:34 +03:00
Aine 00b84fba0e cache even unexisting bot settings 2022-08-30 14:47:16 +03:00
Aine 9f66d1fee6 rename options, rename settings types 2022-08-30 14:45:07 +03:00
Aine 627e090afd rename account data keys, rearrange code 2022-08-30 14:42:07 +03:00
Aine 5ed3a53223 diff bot and room settings 2022-08-30 14:37:19 +03:00
Aine f97ebb604a manage users in runtime, closes #16 2022-08-29 21:41:14 +03:00
Aine 0ba951fbe6 set default POSTMOOGLE_USERS pattern 2022-08-29 20:56:28 +03:00
Aine 89d5ec8a91 adjust !pm mailboxes, relates to #15 2022-08-29 20:31:25 +03:00
Aine e0bd71717c remove NOOWNER, closes #14 2022-08-29 20:21:37 +03:00
Aine ba73b5a97c add !pm delete, closes #13 2022-08-29 20:18:25 +03:00
Aine 505a1b42d7 removed federation, closes #12 2022-08-29 19:58:54 +03:00
Aine 5a5a649cba add cache 2022-08-29 15:28:37 +03:00
Aine 1a87929567 rename files; show commands by access level 2022-08-29 15:19:07 +03:00
Slavi Pantaleev bc30f59e96 Move owner commands to their own file 2022-08-29 14:25:14 +03:00
Slavi Pantaleev d20d4aa5bf Move mailboxes admin command to a separate file 2022-08-29 14:20:20 +03:00
Slavi Pantaleev e59f5d5502 Make Match() with empty list not return a positive result
Now that we use Match() in allowAdmin() as well, it's awkward to
have it return `true` when called with an empty admin list.
No admins defined was taken to mean "everyone is an admin".

We can either have a `len(users) == 0` check in `allowAdmin` which
rejects the request, or we can change `Match()` so that it doesn't
return positive responses when called with an empty list. Doing the
latter sounds better. It's more natural that matching against an empty list
will yield "no match".
2022-08-29 14:10:52 +03:00
Aine 6623251695 refactored 2022-08-29 12:30:43 +03:00
Slavi Pantaleev 79775c0c13 Add basic mailboxes command
This can be improved in the future, to show some additional information
about each mailbox like:

- "how many users are in that room"
- "which users are in that room"
- "who is the owner of the mailbox"

This can all be done later though.
2022-08-29 10:28:19 +03:00
Slavi Pantaleev a057654962 Put command access checks on the command level
Checking using `settings.Allowed` is odd. Not all commands are related
to setting configuration settings. Admin commands are coming in the
future, for which this is certainly not the case.

We now do access checks early on (during command processing), so command
handlers can be clean of access checks. If we're inside of a command
handler, the user is privileged to run it.
2022-08-29 10:27:53 +03:00
Slavi Pantaleev a62dc0df4f Add POSTMOOGLE_ADMINS 2022-08-29 09:10:31 +03:00
Aine 77a7e9efc6 Merge branch 'show-option-value-in-help' into 'main'
Show option values in help

See merge request etke.cc/postmoogle!21
2022-08-28 15:37:29 +00:00
Aine bd14987561 move settings.Allowed() to bot.Allowed() 2022-08-28 18:36:01 +03:00
Slavi Pantaleev 1d6b43a83a Reindent bot/bot.go 2022-08-28 17:56:19 +03:00
Slavi Pantaleev dc5ed41723 Merge branch 'main' into 'user-whitelisting'
# Conflicts:
#   bot/bot.go
2022-08-28 14:50:57 +00:00
Aine 9b1eb161e7 remove debug 2022-08-28 09:37:32 +03:00
Aine 13776ad7a6 properly update mailbox, fixes #9 2022-08-28 09:37:18 +03:00