Commit graph

967 commits

Author SHA1 Message Date
Chocobo1
27090f0cfb
Remove superfluous QString::fromUtf8() 2017-11-21 22:48:00 +08:00
Chocobo1
77f66be493
[WebUI] Fix logo missing in login page 2017-11-21 03:41:07 +08:00
Vladimir Golovnev
f41cb8089d
Merge pull request #6779 from Piccirello/disable-web-auth
Add ip subnet whitelist for bypassing webui auth
2017-11-20 21:52:33 +03:00
sledgehammer999
af5a02d971
Merge pull request #7673 from sledgehammer999/webui_clean_exit
WebUI: Correctly exit depending if mainloop is running.
2017-11-19 19:12:30 +02:00
Vladimir Golovnev (Glassez)
71bb6538db
Fix WebUI error handling 2017-11-19 19:10:04 +02:00
Mike Tzou
d821bdc9f3
Merge pull request #7669 from Chocobo1/portCheck
[WebAPI] Improve error messages
2017-11-10 23:41:19 +08:00
Thomas Piccirello
95bf63330e Add ip subnet whitelist for bypassing webui auth 2017-11-08 22:39:49 -05:00
sledgehammer999
ffa6f7ea34
Bump API_VERSION to 16. 2017-11-03 01:57:32 +02:00
Chocobo1
aa4107478e
[WebAPI] Improve error messages
Also refactor to use class methods
2017-11-02 23:01:14 +08:00
Chocobo1
fc0628d35b
Allow SMTP sender to be set. Closes #7575. 2017-10-26 17:57:32 +08:00
Mike Tzou
acdb7a27dc Merge pull request #7638 from Chocobo1/msg
[WebUI] Improve log messages
2017-10-24 20:19:12 +08:00
Mike Tzou
b6be5afb89 Merge pull request #7584 from Chocobo1/refactor
[WebAPI] Refactor
2017-10-23 19:36:28 +08:00
Chocobo1
157b809e21
[WebUI] Improve log messages 2017-10-23 16:45:41 +08:00
Mike Tzou
f74e2b0130 Merge pull request #7631 from Chocobo1/webUIaddr
Reinitialize webUI server when "IP address" setting changed
2017-10-23 14:11:50 +08:00
sledgehammer999
c887a162ba
Fix row height/width in webui for country flags.
Patch by Chocobo1.
2017-10-23 01:23:54 +03:00
sledgehammer999
52df71ad3a
Use svg icons for the country flags.
Closes #6223.
2017-10-23 01:23:45 +03:00
Chocobo1
d6ddc90199
Reinitialize webUI server when "IP address" setting changed
An app restart won't be necessary from now on.
2017-10-22 14:42:51 +08:00
Mike Tzou
9600e7f5ad Merge pull request #7573 from fmatthew5876/config_webui_ip
Add WebUi\Address config option
2017-10-22 14:18:08 +08:00
Matthew Fioravante
8cd243b06b Add WebUi\Address config option 2017-10-21 09:32:30 -04:00
Chocobo1
ce362f0e5e
WebAPI refactor: utilize parseBool() function
Coding style cleanup
Rename variable
Return const reference
Add const
2017-10-18 22:27:59 +08:00
Chocobo1
4940a77d12
[WebUI]: Print error messages upon receiving invalid header fields 2017-10-18 20:11:53 +08:00
Mike Tzou
bd07cb91bb Merge pull request #7571 from Chocobo1/webui_download
[WebAPI] Add parameters for /command/download & /command/upload
2017-10-15 20:32:14 +08:00
Mike Tzou
dc600d47ec Merge pull request #7570 from Chocobo1/webui_fileIdx
[WebAPI] Add file-to-piece-index mappings in /query/propertiesFiles command
2017-10-14 01:05:00 +08:00
Chocobo1
e78d8b9fcc
Convert tab into whitespaces 2017-10-11 20:27:19 +08:00
Chocobo1
f350977cb4
WebUI: add optional parameters for /command/download & /command/upload
Specifically:
torrent name: string
download limit, upload limit: number in bytes, default: -1 (unlimited)
sequential download, first last piece prio: boolean true/false, default: false
2017-10-11 20:25:11 +08:00
Eugene Shalygin
7a652c0a8c Merge pull request #7566 from evsh/themes-cbc
Themes part 1
2017-10-11 10:34:56 +02:00
Chocobo1
a652baadb5
Add file-to-piece-index mappings in /query/propertiesFiles command
Also do the following cleanups:
  Use string constant QB_EXT
  Remove redundant variable
  Add const
