Commit graph

1000 commits

Author SHA1 Message Date
Pavel Djundik eaf8c35f40 Warn about old config folder 2018-03-02 19:05:30 +02:00
Pavel Djundik 7a0a1b86f6 Set channel state to joined when channel already exists
Fixes #2141
Fixes #2103
2018-03-02 12:29:40 +02:00
Pavel Djundik 59ec0348b6
Merge pull request #1930 from thelounge/astorije/ctcp-request
Let user know someone is making a CTCP request against their nick
2018-02-27 13:15:27 +02:00
Pavel Djundik 1b97c1031d Log socket close error if any 2018-02-26 14:20:23 +02:00
Jérémie Astori 7a6b560303
Merge pull request #2098 from keegan/master
Enable logging for LDAP users
2018-02-24 12:54:48 -05:00
Keegan 4fe7dc0808 Enable logging for LDAP users 2018-02-23 20:07:08 -05:00
Pavel Djundik 7f82b440a2
Fix log.warn in ldap 2018-02-23 17:52:16 +02:00
Pavel Djundik 9c46bc5713 Change wsEngine to "ws"
uWS causes major delays - https://github.com/socketio/socket.io/issues/3100
2018-02-23 12:35:35 +02:00
Jérémie Astori a24ab74c4c
Merge pull request #2090 from thelounge/xpaw/rng-nick
Allow generating random numbers in nick on page load
2018-02-22 20:54:52 -05:00
Pavel Djundik 3da870be8c Send empty banlist error to lobby for channels user is not in 2018-02-22 11:01:49 +02:00
Jérémie Astori f8c894d7e1
Merge pull request #2082 from thelounge/xpaw/rm-isRegistered
Remove isRegistered
2018-02-22 00:45:22 -05:00
Jérémie Astori fa4331bcd9
Limit CTCP requests to prevent easy spamming 2018-02-22 00:42:33 -05:00
Jérémie Astori e03694b49c
Let user know someone is making a CTCP request against their nick 2018-02-22 00:42:33 -05:00
Pavel Djundik 59ec07be87
Update all links to thelounge repository 2018-02-21 22:47:52 -05:00
Pavel Djundik 906e79f39b Allow generating random numbers in nick on page load 2018-02-21 19:34:33 +02:00
Jérémie Astori 863e9b0b48
Merge pull request #2088 from thelounge/xpaw/harden-server-events
Ignore events on the server if incorrect data is supplied
2018-02-21 09:57:19 -05:00
Jérémie Astori 5bc3ef3ed8
Merge pull request #1918 from williamboman/fix/send-accept-language-in-link-previews
relay client's preferred language in link preview requests
2018-02-21 09:54:08 -05:00
Pavel Djundik dfba84d811
Merge pull request #2081 from thelounge/xpaw/secure-localhost
Consider localhost connections secure
2018-02-21 14:00:56 +02:00
Pavel Djundik b501d648e3 Ignore events on the server if incorrect data is supplied 2018-02-21 13:17:56 +02:00
William Boman acb6179b30 relay client's preferred language in link preview requests
Closes #1440.
2018-02-21 10:35:33 +01:00
Jérémie Astori 0602a9495a
Merge pull request #2036 from thelounge/xpaw/prefetch-errors
Report server errors when preview fetch fails
2018-02-20 22:21:39 -05:00
Pavel Djundik b10962f13f Remove isRegistered 2018-02-20 13:24:46 +02:00
Pavel Djundik 37c61e2413 Report server errors when preview fetch fails 2018-02-20 11:33:42 +02:00
Pavel Djundik 913e88185e Change (un)install commands to use locally installed yarn 2018-02-20 11:28:14 +02:00
Pavel Djundik dc6252d3f6 Consider localhost connections secure 2018-02-20 10:36:19 +02:00
Pavel Djundik c733e72e7a Auto-fix code for padding-line-between-statements rule 2018-02-20 09:28:04 +02:00
Pavel Djundik 7330dc9553
Rewrite ctcp handling 2018-02-19 14:43:58 -05:00
Pavel Djundik 6c7ddd0f47
Merge pull request #1734 from thelounge/astorije/thelounge_home
Switch default home location to `~/.thelounge`
2018-02-19 20:54:57 +02:00
Pavel Djundik 51684f7a2a Switch default home location to ~/.thelounge and remove support of .lounge_home 2018-02-19 20:43:53 +02:00
Jérémie Astori c7ad6d9d3d
Merge pull request #2077 from thelounge/astorije/rm-lounge-cli
Remove support for the `lounge` CLI (which was replaced with `thelounge`)
2018-02-19 13:27:47 -05:00
Jérémie Astori 69a4207ea4
Remove support for the lounge CLI (which was replaced with thelounge) 2018-02-19 13:14:14 -05:00
Pavel Djundik c97352905d
Merge pull request #1962 from thelounge/xpaw/no-var
Enable no-var rule
2018-02-19 20:12:31 +02:00
Pavel Djundik 8886459be9
Merge pull request #2049 from thelounge/xpaw/ui-network-status
Sync network status and security to client UI
2018-02-19 19:57:36 +02:00
Jérémie Astori 26fa60f475
Merge pull request #1730 from thelounge/astorije/rm-css-theme-deprecation
Remove deprecated support for CSS filenames in theme configuration
2018-02-19 12:55:38 -05:00
Pavel Djundik a3e448acf5 Enable no-var rule
Fixes #1961
2018-02-19 19:49:39 +02:00
Pavel Djundik 0d068f34a8
Merge pull request #1966 from thelounge/xpaw/no-session-convert
Remove session token hash conversion
2018-02-19 19:33:42 +02:00
Jérémie Astori ab982ecc3c Remove deprecated support for CSS filenames in theme configuration 2018-02-19 19:17:45 +02:00
Pavel Djundik 2685f46669
Merge pull request #1834 from thelounge/astorije/rm-deprecated-options
Remove deprecated options for `thelounge start`
2018-02-19 19:10:14 +02:00
Pavel Djundik 3ccdee6f00
Merge pull request #1927 from thelounge/astorije/fix-ctcp
Fix CTCP commands always sent upper-case
2018-02-19 19:06:08 +02:00
Pavel Djundik a09b21decd
Merge pull request #1733 from thelounge/astorije/home_option_env_var
Remove deprecated support for the `--home` option and `$LOUNGE_HOME` environment variable
2018-02-19 18:51:44 +02:00
Pavel Djundik 40f05b837d
Merge pull request #1729 from thelounge/astorije/rm-debug-deprecation
Remove deprecated support for `debug` as a boolean in the configuration file
2018-02-19 18:51:11 +02:00
Pavel Djundik a145b8e27c
Merge pull request #1728 from thelounge/astorije/rm-autoload-deprecation
Remove autoload deprecation notice
2018-02-19 18:50:51 +02:00
Pavel Djundik 742929280d
Merge pull request #1919 from thelounge/yamanickill/image-size-error
Show error if image is greater than max prefetch size
2018-02-19 18:49:18 +02:00
Jérémie Astori 4196e627f9 Fix CTCP commands always sent upper-case
This is a Node v6+ only fix.
`irc-framework` upper-cases the first argument, and we were sending everything as a string in first argument. This correctly splits.
2018-02-19 18:43:52 +02:00
Pavel Djundik b82ceb162b
Merge pull request #2059 from thelounge/xpaw/motd
Render MOTD with a single message
2018-02-19 18:42:16 +02:00
Jérémie Astori 416f45d1e3 Use some ES6/Node v4-only syntax when possible 2018-02-19 18:30:00 +02:00
Jérémie Astori c432ee431d Switch to Node v6 as the oldest version we support
Removed a deprecation notice I added in an earlier commit (ef1c59072c).
2018-02-19 18:30:00 +02:00
Pavel Djundik b57830b859 Sync network status and security to client UI
Co-Authored-By: Jérémie Astori <astorije@users.noreply.github.com>
2018-02-19 13:12:01 +02:00
Pavel Djundik f92aeceb22
Fix bind not being passed to irc-framework 2018-02-18 13:07:24 +02:00
Jérémie Astori c8418a638d
Merge pull request #2058 from thelounge/xpaw/channel-state
Track channel state to allow removing channels user is not in
2018-02-17 19:27:09 -05:00
Pavel Djundik 38bc8e6782 Display password field when displayNetwork is false
Fixes #509
2018-02-17 10:23:01 +02:00
Pavel Djundik 0d074f1cbe Provide exact version into npm install command 2018-02-14 12:09:02 +02:00
Pavel Djundik d1e5a8f492 Render MOTD with a single message 2018-02-14 11:00:46 +02:00
Pavel Djundik 72e5e9f237
Merge pull request #2055 from thelounge/xpaw/fix-2054
Fix border after nickname not taking full height
2018-02-13 16:22:43 +02:00
Pavel Djundik 13e81e5a41 Fix themes not loading
Broken by e4701be708
2018-02-13 13:57:13 +02:00
Pavel Djundik fa993c29d5 Trim MOTD to avoid empty line at the end 2018-02-13 12:38:33 +02:00
Pavel Djundik 7e704b2d73 Track channel state to allow removing channels user is not in 2018-02-13 12:30:26 +02:00
Al McKinlay 865e5bb41b
Merge pull request #1933 from RockyTV/rockytv
Show channel name on channel-related errors
2018-02-13 10:03:20 +00:00
Pavel Djundik 4639a2528d
Merge pull request #2021 from thelounge/xpaw/ldapjs-no-dtrace
Use forked ldapjs to remove dtrace
2018-02-13 11:58:25 +02:00
Jérémie Astori 6d931e8dcb
Make sure packages are correctly removed from package.json when uninstalled 2018-02-13 01:06:31 -05:00
Jérémie Astori 2c570fa9ef
Load packages from package.json, fix loading thelounge metadata from the wrong file, add tests 2018-02-13 01:06:31 -05:00
Jérémie Astori b5d96d215f
Ensure packages loaded are directories 2018-02-13 01:06:30 -05:00
Alexandre Oliveira c53015c1af Show channel name on channel-related errors
Fixes #1207
2018-02-12 15:22:31 -02:00
Pavel Djundik aee1ec2739 Fix crash when hostname is changed in lockNetwork mode
Fixes #2040
2018-02-07 12:03:25 +02:00
Pavel Djundik c4f6701d65 Use forked ldapjs to remove dtrace
Fixes #1756
2018-02-06 13:21:59 +02:00
Pavel Djundik b7ccb5a294 Fix queries going to lobby if the network name matches user name
Fixes #1501
Fixes #1983
2018-02-05 14:35:01 +02:00
Jérémie Astori 91e3ca88bb
UI for "Image too large" errors 2018-02-01 21:14:37 -05:00
Al McKinlay 335bd803af
Show error if image is greater than max prefetch size 2018-02-01 21:09:45 -05:00
Pavel Djundik 1fdd1ff0c3 Define which message types should not be logged 2018-02-01 10:03:10 +02:00
Jérémie Astori 93265ef830
Merge pull request #2020 from thelounge/xpaw/fix-1991
Wait for server response when parting channels
2018-02-01 00:42:17 -05:00
Pavel Djundik e6241556be Fix #2024 - Send visible defaults when displayNetwork is false 2018-01-31 23:14:26 +02:00
Pavel Djundik 33dbc80dbc Fix #1991: Wait for server response when parting channels 2018-01-31 10:04:54 +02:00
Jérémie Astori c605f35335
Merge pull request #2019 from thelounge/yamanickill/save-queries
Save query channels in user.json
2018-01-30 19:27:28 -05:00
Jérémie Astori dcdc1d150f
Merge pull request #1979 from thelounge/astorije/index
Do not statically serve the index template prior to rendering it
2018-01-30 19:21:07 -05:00
Al McKinlay 5cf24b80e6 Save query channels in user.json 2018-01-30 17:14:51 +00:00
Al McKinlay 72fafc5b4f Allow https css
Fixed #2012
2018-01-30 09:23:34 +00:00
Jérémie Astori 432023fc7e
Make sure existing packages (and themes) are not deleted when installing a new one on Node.js v8
- When installing a package on Node v8 (or whatever npm version ships with it - v5), all packages not listed in `package.json` are removed. Since we explicitly added `--no-save`, installing a theme would delete the previous one. I am now checking that the file already exists or not. This means that it will still happen to people the next time they run `thelounge install`, because the previous install did not save into `package.json` :/
- Adding `--save` to make sure that the same, correct behavior is done on Node v6 as well (npm v3)
- Adding `--save-exact` for good measure.
2018-01-16 20:25:35 -05:00
Jérémie Astori 33d82287be
Do not statically serve the index template prior to rendering it
Without this, going to `https://thelounge.example.com/index.html` would return the raw file. This now excludes it from the `public` folder so it cannot be rendered as is.
Renaming the file is for good measure, to indicate that this HTML file must be templated. Because it is a straight rename with no modification, rebasing PRs on it should not be to painful, as git re-applies changes on renamed files.
2018-01-14 13:02:27 -05:00
Jérémie Astori 42199eda29
Merge pull request #1978 from merlinthp/chpass_callback
Add missing execution of callback in ClientManager.updateUser
2018-01-13 18:47:01 -05:00
Howard Johnson 10d43f27ed Add missing executions of callback in ClientManager.updateUser
Signed-off-by: Howard Johnson <merlin@merlinthp.org>
2018-01-13 23:05:23 +00:00
Pavel Djundik 1aaa9391db
Merge pull request #1970 from thelounge/astorije/fix-themes
Fix local themes not being found in theme selector dropdown, and serve local themes using the themes route instead of the public folder
2018-01-13 23:09:55 +02:00
Jérémie Astori c49239b4f1
Fix themes not being found in theme selector dropdown 2018-01-13 13:45:30 -05:00
Jérémie Astori f8c66aa512
Merge pull request #1975 from thelounge/xpaw/fix-1902
Fix enabling push notifications on Firefox
2018-01-13 13:14:33 -05:00
Jérémie Astori 45dc52886e
Fix thelounge uninstall command
- Exit with code 1 when package was not installed
- Run a pre-step to check if package is installed before uninstalling. I have tried every possible way I could think of without that first `npm list` step based on output of `npm uninstall`, but different npm versions produce different outputs, so there is nothing reliable. This is a more robust way to do so anyway.
- Consolidate error handlers
2018-01-13 02:00:37 -05:00
Pavel Djundik 8d0bdfc200 Fix #1902 - unable to enable push notifications on Firefox 57 2018-01-12 12:04:04 +02:00
Pavel Djundik 59a1a9cd36 Fix #1958: Remove session token hash conversion 2018-01-11 21:44:00 +02:00
Pavel Djundik 98c3108bde
Merge pull request #1940 from thelounge/xpaw/fix-1934
Hash user tokens, increase token entropy
2018-01-11 13:34:14 +02:00
Jérémie Astori 40aadf7c95
Merge pull request #1619 from thelounge/1447-css-plugin
Allow custom css from plugins
2018-01-10 21:44:47 -05:00
Pavel Djundik eac092e661 Hash user tokens, increase token entropy
Fixes #1934
2018-01-10 15:54:52 +02:00
Jérémie Astori b3702b0550
Merge pull request #1938 from thelounge/astorije/uninstall-packages
Add a `thelounge uninstall` command to remove themes and packages
2018-01-09 00:51:27 -05:00
Pavel Djundik fc39a67e10 Only emit "more" history to the client that requested it 2018-01-07 15:06:59 +02:00
Jérémie Astori d2388dc623
Bail when uninstalling if package.json for TL packages does not exist
It is on purpose that the message is the same than when a package was not installed. From a user standpoint, it only matters that this specific package was not installed.
2018-01-06 12:12:10 -05:00
Jérémie Astori 3971ecff63
Customize a bit thelounge install|uninstall
- Hides progress bars that flash when installing/uninstalling as it does not bring real value here, at least for now
- Inform user if package being uninstalled was not actually installed
- Do not display npm outputs, mention which version was installed (this will probably need refining when installing packages with dependencies)
2018-01-06 12:12:10 -05:00
Jérémie Astori d9cb640c2a
Add a thelounge uninstall command to remove themes and packages 2018-01-06 12:12:09 -05:00
Al McKinlay 3510094665 Allow custom css from plugins 2018-01-05 17:40:47 +00:00
Pavel Djundik 4307bb0563
Fix nicknames in text logs 2018-01-05 15:41:03 +02:00
Pavel Djundik 6675ced196 Store images with correct file extension 2018-01-03 13:33:52 +02:00
Jérémie Astori 835236f8ac
Merge pull request #1901 from thelounge/xpaw/fix-nicks-match
Do not match nicknames incorrectly as part of a bigger word
2017-12-27 14:32:59 -05:00
Jérémie Astori dab4fc44ea
Make sure data URIs are allowed by CSP not to block video controls 2017-12-27 13:56:38 -05:00
Pavel Djundik 349136f172 Do not match nicknames incorrectly as part of a bigger word
Fixes #1776
Fixes #1885
2017-12-27 20:44:59 +02:00
Jérémie Astori 238e894377
Improve the version checking part of the changelog feature
- There is no client caching of the changelog/version anymore. Instead, server returns the expiration date of its cache, and that is used by the client as well.
- There is now a "Check now" button on the client that appears when data is stale. This means that info is fetched only once and never refreshed (it was refreshed every hour before) unless the user explicitly wants to check latest version, which in turn is as stale as server info is, i.e. 15 minutes max.
- Button style is shared with the "Join a channel" feature, `.btn-small` (not `.btn-sm` to be explicit that this is not a Bootstrap thing).
- Version checker content is now centralized in the `version_checker` template, instead of being partially in the checker template, partially in the Help template,  and partially in the code.
- A "Try again" button lets user attempt to fetch info instead of forcing them to reload the page.
- Use Flexbox to display a nicer version checker: icon is slightly bigger, and button is always aligned on the right.
- Changelog logic has been removed from `lounge.js` and moved into the component file.
- Changelog template is only passed what it needs instead of everything the server gives us.
- Public version now displays version checker, since server is caching things.
- Cleaner code overall.
2017-12-25 17:44:53 -05:00
Jérémie Astori 32a95c4d75
Merge pull request #1327 from thelounge/xpaw/view-changelog
Changelog viewer and updater checker in the client
2017-12-23 16:13:29 -05:00
Jérémie Astori 57c24704af
Cache changelog information on the server for 15 minutes 2017-12-23 13:37:33 -05:00
Pavel Djundik 6377e0de66 Fix #1883: message gaps when reconnecting 2017-12-23 11:36:52 +02:00
Jérémie Astori 9691df67e3
Improve UI of the About section and changelog viewer
- Keep consistent width between the Help page and Changelog (which is already different from other windows 😠)
- Add icons to the About links
- Make sure `li` elements (i.e. all the lists in changelogs) are consistent in size with rest of the client
- Display version and release notes link on the "About The Lounge" header line, smaller, pushed to the right
- Check new releases when opening the Help window in order to display it without having to open the release notes. Release notes are being fed to the Changelog page at that moment to avoid fetching twice.
- Re-check version/fetch release notes after 24h. Since The Lounge can now run 24/7, reconnect when losing the network, we have to assume an "always-on" usage.
- Change icon, animate background color when getting response from GitHub to avoid flashing.
- Combine click handlers with our wonderful window management. These were the same handler, even with similar checks (`target` exists, etc.), just in 2 different places. This is necessary for the next item.
- Combine "Open release notes" and "Go back to Help" button behaviors with window management handlers. The window management code is gross as ever, and is in desperate need of a refactor, but at least there is no duplicated code for the same behavior + history management. This fixes the "Next" history behavior (however reloading the app while viewing the notes does not load on the notes, but this is a bug for a different PR!).
- Added a rule in the history management thingy: if a link we want to add history handling to has an `id`, store that in the state
- Added a button to go back to the Help window
- Fixed links to releases
- Send user to the GitHub issues *list* instead of *new issue form* because if they do not have a GitHub account, they will be redirected to the login page, which is a rather unpleasant experience when you are already confused...
- Fixed a bug that would return data about a new release in `latest` even though it is already the `current`. It was showing the current version as "The Lounge v... is now available".
- Added https://user-images.githubusercontent.com to the CSP rule when prefetch storage is enabled, because that is where we have stored screenshots in the changelog so far. Meh (we can improve that later if we decide to have a dedicated place for screenshots).
- Fetch changelog info even in public mode because users in public mode can access the release notes. They do not see the result of the version checker however.
2017-12-22 22:46:11 -05:00
Pavel Djundik df858a5aaf
Add changelog viewing and update checking 2017-12-22 16:26:12 -05:00
Pavel Djundik dc8c10f461 Correctly fix from field in messages
This should have been in #1859
2017-12-20 13:45:17 +02:00
Pavel Djundik ce5d18c4fa Fix possible issues with from in messages 2017-12-19 13:45:33 +02:00
Pavel Djundik c06fb9a275 Clear storage folder after successful start and graceful exit 2017-12-18 16:59:05 +02:00
Max Leiter d4ad60c11d Support video file previews 2017-12-13 17:52:07 -08:00
Pavel Djundik ccd37aba8f
Merge pull request #1725 from keegan/master
Stop LDAP Auth from succeeding without password
2017-12-13 20:20:10 +02:00
Pavel Djundik 7dcab09516
Merge pull request #1806 from MaxLeiter/sound
Support audio file previews
2017-12-13 11:03:04 +02:00
Jérémie Astori 96d3e58734
Remove deprecated options for thelounge start
This was replaced with the `--config` option.
2017-12-13 01:33:25 -05:00
Max Leiter ad1114ccfe Support audio file previews 2017-12-12 11:29:13 -08:00
Jérémie Astori 9a8cde189d
Remove autoload deprecation notice 2017-12-12 02:58:17 -05:00
Jérémie Astori deaf803467
Remove deprecated support for debug as a boolean in the configuration file 2017-12-12 02:57:39 -05:00
Jérémie Astori 826482bb5b
Remove deprecated support for the --home option and $LOUNGE_HOME environment variable 2017-12-12 02:54:50 -05:00
Jérémie Astori d89112173d
Fix command line index parsing options (--home and --config) twice 2017-12-11 23:53:51 -05:00
Jérémie Astori 6547d18e7f
Color all references to deprecations in bold red 2017-12-11 23:48:52 -05:00
Jérémie Astori 07a01b0547
Deprecate existing options of thelounge start in favor or -c, --config 2017-12-11 23:48:52 -05:00
Jérémie Astori df2787d3e9
Add a --config / -c option to the start CLI command to arbitrarily override any configuration key
The biggest caveat is that JS code (such as functions) will not be interpreted as such, on purpose, for security precautions. If such thing is needed, then a configuration file must be used.
2017-12-11 23:48:52 -05:00
Jérémie Astori b90c224a99
Define a raw logger to avoid using console.log, use it in extra help for environment variables, and add a test for this
This has multiple benefits:

