76 Commits

Author SHA1 Message Date
tooomm
1f0846297f websocket is our default port/connection (#5679) 2025-03-14 21:43:11 -04:00
ebbit1q
afb7c35cfd add a way to replace the user facing list of disallowed words (#4807) 2023-08-06 17:45:37 -04:00
ebbit1q
a9f2fc427b allow servatrice to exit early based on commandline options (#4504) 2021-12-26 16:47:37 +01:00
Zach H
051be37419 Server Config Whitelist Email Providers (#4416)
* Support registration domain whitelist (registration/emailproviderwhitelist) that, if set, will require a user to have an email with one of the specified domain providers. Will require client updates to see the Whitelist message, otherwise they'll be greeted with a default alert.

This also works to remove the pain of Google Email addresses and their infinite combination of usernames for the same account (i.e. remove periods and everything after the first plus sign).

* Make blacklist response show custom dialog
2021-08-18 21:18:53 -04:00
tooomm
88a8ee09bd pass reset Small fixes (#4310) 2021-04-12 13:28:47 -04:00
ebbit1q
06bfc0291a Create game as spectator (#4281)
* refactoring

* allow for creation of games as spectator

allow setting the amount of games per user to none
remove limit on amount of games when creating a game as judge as
spectator

* refactor common/server_player.cpp

* do not close games with spectating host automatically

* remove check that filters out 0 player games

this check didn't really do anything, deleted games are removed before
it would be reached

* don't transfer host to spectators

this seems to cause a bug, also present on master
2021-03-13 14:39:25 -05:00
ctrlaltca
d30691559a Some improvements to Servatice network code (#3969)
* Some improvements to Servatice network code

1. fix crash on fuzzy connection (tcp server only)
2. ensure websockets are parent()ed to avoid leaking them
3. quick catch disconnect()ed sockets instead of waiting for a socket error to happen
4. supporto mulltiple connection pools on the websocket server; they are still bound to the same thread due to a qt5 limitation.
2020-04-24 16:26:59 -04:00
kopcion
cd431594e2 Issue 3015 - store timestamp when password is reset (#3863)
* Added few unsigned to ints in order to get rid of warnings.
Added column to users table, for when password is changed(issue#3015).
Moved password length check to separate method, to make it cleaner.
* Added migration file and changed schema version to 27 due to servatrice.sql schema modification.
* Make password length configurable.
2019-11-22 23:52:45 -05:00
Rob Blanckaert
ea8201af5c Judge mode (#3531)
* Judge mode

* Use seperate judge icon

* Fix clang init ordering complaint

* Create gavel.svg

* Add judge level

* Adjust judge permissions.

* - Tag events caused by judges
- Allow judges access to card right click menus.

* Allow judges to  change phase / turn.

* Remove gavel from pawn

* Make judge action text black.

* Create scales

* Rename scales to scales.svg

* Use scales

* remove gavel

* - Address PR feedback
- Fix sort order

* Zach

* add option to servatrice.ini
2019-02-21 14:00:00 -05:00
ctrlaltca
46b34d6515 Add websocket feature (#3562)
* add websocket feature

* Added 2.7.0_min_version
2019-02-06 03:08:59 -05:00
ctrlaltca
4cdd17945d Servatrice: make listening host configurable; fix #3241 (#3242)
* fix #3241

* clangify
2018-05-12 23:54:03 +02:00
woogerboy21
2f23a9cb2f Smarter rooms (#2484)
* Added VIP only room

* Added DONATOR room.

* Extended Room to include privilege level.

* Updated room join logic

* Updated server tab permissions column display based on perm+privlevel definitions

* Fixed new client -> old server blank permissions column on server tab

Added the ability for registered user - VIP/DONATOR/PRIVILEGED room.
2017-03-22 21:45:16 -04:00
woogerboy21
d0088f6a18 Server audit table (#2423)
* Creating of server side audit table for auditing actions such as password resets, account registrations and log queries.

* Add migration script

Add migration script for database

* Update database script

Update database script to reflect new audit table

* Creating of server side audit table for auditing actions such as password resets, account registrations and log queries.

* Add migration script

Add migration script for database

* Update database script

Update database script to reflect new audit table

* Corrected results column possible value(s).

* Fixed migration script.

* Added boolean audit logic

Added enable/disable audit options
Added audit functionality for forgot password

* Added registration auditing

Added registration auditing

* Updated ActivateAccount Function

Created clientid variable and used it in preporation for future
potential protocol expansion.

* Extended activation protocol

Added clientid to activation command protocol

* Typo correction

Fix typo's

* Missed type fix

Found the infamous E!

* Updated database function syntax

Updated if/else syntax in db add audit function

* Untabify content

Untab files changed in PR
2017-02-25 13:48:31 -05:00
tritoch
884e604909 Reverse wording on logfilters description (#2421)
The `logfilters` setting was inverted.
Previously said it logged everything *except* listed strings,
but it actually logs *only* listed strings.
2017-02-21 14:39:00 -05:00
woogerboy21
0cfa6863d5 Simpler forgot password functionality (#2393)
* Simpler forgot password functionality (Server/Client)
2017-02-15 17:41:40 -05:00
woogerboy21
0fdb9b7c83 Added registration email blacklist (#2352)
* Added registration email blacklist

Added the ability to define email blacklist for user registration.  Now
server operators can prevent users from registering accounts that
contain providers they do not wish users to use.

* Update ini option for clarity

Updated servatrice ini option name for clarity.

* Updated description for clarity

Added implicit explination
2017-02-08 15:25:27 -05:00
woogerboy21
a85b0dcbba Add email registration restriction (#2350)
* Add ability to limit number of account registrations with same email address

This commit adds server side functionality that will allow operators to
limit the number of accounts that can be registered to the server with
the same email address.

* Updated ini wording

Updated configuration file wording for better description.
2017-01-07 11:26:23 -05:00
woogerboy21
3e39432ccc Add configuration to enable/disable internal smtp client (#2337)
Fix #1881
This change allows the server operator to enable or disable the internal
SMTP client that sends activation emails.  With this new configuration
option server operators can choose to require email activation yet use
an external method of account verification and/or account token
notification.
2017-01-06 17:02:52 -05:00
tritoch
42fb17bdd2 Document '--config' parameter (#2311)
servatrice.ini can be passed to servatrice via the --config parameter.  I don't think this is documented anywhere.
2016-12-10 01:11:44 +01:00
woogerboy21
a6f1f4c01d Add enable/disable log query functionality (#2294)
* Add enable/disable log query functionality

This change adds the ability for server owners to allow log querying
from inside the client.  In the event the functionality is not allowed a
result is returned indicating the functionality is disabled.

* Added translation

Added the ability for the disabled messages to be translated.
2016-12-06 15:37:36 -05:00
woogerboy21
6962777ded Rework idle timeout, now server side (#2259)
* Server side idle timeout

Initial commit for server side idle timeout counter.  This adds a new
int value that is updated when room/game/mod/admin commands occur and is
checked during the regular ping timout function that if the users new
"idle" value exceeds the idleclienttimeout value defined in the servers
configuration file the user is logged out.  The user will receive a
warning at the 90% time frame mark about being idle.

* Use round instead of ceil

Travis fix for older xcode issue's.

* Fixed requested items

Mis-spelleed function, added header, added warning message sent check
value.  Also corrected the protobuf declaration file for
event_notifyuser

* Moved bool to protected

* Re-Ordered Declarations

* Removed most stylistic items

Resolved most noted things.

* Remove client side idle timeout

Removed client side idle timeout functionality
2016-11-08 22:18:12 -05:00
woogerboy21
32d2fa13f6 Missed example bra cket 2016-10-19 19:26:06 -04:00
woogerboy21
05f90a74a4 Update log path example when running under windows
Added example of log path syntax when running servatrice under windows.
2016-10-19 19:24:44 -04:00
Kevin Boxhoorn
0b7f4c134c Disallow usernames that contain certain words and RegExp (#2200)
* Add `disallowedwords` setting and perform check

Check if any of the words in `disallowedwords` are contained in the username. If
so, return false like other checks.

NOTE: Needs testing for advanced bugs.

* Remove "administrator" from `disallowedwords`

"administrator" contains "admin" anyway, so it is not needed.

* Add error message if username contains a disallowed word

* Add `disallowedregexp` setting and perform check

Check if each expression in `disallowedregexp` exactly matches the username. If
so, return false.

TODO: Add specific error to dialog in `window_main.cpp`.

* Add error message for username matching RegExp

* Fix indentation

* Compile `disallowedregexp` into a QList upon initialization

Reduces system load with each registration request.

* Clean up `isUsernameValid` function

* Fix indentation

* Add backwards compatibility to client

Client can accept either 7 or 9 rules to maintain compatibility with older
versions of server.

* Add examples and warnings to `servatrice.ini`
2016-10-17 12:24:42 +02:00
skwerlman
deb8a2c954 fix typo in sample servatrice ini 2016-07-14 03:01:11 -04:00
Fabio Bas
5b21dc8cde Implementation of websockets in servatrice and test js client 2016-06-26 19:38:53 +02:00
Fabio Bas
68e2fb912f Servatrice: Split requireemail into requireemail and requireemailactivation 2016-03-17 16:22:42 +01:00
woogerboy21
6ad2a59367 Added official warning messages moderators can use to inform users 2015-09-22 22:27:46 -04:00
woogerboy21
87a64da1bc Added chat history to a room that is displayed on join.
With this update a new chat history definition is added on a per
room bases which allows operators to specify the number of chat
messages to store and present to the user on join.  Please see
the sample ini for room definitions.
2015-09-14 17:54:04 -04:00
woogerboy21
044c2356ff Added server/client feature set communication 2015-09-02 17:54:06 -04:00
woogerboy21
3e94c9d283 Define permission levels for rooms 2015-08-15 21:00:51 -04:00
woogerboy21
fefceac2c6 Add option to servatrice to disable replay storage. 2015-08-10 15:29:30 -04:00
woogerboy21
17392f1ae5 Moved the RegOnlyRequirement functions out of the Database interface into the proper Server block of code. 2015-08-08 16:24:37 -04:00
woogerboy21
bc99024e4f Added server side setting to allow the requirement of a client id from clients. 2015-08-08 08:52:19 -04:00
woogerboy21
eb9ca58fd0 Updated pingClockTimeout to account for adjustments in client keep alive settings value.
Changed the default value for the client keep alive variable back to 1 (since that is what the setting is if the value is not found in the configuration ini file).
2015-07-30 16:38:02 -04:00
woogerboy21
8c7301b19f Updated server and client ping to 5 seconds. Also changed hard set 1 second value on the ping timers to read values from the settings cache. 2015-07-29 23:44:00 -04:00
Fabio Bas
1ffc9b4561 Refactor servatrice email send 2015-07-25 18:48:34 +02:00
woogerboy21
a9acb3f1cc Total Max User Restriction
Syntax correction.
2015-07-13 17:54:03 -04:00
woogerboy21
304835c526 Activation Email Misspelling
Corrected the misspelling of the word "activating' in the servatrice.ini example file.
2015-06-29 17:05:48 -04:00
Matt Lowe
a795d7d884 Moved username formatting to INI file
Rather than having the username limitations hard coded, I have moved it
into the ini file. I have added some examples to the code and also to
the ini.

This is only and example and can be expanded on by others.
2015-06-20 23:14:45 +02:00
Fabio Bas
471f6371b5 More work
* Refactored code out of common/ into servatrice/
 * added smtp client library
 * disable registration when connected
 * validate email address
 * send activation token via email
2015-05-24 23:02:51 +02:00
Fabio Bas
ff1aed717e Added token generation, user activation command and response. 2015-05-24 00:37:45 +02:00
Fabio Bas
5ace0dd892 Almost completed registration
* added missing bits of serverside code;
 * added fronted in client;
 * removed demo python scripts;
2015-05-23 20:13:03 +02:00
Gavin Bises
735fcbf311 Add first draft of protocol extension for registration
Stub for registration command handling in server

First draft of handling registration requests

WIP (will be rebased)

clean up bad imports (rebase this later)

Finish checkUserIsBanned method

Add username validity check

Check servatrice registration settings

WIP

Finish(?) server side of registration

Needs testing

Fix switch case compile failure

I have no idea why I have to do this

WIP for registration testing python script

Stub register script initial attempt

Rearrange register script

First try at sending reg

register.py sends commands correctly now

Add more debug to register.py

Pack bytes the right way - servatrice can parse py script sends now

register.py should be working now

Parse xml hack correctly

Log registration enabled settings on server start

Insert gender correctly on register

Show tcpserver error message on failed gameserver listen

Fail startup if db configured and can't be opened.

TIL qt5 comes without mysql by default in homebrew...
2015-05-22 18:55:51 +02:00
Matt Lowe
b9cda5e36e Updated ini 2015-04-12 23:01:29 +02:00
Fabio Bas
0e437cf13b Anti flood for game commands 2015-03-14 19:44:32 +01:00
Fabio Bas
cd69bc8f9d Add configuration options to enable database logging 2015-01-01 15:48:53 +01:00
woogerboy21
1195e4c77b corrected default ini value 2014-11-18 17:32:10 -05:00
wcollins
da98d24d8c added trusted sources to servatrice 2014-11-18 15:09:21 -05:00
Fabio Bas
01bd26d228 Misc typos fixing 2014-10-06 21:44:20 +02:00