2017-10-11 16:24:29 +08:00
Mike Tzou
e07501252c Merge pull request #7549 from fmatthew5876/master
Report TCPServer errorString() if webui fails to listen to port
2017-10-11 16:22:52 +08:00
Eugene Shalygin
db35bb54e1 Make BitTorrent::TorrentState strongly-typed enum
This is needed to forward declare this type and pass it by value.

Conversion from/to QVariant are hanled via Q_DECLARE_METATYPE, while
TorrentState::toString() function was used in webui only and as such is
moved there.
2017-10-10 21:28:57 +02:00
Chocobo1
5185eeb7ef
Die gracefully when failed to initialize web server with qbt-nox 2017-10-09 13:50:01 +08:00
Vladimir Golovnev
083bc71315 Merge pull request #7396 from thalieht/updownratio
Properly pre-select the selected torrent's current ratio limiting options in UpDownRatioDlg
2017-10-08 21:06:55 +03:00
thalieht
525fdd6c2b Coding style, use nullptr and other minor things 2017-10-08 10:20:54 +03:00
Matthew Fioravante
05c92e652c Report TCPServer errorString() if webui fails to listen to port 2017-10-06 05:54:52 +00:00
Vladimir Golovnev
66a6674cbc Merge pull request #7490 from glassez/category-path
Allow to set explicit save path for Category from GUI
2017-09-29 14:25:40 +03:00
Vladimir Golovnev (Glassez)
3ec992474d
Implement TorrentCategoryDialog class 2017-09-27 21:25:22 +03:00
Mike Tzou
2eb3ec1a6e Merge pull request #7463 from Piccirello/fix-priority-context-menu-placement
Reposition "Priority" menu option in WebUI to match gui (closes #7072)
2017-09-24 10:28:05 +08:00
Chocobo1
c5ddbcfb5b
WebAPI: fix addPaused wrong default behavior
Add helper function
Sort include header
2017-09-19 17:26:01 +08:00
Chocobo1
72b0ba36ae
Refactor
Merge statements
Use case-insensitive contains()
Add const
Use value(), this avoids inserting empty values.
Use range based for loop
2017-09-19 14:16:39 +08:00
Chocobo1
b107c0671d
WebAPI: fix root_folder default behavior
Bug was introduced in
6b33db3ae3
2017-09-19 13:07:50 +08:00
sledgehammer999
b9e233601d Merge pull request #7446 from Chocobo1/utpOnly
Add uTP only mode option
2017-09-19 01:45:58 +03:00
Chocobo1
45a0c5558a
Add comboBox for selecting BitTorrent protocol. Closes #6316.
Use unicode string C_UTP in place of "uTP"
2017-09-18 01:52:57 +08:00
Thomas Piccirello
b6596f9957 Reposition "Priority" menu option in WebUI to match gui (closes #7072) 2017-09-17 05:42:46 -04:00
thalieht
6b33db3ae3 Create root folder option when adding a torrent in WebUI 2017-09-11 16:56:33 +03:00
Allan Nordhøy
5c18db240c Spelling: HTTP/HTTPS 2017-09-08 11:22:25 +02:00
Chocobo1
64d5e329c0
Sort the resource lists
Update RCC header
2017-08-29 13:39:02 +08:00
Chocobo1
9ef1e32327
WebAPI: fix validating wrong header field. Closes #7311.
X-Forwarded-Host is a foreign proxy setting, it isn't the same as
qbt's local setting and thus it makes no sense to verify it.
2017-08-20 22:40:19 +08:00
Chocobo1
65ca490b64
Wrap class & functions in anonymous namespace
Rename vars
Cleanup class interfaces
Pass by reference whenever possible
2017-08-19 01:57:11 +08:00
Thomas Piccirello
4846b0ec28
Use single quotes for char.
Use case insensitive compare.
Swap conditionals
2017-08-14 23:15:03 +08:00
Thomas Piccirello
771033a449
Add auto torrent management to webui context menu (addresses #6815) 2017-08-14 23:14:46 +08:00
Mike Tzou
0522db3f19 Merge pull request #7061 from Piccirello/webui-rename-torrent
Rename torrent from webui context menu (addresses #6815)
2017-08-13 23:39:35 +08:00
Vladimir Golovnev (qlassez)
cff6a64e9f
Use qUtf8Printable() for logging strings
qDebug(), qInfo(), qWarning(), qCritical(), qFatal() expect %s arguments
to be UTF-8 encoded, while qPrintable() converts to local 8-bit encoding.
Therefore qUtf8Printable() should be used for logging strings instead of
qPrintable().
2017-08-13 16:14:57 +03:00
Thomas Piccirello
798c230634
Add option to rename torrent from WebUI
Addresses #6815.
2017-08-13 15:45:51 +03:00
Chocobo1
3e9311b096
Correctly handle translation
Fixup of 07a85a1018
2017-08-06 17:20:01 +08:00
Chocobo1
1bfb8d35cd
Move "Copy hash" menu item above "Copy magnet link"
Fix wrong "Copy hash" icon used in webUI
Fixup of 145641ac41
2017-08-06 17:19:55 +08:00
Tom Piccirello
07a85a1018 Set torrent location from webui context menu (addresses #6815) (#7062)
* Add option to set torrent location from webui context menu (addresses #6815)

* Update debug messages

* Use logger

* Remove redundant curly braces

* Remove message

* Use log message from transferlistwidget

* Use QDir

* Remove unused import

* Check if newLocation is an empty string
2017-08-06 17:04:39 +08:00
Tom Piccirello
145641ac41 Add copy options to webui context menu (addresses #6815) (#7036)
* Add copy options to webui context menu
Add Copy Hash to gui (closes #6964)

* Use switch statement

* Use camel case, switch from signal to qaction.

* Rename variable

* Change variable name
2017-08-06 16:35:12 +08:00
sledgehammer999
802cd89ec9
Bump API_VERSION and API_VERSION_MIN to 15. 2017-07-18 22:38:59 +03:00
Tom Piccirello
11b44407af Add Status column to webui (addresses #6815) (#7032)
* Add Status column to webui (addresses #6815)
2017-07-17 14:26:52 +08:00
Chocobo1
07780b48c5 Load the domain list at least once on startup.
Fixup of 0532d546d7
2017-07-13 00:41:30 +08:00
Chocobo1
0532d546d7
Implement HTTP host header filtering
This filtering is required to defend against DNS rebinding attack.
2017-07-12 17:26:13 +03:00
Chocobo1
18651c8d01
Use Qt5 connect syntax 2017-07-12 17:26:11 +03:00
Chocobo1
55e038b165
Avoid modifing request headers 2017-07-12 17:26:05 +03:00
Chocobo1
be61e8f2fd Revert back to intended fallthrough
Partial revert a7f4ea8b18
2017-07-10 00:36:56 +08:00
Chocobo1
448d937c15 Fix value comparison. Closes #7081.
`category` could be 'undefined'.
Fixup of a7f4ea8b18.
2017-07-09 22:31:14 +08:00
Mike Tzou
db2dec3d28 Merge pull request #7031 from Piccirello/fix-js-errors
Fix various javascript errors and follow best practices
2017-07-05 15:03:09 +08:00
Thomas Piccirello
a7f4ea8b18 Fix javascript errors and follow best practices 2017-07-01 03:28:35 -04:00
Thomas Piccirello
cd5a55d711 Skip username/password check for active sessions (closes #6860) 2017-07-01 03:26:15 -04:00
Chocobo1
cdb8f4bc61 [WebUI] relax CSRF defense. Closes #6882.
Allow HTTP request which has neither Origin nor Referer header included
2017-06-02 21:16:06 +08:00
Chocobo1
087856d3d8
[WebUI]: Implement CSRF defense
Bump API version
2017-06-01 19:37:57 +03:00
Eugene Shalygin
74cecb1b6c Replace C-style casts with C++ ones 2017-05-29 17:25:42 +02:00
Mike Tzou
20f6bf817e Merge pull request #6836 from Chocobo1/api
[WebAPI] Get piece information/state
2017-05-27 18:28:22 +08:00
Mike Tzou
b6080c19c2 Merge pull request #6834 from Chocobo1/cookie
[WebUI] Make cookie parsing robust
2017-05-26 23:56:35 +08:00
Chocobo1
3933790bda Add new webUI API. Closes #6457.
Now getting piece information for a specific torrent is possible via:

* Returns an array of states (integers) of pieces in order. Defined as:
  "0=not downloaded", "1=downloading", "2=downloaded".
  GET /query/getPieceStates/<torrent_hash>

* Returns an array of hashes (strings) of pieces in order:
  GET /query/getPieceHashes/<torrent_hash>
2017-05-26 14:37:03 +08:00
Chocobo1
f35a5c8085 [WebUI] Make cookie parsing robust
Previously cookie name such as "<any string>SID" will be mistakenly
accepted as "SID" session ID, this commit fixes it.

Use QString::isEmpty()
2017-05-25 18:45:07 +08:00
Mike Tzou
ced52e3269 Merge pull request #6827 from naikel/webui_filter_fix
Fix slow filtering in WebUI
2017-05-24 00:02:22 +08:00
Naikel Aparicio
03b2decab6 Fix slow filtering in WebUI. Fixup 7aadf644e0. 2017-05-22 09:19:03 -04:00
Naikel Aparicio
9fc6de77ca Cosmetic fixes for WebUI upload and download windows 2017-05-20 16:01:24 -04:00
Chocobo1
5529a7713c Set icon height in html instead of js
Fixup of d302e4fb92
2017-05-19 00:06:10 +08:00
Chocobo1
d302e4fb92 [WebUI] Fix connection status icon too large. Closes #6804. 2017-05-18 23:07:40 +08:00
Naikel Aparicio
9ba00d7035 Implemented share limit by seeding time 2017-05-17 14:33:17 -04:00
Mike Tzou
0838f64311 Merge pull request #6782 from Piccirello/strict-csp
Use less permissive Content Security Policy
2017-05-17 18:47:51 +08:00
Mike Tzou
d80abeb10f Merge pull request #6751 from thalieht/webuiUnitPrecision
WebUI: Increase the number of digits after the decimal point
2017-05-17 12:48:03 +08:00
Mike Tzou
0f7eabfa4b Merge pull request #6781 from Piccirello/torrent-download-api-response
Include response status in upload torrent API
2017-05-17 00:39:55 +08:00
Thomas Piccirello
7cf1d844b0 Return status indicating if at least one torrent was successfully added 2017-05-15 14:30:44 -04:00
Thomas Piccirello
1b5852ad0b Use less permissive Content Security Policy
Adjust content order
2017-05-14 20:26:15 -04:00
Vladimir Golovnev (Glassez)
8a6d8f3953 Use cached SessionStatus and CacheStatus 2017-05-10 13:24:37 +03:00
thalieht
e075274177 webUI: increase the number of digits after the decimal point 2017-05-05 20:09:04 +03:00
sledgehammer999
b1f1823c65
[WebUI]Use the same layout in the Speed tab in preferences as the GUI. 2017-05-05 16:41:41 +03:00
sledgehammer999
0addeafc6b
Add missing unit sizes in misc.js 2017-05-05 16:41:40 +03:00
sledgehammer999
44c5a9beff
[WebUI]Use translatable strings in Statistics dialog. 2017-05-05 16:41:39 +03:00
sledgehammer999
e177799ada
[WebUI]Make the context obligatory for translatable strings. Also delete duplicate strings from extra translations. 2017-05-05 03:46:33 +03:00
Mike Tzou
e91a5f6a5a Merge pull request #6701 from Chocobo1/webui
WebUI: Fix checkbox hidden
2017-04-30 13:35:02 +08:00
Chocobo1
5e50d8ed91 WebUI: Fix checkbox hidden. Closes #6642. 2017-04-29 23:12:04 +08:00
Eugene Shalygin
c4e16aa820 cmake: set warning and error options
The set is far from perfect, but guards against common errors with GCC.
2017-04-29 13:30:28 +02:00
Vladimir Golovnev (Glassez)
989a70fe60 Redesign RSS subsystem 2017-04-23 09:03:46 +03:00
sledgehammer999
018574e546 Merge pull request #6475 from OpenGG/master
[WebUI-API] Add "skip_checking" and "paused" to "/command/download" and "/command/upload"
2017-04-17 17:12:24 +03:00
Chocobo1
7f346b49a7 Refactor: move the validation of certificates & key functions under Server class
Rename method
Add log messages
2017-04-10 21:18:59 +08:00
Chocobo1
05d8c46bb0 Rename class variables 2017-04-10 21:07:08 +08:00
Chocobo1
35ab86d32f Refactor: group port forwarding code together
Unify log message
2017-04-10 20:14:19 +08:00
sledgehammer999
e40444d1ad
Bump API_VERSION and API_VERSION_MIN to 13. 2017-04-06 02:03:44 +03:00
sledgehammer999
1111ca9d90 Merge pull request #6548 from Chocobo1/cookie
Fixes for AbstractWebApplication
2017-04-05 18:37:51 +03:00
FranciscoPombal
829ad2e1e6 fixed "remaining" column in WebUI
the key had the wrong name. In the js code, the expected key is "amount_left" and not "remaining".
2017-04-03 16:20:01 +01:00
opengg
b271fa9f00 [WebUI] Add skip_checking and paused to /command/download and /command/upload 2017-03-31 14:05:19 +08:00
Chocobo1
272d53fdf8 Set cookie SID value to empty on logout
Set cookie SID expiration date to 1 day in the past on logout
2017-03-22 17:22:10 +08:00
Chocobo1
4e48408eaa Fire up the timer to clean inactive sessions 2017-03-22 17:21:10 +08:00
Chocobo1
e26b30a5f4 Refactor: initialize class variable directly 2017-03-22 17:20:28 +08:00
Chocobo1
e4d6fe2d02 Refactor: reorder headers 2017-03-22 17:20:27 +08:00
Chocobo1
e9bd75f4e1 Set HttpOnly attribute to SID cookie 2017-03-21 15:24:41 +08:00
sledgehammer999
147f4d76e2 Merge pull request #6445 from Chocobo1/fix
Follow http user-agent format
2017-03-07 23:38:14 +02:00
sledgehammer999
5084c01c2b Merge pull request #5877 from dzmat/to_pull_request
locally banned IP list managment (Closes #1837 )
2017-03-07 23:14:20 +02:00
sledgehammer999
140187649d Merge pull request #6473 from FranciscoPombal/stats_webui
Implement statistics window in web UI
2017-03-07 22:51:57 +02:00
dzmat
59de1af31b implemented UI for managment of locally banned IP list (Closes #1837 ) 2017-03-06 19:40:34 +07:00
Chocobo1
cb1646be32 Prepend QBT_ for preprocessor variables 2017-03-06 13:41:58 +08:00
FranciscoPombal
1ce71fc63e Implement statistics window in web UI 2017-03-06 03:05:18 +00:00
sledgehammer999
fc49856857 Merge pull request #6391 from Chocobo1/cert
Allow QSsl::Ec as private key format
2017-03-06 01:22:09 +02:00
sledgehammer999
fa1149e1f2
Remove remnant of qt4 version checking. 2017-03-06 00:53:25 +02:00
Eugene Shalygin
008d7dbedc Raise minimal Qt version to 5.5.1 2017-03-05 22:24:59 +01:00
Eugene Shalygin
e64bb1de8c Drop Qt 4 support 2017-03-05 22:24:59 +01:00
sledgehammer999
922fec44d2 Merge pull request #6447 from buinsky/master
WebUI: Improve performance of updating 'progress' column
2017-03-05 14:46:30 +02:00
buinsky
b6c6b70915 Improve performance of updating 'progress' column 2017-03-04 12:19:36 +03:00
sledgehammer999
5c730f984d
Bump API_VERSION to 12. 2017-03-03 22:31:58 +02:00
Chocobo1
0fb3b18a8f
Utilize escapeHtml 2017-03-03 21:28:32 +02:00
Chocobo1
eba45a0b26
Cleanup 2017-03-03 21:28:29 +02:00
Chocobo1
7756dd80f3
[WebUI]: add X-XSS-Protection, X-Content-Type-Options, CSP header 2017-03-03 21:28:28 +02:00
ngosang
f5ad04766f
[WebUI] Avoid clickjacking attacks 2017-03-03 21:28:27 +02:00
sledgehammer999
31b69ae6f6
Update copyright year. 2017-03-03 21:26:38 +02:00
Chocobo1
759bf4d73d Allow to load/use ECDSA certificate in webUI.
Limit max read size
Improve messages in dialogs
Refactor
2017-02-17 12:23:51 +08:00
Chocobo1
511796f74e Replace rand() by a true uniform distribution generator 2017-02-16 12:21:26 +08:00
ngosang
e6e0ecfaea [Web UI] Fix category in torrent upload. Closes #6260 2017-01-22 14:20:48 +01:00
buinsky
484e021ca2 Avoid lags in firefox on resizing progress column 2017-01-21 16:37:34 +03:00
buinsky
741e0a08ea Remove 300px limit of column width 2017-01-21 16:21:46 +03:00
buinsky
7628490def Fix scrollbar covers menu item with long text 2017-01-21 15:57:02 +03:00
buinsky
d50a7778fe Implement resizable progress bar in "Done" column 2017-01-21 15:57:02 +03:00
buinsky
09cf93521f Follow project coding style. Issue #2192. 2017-01-21 15:57:02 +03:00
buinsky
e65a628bf9 Add a vertical separator between columns 2017-01-21 15:57:02 +03:00
buinsky
bdf736b7d7 Prevent text wrapping in menus 2017-01-21 15:57:02 +03:00
buinsky
3dfcd6db6a Make too tall menus scrollable 2017-01-21 15:57:02 +03:00
buinsky
134e4c1eb9 Add some missing columns to dynamic tables 2017-01-21 15:57:02 +03:00
buinsky
a087d146df Fix columns names 2017-01-21 15:57:02 +03:00
buinsky
3ac87f22cb Implement dynamic table columns hiding 2017-01-21 15:57:02 +03:00
buinsky
56b885995c Implement dynamic table columns reordering 2017-01-21 15:57:02 +03:00
buinsky
56c07704d8 Implement dynamic table columns resizing 2017-01-21 15:57:02 +03:00
buinsky
c765d8ebe2 Add tooltips to dynamic table header 2017-01-21 15:57:02 +03:00
buinsky
dd1959abfb Make torrent peers table scrollable horizontally 2017-01-21 15:57:02 +03:00
buinsky
b1c45901f0 Simplify dynamic table CSS styles 2017-01-21 15:57:01 +03:00
buinsky
7aadf644e0 Make torrents table scrollable horizontally 2017-01-21 11:19:43 +03:00
buinsky
afd4f89693 Rename variables in DynamicTable class 2017-01-21 11:19:42 +03:00
sledgehammer999
96f9984823
Fix preferences icon loading in WebUI. 2017-01-20 18:54:36 +02:00
Chocobo1
ca77a315d9 Fix download & upload icon too large on statusbar in webui 2017-01-20 14:04:32 +08:00
Chocobo1
35921c70fe Remove trailing spaces 2017-01-20 14:04:05 +08:00