- Respects the "Do not mock what you do not own" principle, instead we mock `log.raw` when necessary
- Lets us not re-assign `console.log`, which breaks as Mocha uses `console.log` as well
- Save and restore initial `log.raw` in test hooks (before/after), otherwise this would break Mocha/Chai
2017-12-11 23:48:51 -05:00
Erik Vosseberg 33d865501d
Add whois and conversation as action to user contextmenu
Add Op specific actions to contextMenu

Show context menu when left clicking user

Switch to using data attributes as selectors

remove ban as possible action

Move `isOpInChannel()` to utils.js

Capitalize strings

use CSS.escape for `ownNick`

use string interpolation

properly point to findCurrentNetworkChan

Move context menu item actions to command pattern

add icons for context menu actions

Make list in context menu always list.

remove empty lines in style.css

use info circle instead of question circle

change context menu labels.

change contextMenuActions.execute to more explicit method.
2017-12-11 23:04:29 -05:00
Jérémie Astori c0869b05a3
Merge pull request #1807 from thelounge/astorije/users-commands
Do not load user commands or display them on `--help` if public mode or using LDAP
2017-12-10 14:24:55 -05:00
Jérémie Astori 206ded55ff
Warn if user configuration being loaded is empty 2017-12-10 01:03:00 -05:00
Jérémie Astori c21aee3d4a
Do not load user commands or display them on --help if public mode or using LDAP 2017-12-09 01:51:08 -05:00
Jérémie Astori c038935b96
Move user commands to their own subfolder 2017-12-09 01:38:52 -05:00
Jérémie Astori 844ca1fbe6
Merge pull request #1811 from thelounge/astorije/improve-helper
Clean up path helpers, expand defaults location in `thelounge --help`, add tests for `expandHome`
2017-12-08 21:53:14 -05:00
Jérémie Astori 22237658cb
Add some unit tests for Helper.expandHome 2017-12-08 19:50:32 -05:00
Jérémie Astori 52d5cb2311
Expand home shorthand in CLI help around THELOUNGE_HOME environment variable 2017-12-07 23:03:40 -05:00
Jérémie Astori 0482747781
Only use helpers and not shared variables around path helpers
This refactor has a few benefits, for example there cannot be a rogue update of `Helper.CONFIG_PATH` or something.
2017-12-07 23:02:32 -05:00
Pavel Djundik fb0f68f8a5 Harden content security policy even further 2017-12-07 20:45:45 +02:00
Pavel Djundik f9be519c2f
Merge pull request #1593 from RJacksonm1/reload-passwords-all-proper-like
Ensure passwords are reloaded when updated via CLI
2017-12-07 13:18:16 +02:00
Pavel Djundik 5e48e04623 Show notices and errors inline 2017-12-06 17:58:52 +02:00
Rob Jackson 15f7f2e371
Ensure passwords are reloaded when updated via CLI (fixes #598) 2017-12-05 18:52:08 -05:00
Pavel Djundik 2d0ddfb2e8
Merge pull request #1778 from thelounge/xpaw/lazy-init
Heavily improve performance of "init" event
2017-12-05 12:03:01 +02:00
Pavel Djundik b5d39b96b9
Handle CHGHOST cap 2017-12-04 23:33:48 -05:00
Pavel Djundik 5fc70397a9 Make sure all joins send filtered clone 2017-12-03 16:31:37 +02:00
Pavel Djundik 552f3da67e Implement manual network/channel cloning for better performance 2017-12-03 16:31:37 +02:00
Pavel Djundik 41e121d270 Only emit a single message per channel on init 2017-12-03 16:13:18 +02:00
Jérémie Astori 052248445c
Do not rename home file as it is very likely to have permission issues
On most systems (Linux at least), to install a npm package locally, one must use `sudo`. When The Lounge runs, it usually does not run with `sudo`. This causes the program to crash as user running The Lounge cannot create/delete files there.

We will let people manually convert this file instead of doing it for them. This file is mainly intended for package authors anyway, most users will never have to touch it.
2017-12-01 01:33:04 -05:00
Pavel Djundik 104e270882
Merge pull request #1771 from thelounge/astorije/fix-user-in-msg
Clone instances of `User` in `Msg` to avoid unintentional mutations
2017-11-30 11:29:23 +02:00
Pavel Djundik be6975cb83
Merge pull request #1772 from thelounge/astorije/fix-nick-change
Fix nick changes wrongly reported
2017-11-30 11:26:26 +02:00
Jérémie Astori 4ec10b922a
Clone instances of User in Msg to avoid unintentional mutations 2017-11-30 00:41:19 -05:00
Jérémie Astori e60bbd9548
Fix nick changes wrongly reported 2017-11-29 18:44:33 -05:00
Jérémie Astori c0d348a678
Fix default value given to Msg.from
- `{}` is not falsey so Handlebars would try to render the block (see http://handlebarsjs.com/builtin_helpers.html#conditionals), therefore with a `nick` of `undefined`, which breaks `colorClass` (doing `undefined.length)
- There does not seem to be a way to check for empty objects in Handlebars (sigh) so checking `from.nick` seems like the most reliable way to check for a non-empty value. Alternatively, we could use a helper to check `{}` but meh.
2017-11-29 18:37:17 -05:00
Jérémie Astori 7daf566025
Merge pull request #1758 from MaxLeiter/improve-regex
update nick regex for linking nicks in text
2017-11-27 18:30:37 -05:00
Max Leiter f98deaba70 update nick regex for linking nicks in text 2017-11-27 13:58:10 -08:00
Jérémie Astori b53f1719eb
Merge pull request #1749 from thelounge/astorije/avoid-escape-quotes
Avoid escaping quotes whenever possible
2017-11-27 12:57:55 -05:00
Jérémie Astori 39e99fcd29
Merge pull request #1753 from thelounge/xpaw/webp
Detect image/webp as an image
2017-11-27 12:55:27 -05:00
Max Leiter 3d31fa4686 Link nicks mentioned in messages 2017-11-27 09:10:56 -08:00
Pavel Djundik 4e45820235
Detect image/webp as an image 2017-11-27 15:50:35 +02:00
Pavel Djundik ba002cca64
Merge pull request #1708 from thelounge/astorije/thelounge
Switch CLI tool from `lounge` to `thelounge`, deprecate `lounge`
2017-11-27 13:58:46 +02:00
Jérémie Astori 287c3a8223
Avoid escaping quotes whenever possible
Our `.eslintrc.yml` configuration file already allows for avoiding escape (see [ESLint doc for `avoidEscape`](https://eslint.org/docs/rules/quotes#avoidescape)) so we might as well use it. We already use this in a few places I believe.
2017-11-26 17:34:28 -05:00
Pavel Djundik 727021be68 Call callback on fetch error 2017-11-25 20:59:12 +02:00
Jérémie Astori 7fb92fee64
Merge pull request #1717 from thelounge/astorije/thelounge_home-env-var
Deprecate `LOUNGE_HOME` env var in favor of `THELOUNGE_HOME`, `.lounge_home` file in favor of `.thelounge_home`
2017-11-22 16:39:02 -05:00
Jérémie Astori aca23257ed
Switch CLI tool from lounge to thelounge and deprecate lounge
This is in preparation of The Lounge v3 which will make `thelounge` uniform across the entire project. No more confusion!
2017-11-22 16:37:26 -05:00
keegan f73132e226
Stop LDAP Auth from succeeding without password 2017-11-21 19:19:24 -05:00
Jérémie Astori 827f1dab96
Deprecate LOUNGE_HOME env var in favor of THELOUNGE_HOME, .lounge_home file in favor of .thelounge_home
This is one more step towards uniformization of lounge/thelounge due with The Lounge v3.
2017-11-21 00:36:26 -05:00
Erik Vosseberg f40edc7dc2
Include all available whois info 2017-11-21 00:27:24 -05:00
Pavel Djundik 01f524b7c5 Don't send defaults if not displaying network 2017-11-19 19:46:04 +02:00
Pavel Djundik adab03f730 Fix test 2017-11-19 19:43:43 +02:00
Pavel Djundik e86a155ec2 Remove express-handlebars, read manifest.json to get theme-color 2017-11-19 19:43:43 +02:00
Pavel Djundik c30f4aaaeb Move help to view 2017-11-19 19:43:43 +02:00
Pavel Djundik 8d88779918 Fix options 2017-11-19 19:43:42 +02:00
Pavel Djundik 711b5e1d91 Make settings/options mostly work
Fixes #1672
2017-11-19 19:43:42 +02:00
Pavel Djundik 055bd5dca5
Merge pull request #1580 from thelounge/xpaw/mobile-active-notifications
Use service worker to display notifications if available
2017-11-19 18:40:45 +02:00
Pavel Djundik 57289396da
Not all topic callbacks include nick 2017-11-19 18:30:10 +02:00
Pavel Djundik 0402554563 Move cleanIrcMessage to a separate file 2017-11-19 18:19:52 +02:00
Pavel Djundik 0f75c1a138 Change users array to be a Map 2017-11-19 11:35:15 +02:00
Pavel Djundik 74dcc52657
Refactor how user object is sent to the client 2017-11-19 02:46:45 -05:00
Jérémie Astori f2d9ef62cf
Merge pull request #1715 from thelounge/astorije/deprecate-node-v4
Deprecate support of Node v4 in preparation of The Lounge v3
2017-11-19 01:05:57 -05:00
Jérémie Astori 3af9a45087
Merge pull request #1676 from realies/patch-1
handle empty client queries
2017-11-19 00:42:10 -05:00
realies c5de1b3dbe
handle empty client queries 2017-11-19 00:33:29 -05:00
Jérémie Astori ef1c59072c
Deprecate support of Node v4 in preparation of The Lounge v3 2017-11-18 13:52:31 -05:00
Jérémie Astori 1dc92d8934
Enforce dangling commas with ESLint
¯\_(ツ)_/¯
2017-11-15 01:35:15 -05:00
Pavel Djundik e5cded0ad6 Fix local theme folder 2017-11-12 21:11:08 +02:00
Pavel Djundik 9ff398dac3 Go back to writing user files synchronously 2017-11-11 20:44:09 +02:00
Pavel Djundik feb7d9d4bb Fix #1692 when kicker is server 2017-11-08 23:10:17 +02:00
Pavel Djundik 81e3e88391
Merge pull request #1636 from thelounge/xpaw/cleanup-clientmanager
Cleanup client manager functions
2017-10-29 10:25:42 +02:00
Pavel Djundik 3f2a017583 Create public folder with webpack 2017-10-18 21:20:12 +03:00
Pavel Djundik a263c3eab9 Merge pull request #1615 from dgw/mark-echoes-read
Mark channels as read when receiving self-messages
2017-10-17 16:25:59 +03:00
dgw d675297405 Mark channels as read when receiving self-messages
Resets highlight counter and last unread message ID on server, and
clears the badge on the active client when the message is rendered.

Resolves #911
2017-10-17 08:05:35 -05:00
Pavel Djundik 50504ed09b Fix possible race condition when attaching clients 2017-10-17 12:45:18 +03:00
Pavel Djundik 280eea970a Get client ip address correctly 2017-10-17 10:35:28 +03:00
Pavel Djundik 5c45321cca Cleanup client manager functions 2017-10-15 19:05:19 +03:00
Pavel Djundik 44acc5cb00 Teardown sockets in tests 2017-10-06 12:53:08 +03:00
Jérémie Astori 0cc9c4166b Merge pull request #1583 from thelounge/astorije/thelounge-packages
Use `thelounge` instead of `lounge` when it comes to external packages
2017-09-30 23:47:02 -04:00
Jérémie Astori c3ccfb092a Merge pull request #1579 from thelounge/xpaw/install-msg
Add info message before calling `packageJson`
2017-09-29 17:53:40 -04:00
Pavel Djundik 1c4d9351d5 Add info message before calling packageJson 2017-09-29 10:54:03 +03:00
Pavel Djundik fd21c84a76 Do not try to write user log if network is not found
Fixes #1584
2017-09-29 10:37:27 +03:00
Jérémie Astori 1e10cc66a6
Use thelounge instead of lounge when it comes to external packages 2017-09-29 00:03:01 -04:00
Pavel Djundik 3fc0f4e686 Merge pull request #1536 from thelounge/xpaw/session-list
Implement session list and allow signing out other clients
2017-09-26 11:03:41 +03:00
Pavel Djundik 7cfd8d90c1 Merge pull request #1554 from thelounge/astorije/rm-event-stream
Remove event-stream dependency in favor of plain Buffers
2017-09-26 11:00:35 +03:00
Pavel Djundik 2f15ab3999 Fix attached client not having token on login 2017-09-26 10:56:08 +03:00
Pavel Djundik 833bdfa2aa Fix session data not updating correctly 2017-09-26 10:56:08 +03:00
Pavel Djundik d7e6db92b5 Implement session list 2017-09-26 10:56:08 +03:00
Pavel Djundik 08edc434ca Merge pull request #1567 from dgw/preview-length-abort
Abort image prefetch if Content-Length exceeds limit
2017-09-25 23:11:20 +03:00
dgw 09cd9ce33a Abort img prefetch if Content-Length exceeds limit
If the Content-Length header is present in the response when an image
is prefetched, The Lounge can avoid wasting bandwidth (both for itself
and for the image's host) if the value of the header exceeds the
prefetch size limit by aborting the request immediately.
2017-09-25 05:31:21 -05:00
Jérémie Astori 75b927b4a3
Remove event-stream dependency in favor of plain Buffers 2017-09-23 04:08:17 -04:00
Pavel Djundik f85686bcb2 Merge pull request #1468 from thelounge/xpaw/combine-notifications
Combine unread notifications into a single one
2017-09-22 21:04:04 +03:00
Pavel Djundik 649e9c3192 Fix opening first channel on server start
Fixes #1547
2017-09-20 16:17:38 +03:00
Pavel Djundik 416ebf97ff Create 'lounge install' command 2017-09-20 10:59:06 +03:00
Jérémie Astori 637949ea55 Merge pull request #1471 from thelounge/xpaw/client-reconnection
Automatic client reconnection
2017-09-20 00:05:37 -04:00
Pavel Djundik 21c9919fa1 Print compatibility theme setting warning on startup 2017-09-19 12:21:08 +03:00
Pavel Djundik 6cfe60e4d9 Group push notifications per target 2017-09-19 12:01:50 +03:00
Pavel Djundik cffa957e34 Only send messages newer than last seen id 2017-09-19 11:45:22 +03:00
Pavel Djundik 0c0df1efc9 Force reload the page if socket reconnects and server restarted 2017-09-19 11:45:22 +03:00
Jérémie Astori b8399471b3
Enable ESLint no-console rule to avoid future mistakes 2017-09-17 21:50:21 -04:00
Alistair McKinlay 59d2f93f61
Allow themes from npm 2017-09-17 19:47:29 -04:00
Jérémie Astori 90cb79ac91 Merge pull request #845 from MaxLeiter/MaxLeiter/away-notify
Use away-notify to show updates on users away state
2017-09-17 14:45:27 -04:00
Max Leiter 163cfaba3c Use away-notify to show user away status change 2017-09-17 11:16:48 -07:00
Jérémie Astori cb1b6db14e
Fix references to undefined this 2017-09-17 02:24:54 -04:00
Al McKinlay aace1aab05 Merge pull request #1528 from thelounge/xpaw/move-log-function
Move user log function where it belongs
2017-09-16 20:50:06 +01:00
Pavel Djundik 9e008a76b7 Merge pull request #1527 from dgw/kick-modes
Display correct kick modes
2017-09-14 10:46:35 +03:00
Pavel Djundik 17dd18a605 Write correct timestamp to user log 2017-09-14 10:42:21 +03:00
Pavel Djundik 79eb83d82f Move userLog function where it belongs
Fixes #438
2017-09-14 10:41:50 +03:00
dgw e4c6d78762 Display correct kick modes
Defining both the kicker and the target before any code touches the
channel user list ensures that everything is passed to the template.
2017-09-14 02:39:00 -05:00
Al McKinlay 171449c81e Merge pull request #1519 from thelounge/xpaw/fix-show-more-when-empty
Fix requesting last messages when no message id is known
2017-09-14 07:25:17 +01:00
Élie Michel f26c2dad0f
Take an optional argument in /part
Fix #1430
2017-09-13 20:24:45 -04:00
Pavel Djundik 14cac93e10 Fix requesting last messages when no message id is known
Fixes #1460
2017-09-12 16:05:40 +03:00
Pavel Djundik 099fb058c6 Merge pull request #1478 from eliemichel/pr-proper-ldap--rebased
Implement a proper LDAP authentication process
2017-09-04 09:02:58 +03:00
Elie Michel 32e1a36980 Generalize auth plugin fallback mechanism
@astorije this is for you ;)
https://github.com/thelounge/lounge/pull/1478#discussion_r136492534
2017-09-03 23:00:25 +02:00
Elie Michel 435e14669b Change string formatting style 2017-09-03 23:00:25 +02:00
Elie Michel 00e54e49ac Add tests for LDAP auth plugin 2017-09-03 23:00:24 +02:00
Elie Michel 12ba10f688 Reorganize auth plugins 2017-09-03 23:00:23 +02:00
Élie Michel cfa6db10c7 Make new LDAP options backward compatible
Also draft some kind of plugin system for auth, although it essentially consists in writing a function
and there is no mechanism to automatically fallback from one auth to another
2017-09-03 23:00:23 +02:00
Pavel Djundik c845d5723d One line server startup errors 2017-09-03 15:13:56 +03:00
Pavel Djundik 9e1296d303 Merge pull request #1479 from thelounge/xpaw/unix-socket
Add support for binding to unix sockets
2017-09-01 11:25:00 +03:00
Jérémie Astori 220af0e180 Merge pull request #1449 from dgw/cycle-command
Add /cycle command (a.k.a. /rejoin)
2017-08-31 23:45:54 -04:00
Jérémie Astori ad8ec4b1e6
Remove the "Stay signed in" checkbox at login
This option is less and less the norm on modern webapps, it is fair to assume this is the default behavior. In fact, we were making it the default.

But more importantly, coming soon is the ability of remotely logging out of your other sessions, which is well handled through token deletion. That means we need to know about said tokens, which are not sent in no-"Stay signed in" version.
2017-08-31 23:07:43 -04:00
Pavel Djundik b79a6cce0c Add support for binding to unix sockets
Fixes #686.
Fixes #691.
2017-08-31 21:56:20 +03:00
dgw bed6053cec Add /cycle command (a.k.a. /rejoin)
Closes #1436
2017-08-31 06:43:32 -05:00
Pavel Djundik 0d57df81af Gracefully quit on Ctrl+C
Fixes #268
2017-08-30 20:26:45 +03:00
Pavel Djundik 05f8bfe906 Deleting a user should log them out
Fixes #916
2017-08-29 15:43:52 +03:00
Élie Michel 19710b90c0 Merge branch 'master' into pr-proper-ldap 2017-08-29 08:42:26 +02:00
Pavel Djundik 495d8c3e04 Merge pull request #1448 from thelounge/xpaw/quit-promo
Set default quit default message
2017-08-26 20:34:32 +03:00
Jérémie Astori f7ecd0a053 Merge pull request #1350 from thelounge/xpaw/proper-cli
Only create config folder in 'start' command
2017-08-26 12:17:10 -04:00
Jérémie Astori 234fd31411
Clarify some users.length that were forgotten in a previous PR 2017-08-26 12:04:13 -04:00
Pavel Djundik 252dca3d3f
Only create config folder in 'start' command
Fixes #520.
Fixes #1288.
2017-08-26 12:04:13 -04:00
Jérémie Astori 9c5071ec98
Improve output of WebPush error
Without this, the error displayed contains a lot of superfluous information, repeated.
2017-08-26 11:47:35 -04:00
PolarizedIons e00b28d201 Fix general spelling errors 2017-08-25 18:02:28 +02:00
Pavel Djundik 4a3026e11b Set default quit default message 2017-08-24 21:07:47 +03:00
Jérémie Astori ed68ff4a34
Make sure CLI does not crash on undefined.length when we figured out users could not be read already 2017-08-23 13:21:15 -04:00
Jérémie Astori 684f1a641d
Make sure server is running before loading users 2017-08-23 13:21:14 -04:00
Jérémie Astori aa49856446
Warn when adding or listing users in public mode 2017-08-23 13:21:14 -04:00
Jérémie Astori f221121998
Inform when no users during autoload to take into account removing the last user 2017-08-23 13:21:14 -04:00
Jérémie Astori 90842267e8
Do not prevent server to run when there are no users in private mode 2017-08-23 13:20:46 -04:00
Pavel Djundik 1bf2be1b51 Do not unintentionally send incorrect messages from history 2017-08-23 14:17:53 +03:00
Pavel Djundik fcd9782eb7 Merge pull request #1124 from thelounge/xpaw/push-notifications
Implement push notifications
2017-08-22 23:16:41 +03:00