1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-09-11 08:40:44 +02:00

Compare commits

..

71 Commits

Author SHA1 Message Date
Joas Schilling
197fed16bd [prep-release-3.1.0] Update changelog with final changes 2014-10-28 13:08:52 +01:00
Joas Schilling
12033bc499 Merge branch 'develop-olympus' into prep-release-3.1.0
Conflicts:
	phpBB/phpbb/session.php
2014-10-28 12:57:38 +01:00
Joas Schilling
71c19f6eb7 Merge pull request #3091 from Nicofuma/ticket/13234-2
Ticket/13234 2
2014-10-28 12:56:47 +01:00
Joas Schilling
d2cd24e875 Merge pull request #3090 from Nicofuma/ticket/13234
Ticket/13234
2014-10-28 12:56:15 +01:00
Tristan Darricau
9036edd935 [ticket/13234] Merge branch 'ticket/13234' into ticket/13234-2
* ticket/13234:
  [ticket/13234] Fix conditions and CS

Conflicts:
	phpBB/phpbb/session.php

PHPBB3-13234
2014-10-28 12:27:16 +01:00
Tristan Darricau
fcc320e385 [ticket/13234] Fix conditions and CS
PHPBB3-13234
2014-10-28 12:19:53 +01:00
Joas Schilling
679559ce18 Merge branch 'naderman-ticket/13232' into prep-release-3.1.0 2014-10-28 10:02:33 +01:00
Joas Schilling
2e814cc43f [ticket/13232] Fix spaces vs tabs
PHPBB3-13232
2014-10-28 10:01:28 +01:00
Nils Adermann
087a5363bb [ticket/13234-2] Correctly verify that user_id is set in user data array
PHPBB3-13234-2
2014-10-27 23:56:20 -07:00
Nils Adermann
3472b6c5bc [ticket/13234-2] Never allow autologin/remember me to modify the userid
Ascraeus version of 64d97d0787 commit

PHPBB3-13234
2014-10-27 19:58:32 -07:00
Nils Adermann
e1277c26ca Merge branch 'ticket/13234' into ticket/13234-2
* ticket/13234:
  [ticket/13234] Never allow autologin/remember me to modify the userid
2014-10-27 19:57:16 -07:00
Nils Adermann
64d97d0787 [ticket/13234] Never allow autologin/remember me to modify the userid
This prevents admin relogin with forced user id from overwriting
remember me cookies

PHPBB3-13234
2014-10-27 19:55:56 -07:00
Nils Adermann
dccbd573e8 [ticket/13232] Ensure prune cron job always gets run in prune test
The cron scheduler might pick a different task but we don't want to go
through them all to find the one we need. So we just make sure cron is
run at all and then manually run the one we want.

PHPBB3-13232
2014-10-27 19:00:23 -07:00
Nils Adermann
efe3aaaf0b Merge pull request #3085 from naderman/ticket/13227
[ticket/13227] Properly handle curlwrapper headers in remote avatars
2014-10-27 18:58:11 -07:00
Nils Adermann
df1212ce27 Merge pull request #3083 from Nicofuma/ticket/13231
[ticket/13231] Update the dependencies of the migration contact_admin_form
2014-10-27 18:51:47 -07:00
Nils Adermann
1f31e8e243 Merge branch 'ticket/13229' into prep-release-3.1.0
* ticket/13229:
  [ticket/13229] Fix overloading memberlist with redundant SQL queries
2014-10-27 17:01:46 -07:00
rxu
16d78407db [ticket/13229] Fix overloading memberlist with redundant SQL queries
PHPBB3-13229
2014-10-27 17:01:29 -07:00
Nils Adermann
4e4c3de103 [ticket/13227] Properly handle curlwrapper headers in remote avatars
Read a bit of the file to ensure header values are populated and then
handle headers in the nested array structure too.

PHPBB3-13227
2014-10-27 16:49:30 -07:00
Nils Adermann
dbaee1a5da Merge pull request #4 from nickvergessen/naderman-ticket/13232
[ticket/13232] Fix more issues with TTL and global cache file
2014-10-27 16:36:39 -07:00
Joas Schilling
6380aea647 [ticket/13232] Fix more issues with TTL and global cache file
PHPBB3-13232
2014-10-28 00:34:51 +01:00
Tristan Darricau
47663a4ad3 [ticket/13231] Update the dependencies of the migration contact_admin_form
PHPBB3-13231
2014-10-27 23:45:24 +01:00
Nils Adermann
0cdd071230 [ticket/13232] Fix indentation
PHPBB3-13232
2014-10-27 15:45:24 -07:00
Nils Adermann
df5366a5ca [ticket/13232] Use a cache var with _ to force TTL and shuffle cron tasks
PHPBB3-13232
2014-10-27 15:42:26 -07:00
Joas Schilling
aa916fc43f Merge pull request #3077 from marc1706/ticket/13225
[ticket/13225] Use passwords manager instead of phpbb_hash in migration
2014-10-27 23:38:53 +01:00
Marc Alexander
b295fa4f4f [ticket/13225] Prefix converted passwords with $CP$ in phpBB 3.0.5-RC1
PHPBB3-13225
2014-10-27 20:57:31 +01:00
Nils Adermann
d693d91e26 Merge remote-tracking branch 'github-nicofuma/ticket/13226' into prep-release-3.1.0
* github-nicofuma/ticket/13226:
  [ticket/13226] Add functional test for group ranks
  [ticket/13226] Fix the usage of $rank_img
2014-10-27 12:25:18 -07:00
Nils Adermann
decabb62c0 Merge pull request #3079 from nickvergessen/ticket/13230
[ticket/13230] Add missing globals and missing request object for path helper
2014-10-27 12:16:12 -07:00
Joas Schilling
47759eb096 [ticket/13230] Add missing globals and missing request object for path helper
PHPBB3-13230
2014-10-27 14:54:17 +01:00
Tristan Darricau
2e5cc62071 [ticket/13226] Add functional test for group ranks
PHPBB3-13226
2014-10-27 14:37:51 +01:00
Tristan Darricau
9ccb87675d [ticket/13226] Fix the usage of $rank_img
PHPBB3-13226
2014-10-27 10:00:24 +01:00
Marc Alexander
6cc5160d60 [ticket/13225] Use passwords manager instead of phpbb_hash in migration
PHPBB3-13225
2014-10-26 17:14:34 -07:00
Nils Adermann
51251293ab [prep-release-3.1.0] Update CHANGELOG with last minute changes 2014-10-26 12:53:45 -07:00
Nils Adermann
d5022d87e7 Merge branch 'ticket/13223' into prep-release-3.1.0
* ticket/13223:
  [ticket/13223] Fix USERNAME email template variable in notification
2014-10-26 12:48:16 -07:00
rxu
5431aa6391 [ticket/13223] Fix USERNAME email template variable in notification
admin_activate_user.php notification type is assigning usernames to email
template variables using user_loader->get_username() in 'no_profile' mode,
which in its turn calls get_username_string() function in 'no_profile' mode.
This causes HTML markup in emails for username colour.

PHPBB3-13223
2014-10-26 12:47:57 -07:00
Nils Adermann
7f347a290c Merge pull request #3073 from nickvergessen/ticket/13221
[ticket/13221] Perform bot updates after user table changes
2014-10-26 12:42:28 -07:00
Joas Schilling
0d1d836a89 [ticket/13221] Add bot_update as a dependency to gold
PHPBB3-13221
2014-10-26 20:03:46 +01:00
Joas Schilling
79d782c1d5 [ticket/13221] Perform bot updates after user table changes
PHPBB3-13221
2014-10-26 19:57:08 +01:00
Nils Adermann
5cee745fc5 [prep-release-3.1.0] Add missing CHANGELOG entries for RC6 2014-10-25 18:10:30 -07:00
Nils Adermann
c789acc091 [prep-release-3.1.0] Add CHANGELOG for 3.1.0 2014-10-25 17:12:14 -07:00
Nils Adermann
f2e9c62a97 [prep-release-3.1.0] Add 3.1.0 gold release migration 2014-10-25 17:03:50 -07:00
Nils Adermann
4859cec0c5 Merge remote-tracking branch 'github-marc1706/ticket/13207' into prep-release-3.1.0
* github-marc1706/ticket/13207:
  [ticket/13207] Add notification manager mock to user_add method in tests
  [ticket/13207] Move default user notifications settings to user_add()
  [ticket/13207] Add default subscription options for newly registered users
2014-10-25 16:55:29 -07:00
Marc Alexander
0dcb874c09 [ticket/13207] Add notification manager mock to user_add method in tests
PHPBB3-13207
2014-10-25 16:16:25 -07:00
Marc Alexander
81ad381263 [ticket/13207] Move default user notifications settings to user_add()
PHPBB3-13207
2014-10-25 14:57:01 -07:00
Marc Alexander
18f24a2270 [ticket/13207] Add default subscription options for newly registered users
PHPBB3-13207
2014-10-25 14:50:01 -07:00
Nils Adermann
f22cd2d734 Merge branch 'prep-release-3.1.0' into develop-ascraeus
* prep-release-3.1.0:
  [ticket/13215] Update Symfony components to v2.3.21.
2014-10-25 14:01:54 -07:00
Nils Adermann
07e7cde560 Merge pull request #3062 from bantu/ticket/13215
[ticket/13215] Update Symfony components to v2.3.21.
2014-10-25 14:01:13 -07:00
Andreas Fischer
ad06f6dd71 [ticket/13215] Update Symfony components to v2.3.21.
PHPBB3-13215
2014-10-25 21:29:45 +02:00
Nils Adermann
9ea08aa4d7 Merge branch 'prep-release-3.1.0' into develop-ascraeus
* prep-release-3.1.0:
2014-10-25 12:09:55 -07:00
Nils Adermann
4e952ad443 Merge commit '078e0c1e440f7f906b670348e8da00141e245876' into prep-release-3.1.0
* commit '078e0c1e440f7f906b670348e8da00141e245876':
  [ticket/13211] Move console migrator output handler back to console folder
  [ticket/13211] Also use log wrapper output handler for console migrations
  [ticket/13211] Move console migrator output handler to db folder
  [ticket/13211] Add log wrapper for writing database updater to log file
  [ticket/13126] Add missing use statement
  [ticket/13126] Fix tests
  [ticket/13126] Change messages verbosity levels
  [ticket/13126] Move migrator_output_handler to an interface
  [ticket/13126] Extends migrator_output_handler instead of using a closure
  [ticket/13126] Improve the feedback when running the migrations
2014-10-25 12:09:20 -07:00
Nils Adermann
6308a442d1 Merge pull request #3060 from marc1706/ticket/13211
[ticket/13211] Add log wrapper for writing database updater to log file
2014-10-25 12:04:29 -07:00
Marc Alexander
078e0c1e44 [ticket/13211] Move console migrator output handler back to console folder
PHPBB3-13211
2014-10-25 12:03:13 -07:00
Marc Alexander
8443463006 [ticket/13211] Also use log wrapper output handler for console migrations
PHPBB3-13211
2014-10-25 11:55:15 -07:00
Andreas Fischer
d2e3198407 Merge branch 'prep-release-3.1.0' into develop-ascraeus
* prep-release-3.1.0:
  [ticket/13210] Use the correct config value
2014-10-25 19:50:26 +02:00
Andreas Fischer
a43879fe91 Merge pull request #3061 from Elsensee/ticket/13210
[ticket/13210] Use the correct config value

* Elsensee/ticket/13210:
  [ticket/13210] Use the correct config value
2014-10-25 19:48:33 +02:00
Andreas Fischer
103c929ff0 Merge branch 'prep-release-3.1.0' into develop-ascraeus
* prep-release-3.1.0:
  [ticket/13208] Add security issues to the final changelog
  [prep-release-3.1.0] Prepare Changelog
  [prep-release-3.1.0] Update version to 3.1.0
2014-10-25 19:39:50 +02:00
Oliver Schramm
a9a67b08a5 [ticket/13210] Use the correct config value
PHPBB3-13210
2014-10-25 14:28:56 +02:00
Marc Alexander
b27b9a6984 [ticket/13211] Move console migrator output handler to db folder
PHPBB3-13211
2014-10-24 13:33:26 -07:00
Marc Alexander
516bd9ea51 [ticket/13211] Add log wrapper for writing database updater to log file
PHPBB3-13211
2014-10-24 13:22:56 -07:00
Marc Alexander
14300a1475 Merge remote-tracking branch 'Nicofuma/ticket/13126' into ticket/13211 2014-10-24 13:22:39 -07:00
Marc Alexander
6217a51920 Merge pull request #3059 from nickvergessen/ticket/13208
[ticket/13208] Add security issues to the final changelog
2014-10-23 08:56:01 -04:00
Joas Schilling
c814483627 [ticket/13208] Add security issues to the final changelog
PHPBB3-13208
2014-10-23 12:36:27 +02:00
Joas Schilling
1cd09a03e6 [prep-release-3.1.0] Prepare Changelog 2014-10-23 12:25:52 +02:00
Joas Schilling
80a9c24b6b [prep-release-3.1.0] Update version to 3.1.0 2014-10-23 12:22:02 +02:00
Joas Schilling
08f365236a Merge branch 'prep-release-3.1.0-RC6' into develop-ascraeus 2014-10-23 02:44:45 +02:00
Joas Schilling
7a90184421 [prep-release-3.1.0-RC6] Update phpBB Version for RC7 development 2014-10-23 02:44:18 +02:00
Tristan Darricau
fdece6cdf3 [ticket/13126] Add missing use statement
PHPBB3-13126
2014-10-22 15:25:50 +02:00
Tristan Darricau
981d3005f3 [ticket/13126] Fix tests
PHPBB3-13126
2014-10-20 20:46:11 +02:00
Tristan Darricau
faf4b03c43 [ticket/13126] Change messages verbosity levels
PHPBB3-13126
2014-10-20 19:42:54 +02:00
Tristan Darricau
8f6fcd2744 [ticket/13126] Move migrator_output_handler to an interface
PHPBB3-13126
2014-10-20 19:41:32 +02:00
Tristan Darricau
58075e25e8 [ticket/13126] Extends migrator_output_handler instead of using a closure
PHPBB3-13126
2014-10-16 01:34:23 +02:00
Tristan Darricau
56d7c2c6ed [ticket/13126] Improve the feedback when running the migrations
PHPBB3-13126
2014-10-14 17:58:29 +02:00
41 changed files with 824 additions and 354 deletions

View File

@@ -2,9 +2,9 @@
<project name="phpBB" description="The phpBB forum software" default="all" basedir="../">
<!-- a few settings for the build -->
<property name="newversion" value="3.1.0-RC6" />
<property name="prevversion" value="3.1.0-RC5" />
<property name="olderversions" value="3.0.12, 3.1.0-a1, 3.1.0-a2, 3.1.0-a3, 3.1.0-b1, 3.1.0-b2, 3.1.0-b3, 3.1.0-b4, 3.1.0-RC1, 3.1.0-RC2, 3.1.0-RC3, 3.1.0-RC4" />
<property name="newversion" value="3.1.0" />
<property name="prevversion" value="3.1.0-RC6" />
<property name="olderversions" value="3.0.12, 3.1.0-a1, 3.1.0-a2, 3.1.0-a3, 3.1.0-b1, 3.1.0-b2, 3.1.0-b3, 3.1.0-b4, 3.1.0-RC1, 3.1.0-RC2, 3.1.0-RC3, 3.1.0-RC4, 3.1.0-RC5" />
<!-- no configuration should be needed beyond this point -->
<property name="oldversions" value="${olderversions}, ${prevversion}" />

View File

@@ -20,7 +20,7 @@ if ($_SERVER['argc'] != 2)
$fixVersion = $_SERVER['argv'][1];
$query = 'project = PHPBB3
$query = 'project IN (PHPBB3, SECURITY)
AND resolution = Fixed
AND fixVersion = "' . $fixVersion . '"
AND status IN ("Unverified Fix", Closed)';

151
phpBB/composer.lock generated
View File

@@ -108,17 +108,17 @@
},
{
"name": "symfony/config",
"version": "v2.3.19",
"version": "v2.3.21",
"target-dir": "Symfony/Component/Config",
"source": {
"type": "git",
"url": "https://github.com/symfony/Config.git",
"reference": "b34d2b32a92938476f0689486e7a11ea1aeb079e"
"reference": "f9fac999dbc2c6aabd749c034d938b5f9aa5fb7d"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/Config/zipball/b34d2b32a92938476f0689486e7a11ea1aeb079e",
"reference": "b34d2b32a92938476f0689486e7a11ea1aeb079e",
"url": "https://api.github.com/repos/symfony/Config/zipball/f9fac999dbc2c6aabd749c034d938b5f9aa5fb7d",
"reference": "f9fac999dbc2c6aabd749c034d938b5f9aa5fb7d",
"shasum": ""
},
"require": {
@@ -152,21 +152,21 @@
],
"description": "Symfony Config Component",
"homepage": "http://symfony.com",
"time": "2014-08-02 07:53:48"
"time": "2014-09-23 05:15:05"
},
{
"name": "symfony/console",
"version": "v2.3.19",
"version": "v2.3.21",
"target-dir": "Symfony/Component/Console",
"source": {
"type": "git",
"url": "https://github.com/symfony/Console.git",
"reference": "a2723f99716c2fa6411e2eb5842edbe680e4b462"
"reference": "aa12ac573c583a74c2cb26ad9be478e119f04ad1"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/Console/zipball/a2723f99716c2fa6411e2eb5842edbe680e4b462",
"reference": "a2723f99716c2fa6411e2eb5842edbe680e4b462",
"url": "https://api.github.com/repos/symfony/Console/zipball/aa12ac573c583a74c2cb26ad9be478e119f04ad1",
"reference": "aa12ac573c583a74c2cb26ad9be478e119f04ad1",
"shasum": ""
},
"require": {
@@ -205,21 +205,21 @@
],
"description": "Symfony Console Component",
"homepage": "http://symfony.com",
"time": "2014-08-07 15:55:24"
"time": "2014-10-05 13:45:10"
},
{
"name": "symfony/debug",
"version": "v2.3.19",
"version": "v2.3.21",
"target-dir": "Symfony/Component/Debug",
"source": {
"type": "git",
"url": "https://github.com/symfony/Debug.git",
"reference": "91e3a1480c67601d2406cd938735abe0243e1c95"
"reference": "883f847ad179e92549a8cea372b08e5ef47ffe40"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/Debug/zipball/91e3a1480c67601d2406cd938735abe0243e1c95",
"reference": "91e3a1480c67601d2406cd938735abe0243e1c95",
"url": "https://api.github.com/repos/symfony/Debug/zipball/883f847ad179e92549a8cea372b08e5ef47ffe40",
"reference": "883f847ad179e92549a8cea372b08e5ef47ffe40",
"shasum": ""
},
"require": {
@@ -261,21 +261,21 @@
],
"description": "Symfony Debug Component",
"homepage": "http://symfony.com",
"time": "2014-07-07 10:13:42"
"time": "2014-10-09 16:42:17"
},
{
"name": "symfony/dependency-injection",
"version": "v2.3.19",
"version": "v2.3.21",
"target-dir": "Symfony/Component/DependencyInjection",
"source": {
"type": "git",
"url": "https://github.com/symfony/DependencyInjection.git",
"reference": "5ee5795515be251c56057d79154e561ee1efecd2"
"reference": "e2324e1c8c39faa5f27e6170b278d7f631574141"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/DependencyInjection/zipball/5ee5795515be251c56057d79154e561ee1efecd2",
"reference": "5ee5795515be251c56057d79154e561ee1efecd2",
"url": "https://api.github.com/repos/symfony/DependencyInjection/zipball/e2324e1c8c39faa5f27e6170b278d7f631574141",
"reference": "e2324e1c8c39faa5f27e6170b278d7f631574141",
"shasum": ""
},
"require": {
@@ -317,21 +317,21 @@
],
"description": "Symfony DependencyInjection Component",
"homepage": "http://symfony.com",
"time": "2014-08-27 08:32:18"
"time": "2014-10-01 05:38:33"
},
{
"name": "symfony/event-dispatcher",
"version": "v2.3.19",
"version": "v2.3.21",
"target-dir": "Symfony/Component/EventDispatcher",
"source": {
"type": "git",
"url": "https://github.com/symfony/EventDispatcher.git",
"reference": "2c64e46d7e22bcafcab4413ff62bc389abf87ea5"
"reference": "3e0b837811fadd73c833c7c06a92201d953df59d"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/EventDispatcher/zipball/2c64e46d7e22bcafcab4413ff62bc389abf87ea5",
"reference": "2c64e46d7e22bcafcab4413ff62bc389abf87ea5",
"url": "https://api.github.com/repos/symfony/EventDispatcher/zipball/3e0b837811fadd73c833c7c06a92201d953df59d",
"reference": "3e0b837811fadd73c833c7c06a92201d953df59d",
"shasum": ""
},
"require": {
@@ -371,21 +371,21 @@
],
"description": "Symfony EventDispatcher Component",
"homepage": "http://symfony.com",
"time": "2014-07-25 15:00:14"
"time": "2014-10-01 05:39:06"
},
{
"name": "symfony/filesystem",
"version": "v2.3.19",
"version": "v2.3.21",
"target-dir": "Symfony/Component/Filesystem",
"source": {
"type": "git",
"url": "https://github.com/symfony/Filesystem.git",
"reference": "007359d2822d5eba4f04f6507bc9b46877c622b4"
"reference": "1c3a5fab445d1d4a5d57f8fbf1379696c9785942"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/Filesystem/zipball/007359d2822d5eba4f04f6507bc9b46877c622b4",
"reference": "007359d2822d5eba4f04f6507bc9b46877c622b4",
"url": "https://api.github.com/repos/symfony/Filesystem/zipball/1c3a5fab445d1d4a5d57f8fbf1379696c9785942",
"reference": "1c3a5fab445d1d4a5d57f8fbf1379696c9785942",
"shasum": ""
},
"require": {
@@ -418,21 +418,21 @@
],
"description": "Symfony Filesystem Component",
"homepage": "http://symfony.com",
"time": "2014-08-31 03:30:23"
"time": "2014-09-22 08:32:35"
},
{
"name": "symfony/http-foundation",
"version": "v2.3.19",
"version": "v2.3.21",
"target-dir": "Symfony/Component/HttpFoundation",
"source": {
"type": "git",
"url": "https://github.com/symfony/HttpFoundation.git",
"reference": "d0125fed988da9e189864c2e6de967b3ee7f1d98"
"reference": "30c90f08f948dd43e7310beae7a85c02ad2b655d"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/HttpFoundation/zipball/d0125fed988da9e189864c2e6de967b3ee7f1d98",
"reference": "d0125fed988da9e189864c2e6de967b3ee7f1d98",
"url": "https://api.github.com/repos/symfony/HttpFoundation/zipball/30c90f08f948dd43e7310beae7a85c02ad2b655d",
"reference": "30c90f08f948dd43e7310beae7a85c02ad2b655d",
"shasum": ""
},
"require": {
@@ -468,21 +468,21 @@
],
"description": "Symfony HttpFoundation Component",
"homepage": "http://symfony.com",
"time": "2014-09-03 07:39:11"
"time": "2014-10-23 13:11:04"
},
{
"name": "symfony/http-kernel",
"version": "v2.3.19",
"version": "v2.3.21",
"target-dir": "Symfony/Component/HttpKernel",
"source": {
"type": "git",
"url": "https://github.com/symfony/HttpKernel.git",
"reference": "a24817f69012b23ce7c554af6b4c7b53235c7c55"
"reference": "0154ff659004d4148e8da0f2bdb672efe55e6ee5"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/HttpKernel/zipball/a24817f69012b23ce7c554af6b4c7b53235c7c55",
"reference": "a24817f69012b23ce7c554af6b4c7b53235c7c55",
"url": "https://api.github.com/repos/symfony/HttpKernel/zipball/0154ff659004d4148e8da0f2bdb672efe55e6ee5",
"reference": "0154ff659004d4148e8da0f2bdb672efe55e6ee5",
"shasum": ""
},
"require": {
@@ -539,21 +539,21 @@
],
"description": "Symfony HttpKernel Component",
"homepage": "http://symfony.com",
"time": "2014-09-03 09:45:27"
"time": "2014-10-24 05:54:08"
},
{
"name": "symfony/routing",
"version": "v2.3.19",
"version": "v2.3.21",
"target-dir": "Symfony/Component/Routing",
"source": {
"type": "git",
"url": "https://github.com/symfony/Routing.git",
"reference": "aa2beef5d5f1d84250b5ca73a4056c0504e5969e"
"reference": "f7f8ebf9c99e5ebfdb908c3558a818c2883eab1f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/Routing/zipball/aa2beef5d5f1d84250b5ca73a4056c0504e5969e",
"reference": "aa2beef5d5f1d84250b5ca73a4056c0504e5969e",
"url": "https://api.github.com/repos/symfony/Routing/zipball/f7f8ebf9c99e5ebfdb908c3558a818c2883eab1f",
"reference": "f7f8ebf9c99e5ebfdb908c3558a818c2883eab1f",
"shasum": ""
},
"require": {
@@ -563,6 +563,7 @@
"doctrine/common": "~2.2",
"psr/log": "~1.0",
"symfony/config": "~2.2",
"symfony/http-foundation": "~2.3",
"symfony/yaml": "~2.0"
},
"suggest": {
@@ -597,21 +598,21 @@
],
"description": "Symfony Routing Component",
"homepage": "http://symfony.com",
"time": "2014-08-15 09:05:55"
"time": "2014-10-13 12:38:27"
},
{
"name": "symfony/yaml",
"version": "v2.3.19",
"version": "v2.3.21",
"target-dir": "Symfony/Component/Yaml",
"source": {
"type": "git",
"url": "https://github.com/symfony/Yaml.git",
"reference": "71ceeca3d8164f0c5313127b24ad056071ccf2c6"
"reference": "34687c6236f1dfcebc874fbebd8da74d90f9f64f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/Yaml/zipball/71ceeca3d8164f0c5313127b24ad056071ccf2c6",
"reference": "71ceeca3d8164f0c5313127b24ad056071ccf2c6",
"url": "https://api.github.com/repos/symfony/Yaml/zipball/34687c6236f1dfcebc874fbebd8da74d90f9f64f",
"reference": "34687c6236f1dfcebc874fbebd8da74d90f9f64f",
"shasum": ""
},
"require": {
@@ -644,7 +645,7 @@
],
"description": "Symfony Yaml Component",
"homepage": "http://symfony.com",
"time": "2014-08-28 01:42:35"
"time": "2014-10-01 05:38:33"
},
{
"name": "twig/twig",
@@ -1987,17 +1988,17 @@
},
{
"name": "symfony/browser-kit",
"version": "v2.3.19",
"version": "v2.3.21",
"target-dir": "Symfony/Component/BrowserKit",
"source": {
"type": "git",
"url": "https://github.com/symfony/BrowserKit.git",
"reference": "262d698efaa788ce24ff9c987378789bf3f81ce9"
"reference": "6a403eedacb56d32dc2cc657cfeac09d640ae6bc"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/BrowserKit/zipball/262d698efaa788ce24ff9c987378789bf3f81ce9",
"reference": "262d698efaa788ce24ff9c987378789bf3f81ce9",
"url": "https://api.github.com/repos/symfony/BrowserKit/zipball/6a403eedacb56d32dc2cc657cfeac09d640ae6bc",
"reference": "6a403eedacb56d32dc2cc657cfeac09d640ae6bc",
"shasum": ""
},
"require": {
@@ -2038,21 +2039,21 @@
],
"description": "Symfony BrowserKit Component",
"homepage": "http://symfony.com",
"time": "2014-08-05 07:20:55"
"time": "2014-09-22 08:32:35"
},
{
"name": "symfony/css-selector",
"version": "v2.3.19",
"version": "v2.3.21",
"target-dir": "Symfony/Component/CssSelector",
"source": {
"type": "git",
"url": "https://github.com/symfony/CssSelector.git",
"reference": "8953d325d3341c246abadb79be172de95ef80664"
"reference": "d9943386b648d21746bed25cc24f61fab1387943"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/CssSelector/zipball/8953d325d3341c246abadb79be172de95ef80664",
"reference": "8953d325d3341c246abadb79be172de95ef80664",
"url": "https://api.github.com/repos/symfony/CssSelector/zipball/d9943386b648d21746bed25cc24f61fab1387943",
"reference": "d9943386b648d21746bed25cc24f61fab1387943",
"shasum": ""
},
"require": {
@@ -2089,21 +2090,21 @@
],
"description": "Symfony CssSelector Component",
"homepage": "http://symfony.com",
"time": "2014-08-27 08:24:06"
"time": "2014-10-09 12:30:02"
},
{
"name": "symfony/dom-crawler",
"version": "v2.3.19",
"version": "v2.3.21",
"target-dir": "Symfony/Component/DomCrawler",
"source": {
"type": "git",
"url": "https://github.com/symfony/DomCrawler.git",
"reference": "bad8d98561f071639fa67b20680bffcc256ce252"
"reference": "64b90870ee3a4e88c9a7a12861683864de029d31"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/DomCrawler/zipball/bad8d98561f071639fa67b20680bffcc256ce252",
"reference": "bad8d98561f071639fa67b20680bffcc256ce252",
"url": "https://api.github.com/repos/symfony/DomCrawler/zipball/64b90870ee3a4e88c9a7a12861683864de029d31",
"reference": "64b90870ee3a4e88c9a7a12861683864de029d31",
"shasum": ""
},
"require": {
@@ -2142,21 +2143,21 @@
],
"description": "Symfony DomCrawler Component",
"homepage": "http://symfony.com",
"time": "2014-08-21 00:21:59"
"time": "2014-10-01 05:38:33"
},
{
"name": "symfony/finder",
"version": "v2.3.19",
"version": "v2.3.21",
"target-dir": "Symfony/Component/Finder",
"source": {
"type": "git",
"url": "https://github.com/symfony/Finder.git",
"reference": "f7a5a5a3b1fc0ec9a1a5b4429223a8726e0f4b55"
"reference": "fc25dab213d14468c39f12d47e5b79a72b898d4d"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/Finder/zipball/f7a5a5a3b1fc0ec9a1a5b4429223a8726e0f4b55",
"reference": "f7a5a5a3b1fc0ec9a1a5b4429223a8726e0f4b55",
"url": "https://api.github.com/repos/symfony/Finder/zipball/fc25dab213d14468c39f12d47e5b79a72b898d4d",
"reference": "fc25dab213d14468c39f12d47e5b79a72b898d4d",
"shasum": ""
},
"require": {
@@ -2189,21 +2190,21 @@
],
"description": "Symfony Finder Component",
"homepage": "http://symfony.com",
"time": "2014-08-31 04:03:32"
"time": "2014-10-01 05:39:06"
},
{
"name": "symfony/process",
"version": "v2.3.19",
"version": "v2.3.21",
"target-dir": "Symfony/Component/Process",
"source": {
"type": "git",
"url": "https://github.com/symfony/Process.git",
"reference": "b8fc0e4b6750e4c458a38d038e6b4d538d4fe2bb"
"reference": "0434822691030547f2439d30ff68758c5576a0ce"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/Process/zipball/b8fc0e4b6750e4c458a38d038e6b4d538d4fe2bb",
"reference": "b8fc0e4b6750e4c458a38d038e6b4d538d4fe2bb",
"url": "https://api.github.com/repos/symfony/Process/zipball/0434822691030547f2439d30ff68758c5576a0ce",
"reference": "0434822691030547f2439d30ff68758c5576a0ce",
"shasum": ""
},
"require": {
@@ -2236,7 +2237,7 @@
],
"description": "Symfony Process Component",
"homepage": "http://symfony.com",
"time": "2014-08-28 09:02:24"
"time": "2014-10-01 05:38:33"
}
],
"aliases": [

View File

@@ -84,6 +84,7 @@ services:
- @config
- @cache
- @log
- %core.root_path%
tags:
- { name: console.command }

View File

@@ -46,6 +46,7 @@
<ol>
<li><a href="#changelog">Changelog</a>
<ol style="list-style-type: lower-roman;">
<li><a href="#v310RC6">Changes since 3.1.0-RC6</a></li>
<li><a href="#v310RC5">Changes since 3.1.0-RC5</a></li>
<li><a href="#v310RC4">Changes since 3.1.0-RC4</a></li>
<li><a href="#v310RC3">Changes since 3.1.0-RC3</a></li>
@@ -99,7 +100,35 @@
<div class="content">
<a name="v310RC5"></a><h3>1.i. Changes since 3.1.0-RC5</h3>
<a name="v310RC6"></a><h3>1.i. Changes since 3.1.0-RC6</h3>
<h4>Bug</h4>
<ul>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13126">PHPBB3-13126</a>] - More detailed output for migrations needed</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13208">PHPBB3-13208</a>] - Security issues are not pulled into the changelog</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13210">PHPBB3-13210</a>] - Queue Cron Job checks for wrong config variable queue_interval_config</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13211">PHPBB3-13211</a>] - Add possibility to save migrations output to log</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13221">PHPBB3-13221</a>] - Can't upgrade to 3.1 from 3.0.11 and older</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13223">PHPBB3-13223</a>] - Using get_username_string() for email template variables causes HTML markup in emails</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13225">PHPBB3-13225</a>] - phpbb_hash() undefined in phpbb\db\migration\data\v30x\release_3_0_5_rc1.php</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13226">PHPBB3-13226</a>] - Stray $rank_img in memberlist.php</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13227">PHPBB3-13227</a>] - Remote avatars do not work with cURL wrapper</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13229">PHPBB3-13229</a>] - Memberlist is getting overloaded with redundant SQL queries</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13230">PHPBB3-13230</a>] - Deprecated phpbb_clean_path() does not work anymore</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13231">PHPBB3-13231</a>] - The migration contact_admin_form must depends on config_db_text</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13232">PHPBB3-13232</a>] - Email queue does not get run</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13234">PHPBB3-13234</a>] - Remember me cookie gets unset by admin reauthentication</li>
</ul>
<h4>Improvement</h4>
<ul>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13207">PHPBB3-13207</a>] - Default subscription notification setting for new users does not include email</li>
</ul>
<h4>Task</h4>
<ul>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13215">PHPBB3-13215</a>] - Update Symfony Components to 2.3.21</li>
</ul>
<a name="v310RC5"></a><h3>1.ii. Changes since 3.1.0-RC5</h3>
<h4>Bug</h4>
<ul>
@@ -123,6 +152,10 @@
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13190">PHPBB3-13190</a>] - phpbb_session_login_keys_test::test_reset_keys fails on develop-ascraeus</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13194">PHPBB3-13194</a>] - BBCode isn't parsed when issuing a warning for a post</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13203">PHPBB3-13203</a>] - Use constant time comparison method for comparing password hashes</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13217">PHPBB3-13217</a>] - Remember me cookie leak</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13218">PHPBB3-13218</a>] - Missing token check in acp_styles</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13221">PHPBB3-13221</a>] - Can't upgrade to 3.1 from 3.0.11 and older</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13223">PHPBB3-13223</a>] - Using get_username_string() for email template variables causes HTML markup in emails</li>
</ul>
<h4>Improvement</h4>
<ul>
@@ -136,7 +169,7 @@
</ul>
<a name="v310RC4"></a><h3>1.ii. Changes since 3.1.0-RC4</h3>
<a name="v310RC4"></a><h3>1.iii. Changes since 3.1.0-RC4</h3>
<h4>Bug</h4>
<ul>
@@ -203,7 +236,7 @@
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13123">PHPBB3-13123</a>] - Add events to allow post blocking and post pre/past processing</li>
</ul>
<a name="v310RC3"></a><h3>1.iii. Changes since 3.1.0-RC3</h3>
<a name="v310RC3"></a><h3>1.iv. Changes since 3.1.0-RC3</h3>
<h4>Bug</h4>
<ul>
@@ -293,7 +326,7 @@
</ul>
<a name="v310RC2"></a><h3>1.iv. Changes since 3.1.0-RC2</h3>
<a name="v310RC2"></a><h3>1.v. Changes since 3.1.0-RC2</h3>
<h4>Bug</h4>
<ul>
@@ -417,7 +450,7 @@
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12948">PHPBB3-12948</a>] - Remove Travis CI &quot;broken opcache on PHP 5.5.7 and 5.5.8&quot; workaround.</li>
</ul>
<a name="v310RC1"></a><h3>1.v. Changes since 3.1.0-RC1</h3>
<a name="v310RC1"></a><h3>1.vi. Changes since 3.1.0-RC1</h3>
<h4>Bug</h4>
<ul>
@@ -488,7 +521,7 @@
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12829">PHPBB3-12829</a>] - Remove check for pgsql 8.3/8.2</li>
</ul>
<a name="v310b4"></a><h3>1.vi. Changes since 3.1.0-b4</h3>
<a name="v310b4"></a><h3>1.vii. Changes since 3.1.0-b4</h3>
<h4>Bug</h4>
<ul>
@@ -608,7 +641,7 @@
</ul>
<a name="v310b3"></a><h3>1.vii. Changes since 3.1.0-b3</h3>
<a name="v310b3"></a><h3>1.viii. Changes since 3.1.0-b3</h3>
<h4>Bug</h4>
<ul>
@@ -715,7 +748,7 @@
</ul>
<a name="v310b2"></a><h3>1.viii. Changes since 3.1.0-b2</h3>
<a name="v310b2"></a><h3>1.ix. Changes since 3.1.0-b2</h3>
<h4>Bug</h4>
<ul>
@@ -880,7 +913,7 @@
</ul>
<a name="v310b1"></a><h3>1.ix. Changes since 3.1.0-b1</h3>
<a name="v310b1"></a><h3>1.x. Changes since 3.1.0-b1</h3>
<h4>Bug</h4>
<ul>
@@ -948,7 +981,7 @@
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12302">PHPBB3-12302</a>] - Upgrade composer.phar to 1.0.0-alpha8</li>
</ul>
<a name="v310a3"></a><h3>1.x. Changes since 3.1.0-a3</h3>
<a name="v310a3"></a><h3>1.xi. Changes since 3.1.0-a3</h3>
<h4>Bug</h4>
<ul>
@@ -1095,7 +1128,7 @@
</ul>
<a name="v310a2"></a><h3>1.xi. Changes since 3.1.0-a2</h3>
<a name="v310a2"></a><h3>1.xii. Changes since 3.1.0-a2</h3>
<h4>Bug</h4>
<ul>
@@ -1203,7 +1236,7 @@
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12147">PHPBB3-12147</a>] - Remove Travis CI notification configuration</li>
</ul>
<a name="v310a1"></a><h3>1.xii. Changes since 3.1.0-a1</h3>
<a name="v310a1"></a><h3>1.xiii. Changes since 3.1.0-a1</h3>
<h4>Bug</h4>
<ul>
@@ -1279,7 +1312,7 @@
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11998">PHPBB3-11998</a>] - Add console / command line client environment </li>
</ul>
<a name="v30x"></a><h3>1.xiii. Changes since 3.0.x</h3>
<a name="v30x"></a><h3>1.xiv. Changes since 3.0.x</h3>
<h4>Bug</h4>
<ul>
@@ -1960,7 +1993,7 @@
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11913">PHPBB3-11913</a>] - Apply reorganisation of download.phpbb.com to build_announcement.php</li>
</ul>
<a name="v3011"></a><h3>1.xiv. Changes since 3.0.11</h3>
<a name="v3011"></a><h3>1.xv. Changes since 3.0.11</h3>
<h4>Bug</h4>
<ul>
@@ -2115,7 +2148,7 @@
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11753">PHPBB3-11753</a>] - Upgrade mysql_upgrader.php schema data.</li>
</ul>
<a name="v3010"></a><h3>1.xv. Changes since 3.0.10</h3>
<a name="v3010"></a><h3>1.xvi. Changes since 3.0.10</h3>
<h4>Bug</h4>
<ul>
@@ -2240,7 +2273,7 @@
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-10909">PHPBB3-10909</a>] - Update Travis Test Configuration: Travis no longer supports PHP 5.3.2</li>
</ul>
<a name="v309"></a><h3>1.xvi. Changes since 3.0.9</h3>
<a name="v309"></a><h3>1.xvii. Changes since 3.0.9</h3>
<h4>Bug</h4>
<ul>
@@ -2376,7 +2409,7 @@
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-10480">PHPBB3-10480</a>] - Automate changelog building</li>
</ul>
<a name="v308"></a><h3>1.xvii. Changes since 3.0.8</h3>
<a name="v308"></a><h3>1.xviii. Changes since 3.0.8</h3>
<h4> Bug
</h4>
@@ -2744,7 +2777,7 @@
</ul>
<a name="v307-PL1"></a><h3>1.xviii. Changes since 3.0.7-PL1</h3>
<a name="v307-PL1"></a><h3>1.xix. Changes since 3.0.7-PL1</h3>
<h4> Security
</h4>
<ul>
@@ -3202,13 +3235,13 @@
</ul>
<a name="v307"></a><h3>1.xix. Changes since 3.0.7</h3>
<a name="v307"></a><h3>1.xx. Changes since 3.0.7</h3>
<ul>
<li>[Sec] Do not expose forum content of forums with ACL entries but no actual permission in ATOM Feeds. (Bug #58595)</li>
</ul>
<a name="v306"></a><h3>1.xx. Changes since 3.0.6</h3>
<a name="v306"></a><h3>1.xxi. Changes since 3.0.6</h3>
<ul>
<li>[Fix] Allow ban reason and length to be selected and copied in ACP and subsilver2 MCP. (Bug #51095)</li>
@@ -3312,7 +3345,7 @@
</ul>
<a name="v305"></a><h3>1.xxi. Changes since 3.0.5</h3>
<a name="v305"></a><h3>1.xxii. Changes since 3.0.5</h3>
<ul>
<li>[Fix] Allow whitespaces in avatar gallery names. (Bug #44955)</li>
@@ -3534,7 +3567,7 @@
<li>[Feature] Send anonymous statistical information to phpBB on installation and update (optional).</li>
</ul>
<a name="v304"></a><h3>1.xxii. Changes since 3.0.4</h3>
<a name="v304"></a><h3>1.xxiii. Changes since 3.0.4</h3>
<ul>
<li>[Fix] Delete user entry from ban list table upon user deletion (Bug #40015 - Patch by TerraFrost)</li>
@@ -3623,7 +3656,7 @@
<li>[Sec] Only use forum id supplied for posting if global announcement detected. (Reported by nickvergessen)</li>
</ul>
<a name="v303"></a><h3>1.xxiii. Changes since 3.0.3</h3>
<a name="v303"></a><h3>1.xxiv. Changes since 3.0.3</h3>
<ul>
<li>[Fix] Allow mixed-case template directories to be inherited (Bug #36725)</li>
@@ -3655,7 +3688,7 @@
<li>[Sec] Ask for forum password if post within passworded forum quoted in private message. (Reported by nickvergessen)</li>
</ul>
<a name="v302"></a><h3>1.xxiv. Changes since 3.0.2</h3>
<a name="v302"></a><h3>1.xxv. Changes since 3.0.2</h3>
<ul>
<li>[Fix] Correctly set topic starter if first post in topic removed (Bug #30575 - Patch by blueray2048)</li>
@@ -3754,7 +3787,7 @@
<li>[Sec Precaution] Stricter validation of the HTTP_HOST header (Thanks to Techie-Micheal et al for pointing out possible issues in derived code)</li>
</ul>
<a name="v301"></a><h3>1.xxv. Changes since 3.0.1</h3>
<a name="v301"></a><h3>1.xxvi. Changes since 3.0.1</h3>
<ul>
<li>[Fix] Ability to set permissions on non-mysql dbms (Bug #24955)</li>
@@ -3802,7 +3835,7 @@
<li>[Sec] Only allow urls gone through redirect() being used within login_box(). (thanks nookieman)</li>
</ul>
<a name="v300"></a><h3>1.xxvi. Changes since 3.0.0</h3>
<a name="v300"></a><h3>1.xxvii. Changes since 3.0.0</h3>
<ul>
<li>[Change] Validate birthdays (Bug #15004)</li>
@@ -3873,7 +3906,7 @@
<li>[Fix] Find and display colliding usernames correctly when converting from one database to another (Bug #23925)</li>
</ul>
<a name="v30rc8"></a><h3>1.xxvii. Changes since 3.0.RC8</h3>
<a name="v30rc8"></a><h3>1.xxviii. Changes since 3.0.RC8</h3>
<ul>
<li>[Fix] Cleaned usernames contain only single spaces, so &quot;a_name&quot; and &quot;a__name&quot; are treated as the same name (Bug #15634)</li>
@@ -3882,7 +3915,7 @@
<li>[Fix] Call garbage_collection() within database updater to correctly close connections (affects Oracle for example)</li>
</ul>
<a name="v30rc7"></a><h3>1.xxviii. Changes since 3.0.RC7</h3>
<a name="v30rc7"></a><h3>1.xxix. Changes since 3.0.RC7</h3>
<ul>
<li>[Fix] Fixed MSSQL related bug in the update system</li>
@@ -3917,7 +3950,7 @@
<li>[Fix] No duplication of active topics (Bug #15474)</li>
</ul>
<a name="v30rc6"></a><h3>1.xxix. Changes since 3.0.RC6</h3>
<a name="v30rc6"></a><h3>1.xxx. Changes since 3.0.RC6</h3>
<ul>
<li>[Fix] Submitting language changes using acp_language (Bug #14736)</li>
@@ -3927,7 +3960,7 @@
<li>[Fix] Able to request new password (Bug #14743)</li>
</ul>
<a name="v30rc5"></a><h3>1.xxx. Changes since 3.0.RC5</h3>
<a name="v30rc5"></a><h3>1.xxxi. Changes since 3.0.RC5</h3>
<ul>
<li>[Feature] Removing constant PHPBB_EMBEDDED in favor of using an exit_handler(); the constant was meant to achive this more or less.</li>
@@ -3990,7 +4023,7 @@
<li>[Sec] New password hashing mechanism for storing passwords (#i42)</li>
</ul>
<a name="v30rc4"></a><h3>1.xxxi. Changes since 3.0.RC4</h3>
<a name="v30rc4"></a><h3>1.xxxii. Changes since 3.0.RC4</h3>
<ul>
<li>[Fix] MySQL, PostgreSQL and SQLite related database fixes (Bug #13862)</li>
@@ -4041,7 +4074,7 @@
<li>[Fix] odbc_autocommit causing existing result sets to be dropped (Bug #14182)</li>
</ul>
<a name="v30rc3"></a><h3>1.xxxii. Changes since 3.0.RC3</h3>
<a name="v30rc3"></a><h3>1.xxxiii. Changes since 3.0.RC3</h3>
<ul>
<li>[Fix] Fixing some subsilver2 and prosilver style issues</li>
@@ -4150,7 +4183,7 @@
</ul>
<a name="v30rc2"></a><h3>1.xxxiii. Changes since 3.0.RC2</h3>
<a name="v30rc2"></a><h3>1.xxxiv. Changes since 3.0.RC2</h3>
<ul>
<li>[Fix] Re-allow searching within the memberlist</li>
@@ -4196,7 +4229,7 @@
</ul>
<a name="v30rc1"></a><h3>1.xxxiv. Changes since 3.0.RC1</h3>
<a name="v30rc1"></a><h3>1.xxxv. Changes since 3.0.RC1</h3>
<ul>
<li>[Fix] (X)HTML issues within the templates (Bug #11255, #11255)</li>

View File

@@ -28,7 +28,7 @@ if (!defined('IN_PHPBB'))
*/
// phpBB Version
define('PHPBB_VERSION', '3.1.0-RC6');
define('PHPBB_VERSION', '3.1.0');
// QA-related
// define('PHPBB_QA', 1);

View File

@@ -5254,7 +5254,7 @@ function page_footer($run_cron = true, $display_template = true, $exit_handler =
// Call cron-type script
$call_cron = false;
if (!defined('IN_CRON') && !$config['use_system_cron'] && $run_cron && !$config['board_disable'] && !$user->data['is_bot'] && !$cache->get('cron.lock_check'))
if (!defined('IN_CRON') && !$config['use_system_cron'] && $run_cron && !$config['board_disable'] && !$user->data['is_bot'] && !$cache->get('_cron.lock_check'))
{
$call_cron = true;
$time_now = (!empty($user->time_now) && is_int($user->time_now)) ? $user->time_now : time();
@@ -5286,7 +5286,7 @@ function page_footer($run_cron = true, $display_template = true, $exit_handler =
}
else
{
$cache->put('cron.lock_check', true, 300);
$cache->put('_cron.lock_check', true, 60);
}
}

View File

@@ -101,18 +101,21 @@ function phpbb_clean_path($path)
}
else if (!$phpbb_path_helper)
{
global $phpbb_root_path, $phpEx;
// The container is not yet loaded, use a new instance
if (!class_exists('\phpbb\path_helper'))
{
global $phpbb_root_path, $phpEx;
require($phpbb_root_path . 'phpbb/path_helper.' . $phpEx);
}
$request = new phpbb\request\request();
$phpbb_path_helper = new phpbb\path_helper(
new phpbb\symfony_request(
new phpbb\request\request()
$request
),
new phpbb\filesystem(),
$request,
$phpbb_root_path,
$phpEx
);

View File

@@ -1491,7 +1491,7 @@ function phpbb_get_user_rank($user_data, $user_posts)
/**
* Prepare profile data
*/
function phpbb_show_profile($data, $user_notes_enabled = false, $warn_user_enabled = false)
function phpbb_show_profile($data, $user_notes_enabled = false, $warn_user_enabled = false, $check_can_receive_pm = true)
{
global $config, $auth, $user, $phpEx, $phpbb_root_path, $phpbb_dispatcher;
@@ -1559,7 +1559,7 @@ function phpbb_show_profile($data, $user_notes_enabled = false, $warn_user_enabl
}
// Can this user receive a Private Message?
$can_receive_pm = (
$can_receive_pm = $check_can_receive_pm && (
// They must be a "normal" user
$data['user_type'] != USER_IGNORE &&

View File

@@ -161,9 +161,10 @@ function user_update_name($old_name, $new_name)
*
* @param mixed $user_row An array containing the following keys (and the appropriate values): username, group_id (the group to place the user in), user_email and the user_type(usually 0). Additional entries not overridden by defaults will be forwarded.
* @param string $cp_data custom profile fields, see custom_profile::build_insert_sql_array
* @param array $notifications_data The notifications settings for the new user
* @return the new user's ID.
*/
function user_add($user_row, $cp_data = false)
function user_add($user_row, $cp_data = false, $notifications_data = null)
{
global $db, $user, $auth, $config, $phpbb_root_path, $phpEx;
global $phpbb_dispatcher, $phpbb_container;
@@ -347,6 +348,31 @@ function user_add($user_row, $cp_data = false)
set_config('newest_user_colour', $row['group_colour'], true);
}
// Use default notifications settings if notifications_data is not set
if ($notifications_data === null)
{
$notifications_data = array(
array(
'item_type' => 'notification.type.post',
'method' => 'notification.method.email',
),
array(
'item_type' => 'notification.type.topic',
'method' => 'notification.method.email',
),
);
}
// Subscribe user to notifications if necessary
if (!empty($notifications_data))
{
$phpbb_notifications = $phpbb_container->get('notification_manager');
foreach ($notifications_data as $subscription)
{
$phpbb_notifications->add_subscription($subscription['item_type'], 0, $subscription['method'], $user_id);
}
}
/**
* Event that returns user id, user detals and user CPF of newly registared user
*

View File

@@ -38,7 +38,7 @@ $dbms = $phpbb_config_php_file->convert_30_dbms_to_31($dbms);
$convertor_data = array(
'forum_name' => 'phpBB 2.0.x',
'version' => '1.0.3',
'phpbb_version' => '3.1.0-RC6',
'phpbb_version' => '3.1.0',
'author' => '<a href="https://www.phpbb.com/">phpBB Limited</a>',
'dbms' => $dbms,
'dbhost' => $dbhost,

View File

@@ -174,6 +174,8 @@ define('IN_DB_UPDATE', true);
// End startup code
$migrator = $phpbb_container->get('migrator');
$migrator->set_output_handler(new \phpbb\db\log_wrapper_migrator_output_handler($user, new \phpbb\db\html_migrator_output_handler($user), $phpbb_root_path . 'store/migrations_' . time() . '.log'));
$migrator->create_migrations_table();
$phpbb_extension_manager = $phpbb_container->get('ext.manager');
@@ -199,8 +201,6 @@ $safe_time_limit = min(15, ($phpbb_ini->get_int('max_execution_time') / 2));
while (!$migrator->finished())
{
$migration_start_time = microtime(true);
try
{
$migrator->update();
@@ -219,28 +219,6 @@ while (!$migrator->finished())
$migrator->last_run_migration['state']
);
if (isset($migrator->last_run_migration['effectively_installed']) && $migrator->last_run_migration['effectively_installed'])
{
echo $user->lang('MIGRATION_EFFECTIVELY_INSTALLED', $migrator->last_run_migration['name']);
}
else
{
if ($migrator->last_run_migration['task'] == 'process_data_step' && $state['migration_data_done'])
{
echo $user->lang('MIGRATION_DATA_DONE', $migrator->last_run_migration['name'], (microtime(true) - $migration_start_time));
}
else if ($migrator->last_run_migration['task'] == 'process_data_step')
{
echo $user->lang('MIGRATION_DATA_IN_PROGRESS', $migrator->last_run_migration['name'], (microtime(true) - $migration_start_time));
}
else if ($state['migration_schema_done'])
{
echo $user->lang('MIGRATION_SCHEMA_DONE', $migrator->last_run_migration['name'], (microtime(true) - $migration_start_time));
}
}
echo "<br />\n";
// Are we approaching the time limit? If so we want to pause the update and continue after refreshing
if ((time() - $update_start_time) >= $safe_time_limit)
{

View File

@@ -273,7 +273,7 @@ INSERT INTO phpbb_config (config_name, config_value) VALUES ('tpl_allow_php', '0
INSERT INTO phpbb_config (config_name, config_value) VALUES ('upload_icons_path', 'images/upload_icons');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('upload_path', 'files');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('use_system_cron', '0');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('version', '3.1.0-RC6');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('version', '3.1.0');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('warnings_expire_days', '90');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('warnings_gc', '14400');

View File

@@ -41,12 +41,16 @@ $lang = array_merge($lang, array(
'GROUP_NOT_EXIST' => 'The group "%s" unexpectedly does not exist.',
'MIGRATION_APPLY_DEPENDENCIES' => 'Apply dependencies of %s.',
'MIGRATION_DATA_DONE' => 'Installed Data: %1$s; Time: %2$.2f seconds',
'MIGRATION_DATA_IN_PROGRESS' => 'Installing Data: %1$s; Time: %2$.2f seconds',
'MIGRATION_DATA_RUNNING' => 'Installing Data: %s.',
'MIGRATION_EFFECTIVELY_INSTALLED' => 'Migration already effectively installed (skipped): %s',
'MIGRATION_EXCEPTION_ERROR' => 'Something went wrong during the request and an exception was thrown. The changes made before the error occurred were reversed to the best of our abilities, but you should check the board for errors.',
'MIGRATION_NOT_FULFILLABLE' => 'The migration "%1$s" is not fulfillable, missing migration "%2$s".',
'MIGRATION_NOT_VALID' => '%s is not a valid migration.',
'MIGRATION_SCHEMA_DONE' => 'Installed Schema: %1$s; Time: %2$.2f seconds',
'MIGRATION_SCHEMA_RUNNING' => 'Installing Schema: %s.',
'MODULE_ERROR' => 'An error occurred while creating a module: %s',
'MODULE_INFO_FILE_NOT_EXIST' => 'A required module info file is missing: %2$s',

View File

@@ -1089,9 +1089,9 @@ switch ($mode)
{
$user_rank_data = phpbb_get_user_rank($group_row, false);
if ($rank_img)
if ($user_rank_data['img'])
{
$rank_img .= '<br />';
$user_rank_data['img'] .= '<br />';
}
}
@@ -1427,7 +1427,7 @@ switch ($mode)
$cp_row = (isset($profile_fields_cache[$user_id])) ? $cp->generate_profile_fields_template_data($profile_fields_cache[$user_id], false) : array();
}
$memberrow = array_merge(phpbb_show_profile($row), array(
$memberrow = array_merge(phpbb_show_profile($row, false, false, false), array(
'ROW_NUMBER' => $i + ($start + 1),
'S_CUSTOM_PROFILE' => (isset($cp_row['row']) && sizeof($cp_row['row'])) ? true : false,

View File

@@ -154,7 +154,7 @@ class local extends \phpbb\avatar\driver\driver
*/
protected function get_avatar_list($user)
{
$avatar_list = ($this->cache == null) ? false : $this->cache->get('avatar_local_list');
$avatar_list = ($this->cache == null) ? false : $this->cache->get('_avatar_local_list');
if ($avatar_list === false)
{
@@ -192,7 +192,7 @@ class local extends \phpbb\avatar\driver\driver
if ($this->cache != null)
{
$this->cache->put('avatar_local_list', $avatar_list, 86400);
$this->cache->put('_avatar_local_list', $avatar_list, 86400);
}
}

View File

@@ -130,8 +130,24 @@ class remote extends \phpbb\avatar\driver\driver
{
// Timeout after 1 second
stream_set_timeout($file_stream, 1);
// read some data to ensure headers are present
fread($file_stream, 1024);
$meta = stream_get_meta_data($file_stream);
foreach ($meta['wrapper_data'] as $header)
if (isset($meta['wrapper_data']['headers']) && is_array($meta['wrapper_data']['headers']))
{
$headers = $meta['wrapper_data']['headers'];
}
else if (isset($meta['wrapper_data']) && is_array($meta['wrapper_data']))
{
$headers = $meta['wrapper_data'];
}
else
{
$headers = array();
}
foreach ($headers as $header)
{
$header = preg_split('/ /', $header, 2);
if (strtr(strtolower(trim($header[0], ':')), '_', '-') === 'content-type')

View File

@@ -0,0 +1,69 @@
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/
namespace phpbb\console\command\db;
use phpbb\user;
use phpbb\db\migrator_output_handler_interface;
use Symfony\Component\Console\Output\OutputInterface;
class console_migrator_output_handler implements migrator_output_handler_interface
{
/**
* User object.
*
* @var user
*/
private $user;
/**
* Console output object.
*
* @var OutputInterface
*/
private $output;
/**
* Constructor
*
* @param user $user User object
* @param OutputInterface $output Console output object
*/
public function __construct(user $user, OutputInterface $output)
{
$this->user = $user;
$this->output = $output;
}
/**
* {@inheritdoc}
*/
public function write($message, $verbosity)
{
if ($verbosity <= $this->output->getVerbosity())
{
$translated_message = call_user_func_array(array($this->user, 'lang'), $message);
if ($verbosity === migrator_output_handler_interface::VERBOSITY_NORMAL)
{
$translated_message = '<info>' . $translated_message . '</info>';
}
else if ($verbosity === migrator_output_handler_interface::VERBOSITY_VERBOSE)
{
$translated_message = '<comment>' . $translated_message . '</comment>';
}
$this->output->writeln($translated_message);
}
}
}

View File

@@ -32,13 +32,17 @@ class migrate extends \phpbb\console\command\command
/** @var \phpbb\log\log */
protected $log;
function __construct(\phpbb\user $user, \phpbb\db\migrator $migrator, \phpbb\extension\manager $extension_manager, \phpbb\config\config $config, \phpbb\cache\service $cache, \phpbb\log\log $log)
/** @var string phpBB root path */
protected $phpbb_root_path;
function __construct(\phpbb\user $user, \phpbb\db\migrator $migrator, \phpbb\extension\manager $extension_manager, \phpbb\config\config $config, \phpbb\cache\service $cache, \phpbb\log\log $log, $phpbb_root_path)
{
$this->migrator = $migrator;
$this->extension_manager = $extension_manager;
$this->config = $config;
$this->cache = $cache;
$this->log = $log;
$this->phpbb_root_path = $phpbb_root_path;
parent::__construct($user);
$this->user->add_lang(array('common', 'install', 'migrator'));
}
@@ -53,6 +57,8 @@ class migrate extends \phpbb\console\command\command
protected function execute(InputInterface $input, OutputInterface $output)
{
$this->migrator->set_output_handler(new \phpbb\db\log_wrapper_migrator_output_handler($this->user, new console_migrator_output_handler($this->user, $output), $this->phpbb_root_path . 'store/migrations_' . time() . '.log'));
$this->migrator->create_migrations_table();
$this->cache->purge();
@@ -61,8 +67,6 @@ class migrate extends \phpbb\console\command\command
$orig_version = $this->config['version'];
while (!$this->migrator->finished())
{
$migration_start_time = microtime(true);
try
{
$this->migrator->update();
@@ -73,36 +77,6 @@ class migrate extends \phpbb\console\command\command
$this->finalise_update();
return 1;
}
$migration_stop_time = microtime(true) - $migration_start_time;
$state = array_merge(
array(
'migration_schema_done' => false,
'migration_data_done' => false,
),
$this->migrator->last_run_migration['state']
);
if (!empty($this->migrator->last_run_migration['effectively_installed']))
{
$msg = $this->user->lang('MIGRATION_EFFECTIVELY_INSTALLED', $this->migrator->last_run_migration['name']);
$output->writeln("<comment>$msg</comment>");
}
else if ($this->migrator->last_run_migration['task'] == 'process_data_step' && $state['migration_data_done'])
{
$msg = $this->user->lang('MIGRATION_DATA_DONE', $this->migrator->last_run_migration['name'], $migration_stop_time);
$output->writeln("<info>$msg</info>");
}
else if ($this->migrator->last_run_migration['task'] == 'process_data_step')
{
$output->writeln($this->user->lang('MIGRATION_DATA_IN_PROGRESS', $this->migrator->last_run_migration['name'], $migration_stop_time));
}
else if ($state['migration_schema_done'])
{
$msg = $this->user->lang('MIGRATION_SCHEMA_DONE', $this->migrator->last_run_migration['name'], $migration_stop_time);
$output->writeln("<info>$msg</info>");
}
}
if ($orig_version != $this->config['version'])

View File

@@ -73,6 +73,7 @@ class manager
*/
public function find_one_ready_task()
{
shuffle($this->tasks);
foreach ($this->tasks as $task)
{
if ($task->is_ready())

View File

@@ -73,6 +73,6 @@ class queue extends \phpbb\cron\task\base
*/
public function should_run()
{
return $this->config['last_queue_run'] < time() - $this->config['queue_interval_config'];
return $this->config['last_queue_run'] < time() - $this->config['queue_interval'];
}
}

View File

@@ -0,0 +1,48 @@
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/
namespace phpbb\db;
use phpbb\user;
class html_migrator_output_handler implements migrator_output_handler_interface
{
/**
* User object.
*
* @var user
*/
private $user;
/**
* Constructor
*
* @param user $user User object
*/
public function __construct(user $user)
{
$this->user = $user;
}
/**
* {@inheritdoc}
*/
public function write($message, $verbosity)
{
if ($verbosity <= migrator_output_handler_interface::VERBOSITY_VERBOSE)
{
$final_message = call_user_func_array(array($this->user, 'lang'), $message);
echo $final_message . "<br />\n";
}
}
}

View File

@@ -0,0 +1,95 @@
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/
namespace phpbb\db;
use phpbb\user;
class log_wrapper_migrator_output_handler implements migrator_output_handler_interface
{
/**
* User object.
*
* @var user
*/
protected $user;
/**
* A migrator output handler
*
* @var migrator_output_handler_interface
*/
protected $migrator;
/**
* Log file handle
* @var resource
*/
protected $file_handle = false;
/**
* Constructor
*
* @param user $user User object
* @param migrator_output_handler_interface $migrator Migrator output handler
* @param string $log_file File to log to
*/
public function __construct(user $user, migrator_output_handler_interface $migrator, $log_file)
{
$this->user = $user;
$this->migrator = $migrator;
$this->file_open($log_file);
}
/**
* Open file for logging
*
* @param string $file File to open
*/
protected function file_open($file)
{
if (phpbb_is_writable(dirname($file)))
{
$this->file_handle = fopen($file, 'w');
}
else
{
throw new \RuntimeException('Unable to write to migrator log file');
}
}
/**
* {@inheritdoc}
*/
public function write($message, $verbosity)
{
$this->migrator->write($message, $verbosity);
if ($this->file_handle !== false)
{
$translated_message = call_user_func_array(array($this->user, 'lang'), $message) . "\n";
if ($verbosity <= migrator_output_handler_interface::VERBOSITY_NORMAL)
{
$translated_message = '[INFO] ' . $translated_message;
}
else
{
$translated_message = '[DEBUG] ' . $translated_message;
}
fwrite($this->file_handle, $translated_message);
fflush($this->file_handle);
}
}
}

View File

@@ -31,7 +31,6 @@ class release_3_0_12_rc1 extends \phpbb\db\migration\migration
{
return array(
array('custom', array(array(&$this, 'update_module_auth'))),
array('custom', array(array(&$this, 'update_bots'))),
array('custom', array(array(&$this, 'disable_bots_from_receiving_pms'))),
array('config.update', array('version', '3.0.12-RC1')),
@@ -70,60 +69,4 @@ class release_3_0_12_rc1 extends \phpbb\db\migration\migration
AND module_mode = \'signature\'';
$this->sql_query($sql);
}
public function update_bots()
{
// Update bots
if (!function_exists('user_delete'))
{
include($this->phpbb_root_path . 'includes/functions_user.' . $this->php_ext);
}
$bots_updates = array(
// Bot Deletions
'NG-Search [Bot]' => false,
'Nutch/CVS [Bot]' => false,
'OmniExplorer [Bot]' => false,
'Seekport [Bot]' => false,
'Synoo [Bot]' => false,
'WiseNut [Bot]' => false,
// Bot Updates
// Bot name to bot user agent map
'Baidu [Spider]' => 'Baiduspider',
'Exabot [Bot]' => 'Exabot',
'Voyager [Bot]' => 'voyager/',
'W3C [Validator]' => 'W3C_Validator',
);
foreach ($bots_updates as $bot_name => $bot_agent)
{
$sql = 'SELECT user_id
FROM ' . USERS_TABLE . '
WHERE user_type = ' . USER_IGNORE . "
AND username_clean = '" . $this->db->sql_escape(utf8_clean_string($bot_name)) . "'";
$result = $this->db->sql_query($sql);
$bot_user_id = (int) $this->db->sql_fetchfield('user_id');
$this->db->sql_freeresult($result);
if ($bot_user_id)
{
if ($bot_agent === false)
{
$sql = 'DELETE FROM ' . BOTS_TABLE . "
WHERE user_id = $bot_user_id";
$this->sql_query($sql);
user_delete('retain', $bot_user_id);
}
else
{
$sql = 'UPDATE ' . BOTS_TABLE . "
SET bot_agent = '" . $this->db->sql_escape($bot_agent) . "'
WHERE user_id = $bot_user_id";
$this->sql_query($sql);
}
}
}
}
}

View File

@@ -55,6 +55,9 @@ class release_3_0_5_rc1 extends \phpbb\db\migration\migration
public function hash_old_passwords()
{
global $phpbb_container;
$passwords_manager = $phpbb_container->get('passwords.manager');
$sql = 'SELECT user_id, user_password
FROM ' . $this->table_prefix . 'users
WHERE user_pass_convert = 1';
@@ -65,7 +68,7 @@ class release_3_0_5_rc1 extends \phpbb\db\migration\migration
if (strlen($row['user_password']) == 32)
{
$sql_ary = array(
'user_password' => phpbb_hash($row['user_password']),
'user_password' => '$CP$' . $passwords_manager->hash($row['user_password'], 'passwords.driver.salted_md5'),
);
$this->sql_query('UPDATE ' . $this->table_prefix . 'users SET ' . $this->db->sql_build_array('UPDATE', $sql_ary) . ' WHERE user_id = ' . $row['user_id']);

View File

@@ -30,7 +30,6 @@ class release_3_0_8_rc1 extends \phpbb\db\migration\migration
return array(
array('custom', array(array(&$this, 'update_file_extension_group_names'))),
array('custom', array(array(&$this, 'update_module_auth'))),
array('custom', array(array(&$this, 'update_bots'))),
array('custom', array(array(&$this, 'delete_orphan_shadow_topics'))),
array('module.add', array(
'acp',
@@ -114,70 +113,6 @@ class release_3_0_8_rc1 extends \phpbb\db\migration\migration
$this->sql_query($sql);
}
public function update_bots()
{
$bot_name = 'Bing [Bot]';
$bot_name_clean = utf8_clean_string($bot_name);
$sql = 'SELECT user_id
FROM ' . USERS_TABLE . "
WHERE username_clean = '" . $this->db->sql_escape($bot_name_clean) . "'";
$result = $this->db->sql_query($sql);
$bing_already_added = (bool) $this->db->sql_fetchfield('user_id');
$this->db->sql_freeresult($result);
if (!$bing_already_added)
{
$bot_agent = 'bingbot/';
$bot_ip = '';
$sql = 'SELECT group_id, group_colour
FROM ' . GROUPS_TABLE . "
WHERE group_name = 'BOTS'";
$result = $this->db->sql_query($sql);
$group_row = $this->db->sql_fetchrow($result);
$this->db->sql_freeresult($result);
if (!$group_row)
{
// default fallback, should never get here
$group_row['group_id'] = 6;
$group_row['group_colour'] = '9E8DA7';
}
if (!function_exists('user_add'))
{
include($this->phpbb_root_path . 'includes/functions_user.' . $this->php_ext);
}
$user_row = array(
'user_type' => USER_IGNORE,
'group_id' => $group_row['group_id'],
'username' => $bot_name,
'user_regdate' => time(),
'user_password' => '',
'user_colour' => $group_row['group_colour'],
'user_email' => '',
'user_lang' => $this->config['default_lang'],
'user_style' => $this->config['default_style'],
'user_timezone' => 0,
'user_dateformat' => $this->config['default_dateformat'],
'user_allow_massemail' => 0,
);
$user_id = user_add($user_row);
$sql = 'INSERT INTO ' . BOTS_TABLE . ' ' . $this->db->sql_build_array('INSERT', array(
'bot_active' => 1,
'bot_name' => (string) $bot_name,
'user_id' => (int) $user_id,
'bot_agent' => (string) $bot_agent,
'bot_ip' => (string) $bot_ip,
));
$this->sql_query($sql);
}
}
public function delete_orphan_shadow_topics()
{
// Delete shadow topics pointing to not existing topics

View File

@@ -0,0 +1,150 @@
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/
namespace phpbb\db\migration\data\v310;
class bot_update extends \phpbb\db\migration\migration
{
static public function depends_on()
{
return array('\phpbb\db\migration\data\v310\rc6');
}
public function update_data()
{
return array(
array('custom', array(array(&$this, 'update_bing_bot'))),
array('custom', array(array(&$this, 'update_bots'))),
);
}
public function update_bing_bot()
{
$bot_name = 'Bing [Bot]';
$bot_name_clean = utf8_clean_string($bot_name);
$sql = 'SELECT user_id
FROM ' . USERS_TABLE . "
WHERE username_clean = '" . $this->db->sql_escape($bot_name_clean) . "'";
$result = $this->db->sql_query($sql);
$bing_already_added = (bool) $this->db->sql_fetchfield('user_id');
$this->db->sql_freeresult($result);
if (!$bing_already_added)
{
$bot_agent = 'bingbot/';
$bot_ip = '';
$sql = 'SELECT group_id, group_colour
FROM ' . GROUPS_TABLE . "
WHERE group_name = 'BOTS'";
$result = $this->db->sql_query($sql);
$group_row = $this->db->sql_fetchrow($result);
$this->db->sql_freeresult($result);
if (!$group_row)
{
// default fallback, should never get here
$group_row['group_id'] = 6;
$group_row['group_colour'] = '9E8DA7';
}
if (!function_exists('user_add'))
{
include($this->phpbb_root_path . 'includes/functions_user.' . $this->php_ext);
}
$user_row = array(
'user_type' => USER_IGNORE,
'group_id' => $group_row['group_id'],
'username' => $bot_name,
'user_regdate' => time(),
'user_password' => '',
'user_colour' => $group_row['group_colour'],
'user_email' => '',
'user_lang' => $this->config['default_lang'],
'user_style' => $this->config['default_style'],
'user_timezone' => 0,
'user_dateformat' => $this->config['default_dateformat'],
'user_allow_massemail' => 0,
);
$user_id = user_add($user_row);
$sql = 'INSERT INTO ' . BOTS_TABLE . ' ' . $this->db->sql_build_array('INSERT', array(
'bot_active' => 1,
'bot_name' => (string) $bot_name,
'user_id' => (int) $user_id,
'bot_agent' => (string) $bot_agent,
'bot_ip' => (string) $bot_ip,
));
$this->sql_query($sql);
}
}
public function update_bots()
{
// Update bots
if (!function_exists('user_delete'))
{
include($this->phpbb_root_path . 'includes/functions_user.' . $this->php_ext);
}
$bots_updates = array(
// Bot Deletions
'NG-Search [Bot]' => false,
'Nutch/CVS [Bot]' => false,
'OmniExplorer [Bot]' => false,
'Seekport [Bot]' => false,
'Synoo [Bot]' => false,
'WiseNut [Bot]' => false,
// Bot Updates
// Bot name to bot user agent map
'Baidu [Spider]' => 'Baiduspider',
'Exabot [Bot]' => 'Exabot',
'Voyager [Bot]' => 'voyager/',
'W3C [Validator]' => 'W3C_Validator',
);
foreach ($bots_updates as $bot_name => $bot_agent)
{
$sql = 'SELECT user_id
FROM ' . USERS_TABLE . '
WHERE user_type = ' . USER_IGNORE . "
AND username_clean = '" . $this->db->sql_escape(utf8_clean_string($bot_name)) . "'";
$result = $this->db->sql_query($sql);
$bot_user_id = (int) $this->db->sql_fetchfield('user_id');
$this->db->sql_freeresult($result);
if ($bot_user_id)
{
if ($bot_agent === false)
{
$sql = 'DELETE FROM ' . BOTS_TABLE . "
WHERE user_id = $bot_user_id";
$this->sql_query($sql);
user_delete('retain', $bot_user_id);
}
else
{
$sql = 'UPDATE ' . BOTS_TABLE . "
SET bot_agent = '" . $this->db->sql_escape($bot_agent) . "'
WHERE user_id = $bot_user_id";
$this->sql_query($sql);
}
}
}
}
}

View File

@@ -20,6 +20,11 @@ class contact_admin_form extends \phpbb\db\migration\migration
return isset($this->config['contact_admin_form_enable']);
}
static public function depends_on()
{
return array('\phpbb\db\migration\data\v310\config_db_text');
}
public function update_data()
{
return array(

View File

@@ -0,0 +1,32 @@
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/
namespace phpbb\db\migration\data\v310;
class gold extends \phpbb\db\migration\migration
{
static public function depends_on()
{
return array(
'\phpbb\db\migration\data\v310\rc6',
'\phpbb\db\migration\data\v310\bot_update',
);
}
public function update_data()
{
return array(
array('config.update', array('version', '3.1.0')),
);
}
}

View File

@@ -67,6 +67,13 @@ class migrator
*/
public $last_run_migration = false;
/**
* The output handler. A null handler is configured by default.
*
* @var migrator_output_handler
*/
public $output_handler;
/**
* Constructor of the database migrator
*/
@@ -84,6 +91,8 @@ class migrator
$this->table_prefix = $table_prefix;
$this->output_handler = new null_migrator_output_handler();
foreach ($tools as $tool)
{
$this->tools[$tool->get_name()] = $tool;
@@ -94,6 +103,16 @@ class migrator
$this->load_migration_state();
}
/**
* Set the output handler.
*
* @param migrator_output_handler $handler The output handler
*/
public function set_output_handler(migrator_output_handler_interface $handler)
{
$this->output_handler = $handler;
}
/**
* Loads all migrations and their application state from the database.
*
@@ -161,6 +180,10 @@ class migrator
return;
}
}
else
{
$this->output_handler->write(array('MIGRATION_EFFECTIVELY_INSTALLED', $name), migrator_output_handler_interface::VERBOSITY_DEBUG);
}
}
}
@@ -175,6 +198,7 @@ class migrator
{
if (!class_exists($name))
{
$this->output_handler->write(array('MIGRATION_NOT_VALID', $name), migrator_output_handler_interface::VERBOSITY_DEBUG);
return false;
}
@@ -191,6 +215,11 @@ class migrator
'migration_end_time' => 0,
);
if (!empty($state['migration_depends_on']))
{
$this->output_handler->write(array('MIGRATION_APPLY_DEPENDENCIES', $name), migrator_output_handler_interface::VERBOSITY_DEBUG);
}
foreach ($state['migration_depends_on'] as $depend)
{
if ($this->unfulfillable($depend) !== false)
@@ -227,6 +256,8 @@ class migrator
);
$this->last_run_migration['effectively_installed'] = true;
$this->output_handler->write(array('MIGRATION_EFFECTIVELY_INSTALLED', $name), migrator_output_handler_interface::VERBOSITY_VERBOSE);
}
else
{
@@ -238,23 +269,43 @@ class migrator
if (!$state['migration_schema_done'])
{
$this->output_handler->write(array('MIGRATION_SCHEMA_RUNNING', $name), migrator_output_handler_interface::VERBOSITY_VERBOSE);
$this->last_run_migration['task'] = 'process_schema_step';
$elapsed_time = microtime(true);
$steps = $this->helper->get_schema_steps($migration->update_schema());
$result = $this->process_data_step($steps, $state['migration_data_state']);
$elapsed_time = microtime(true) - $elapsed_time;
$state['migration_data_state'] = ($result === true) ? '' : $result;
$state['migration_schema_done'] = ($result === true);
$this->output_handler->write(array('MIGRATION_SCHEMA_DONE', $name, $elapsed_time), migrator_output_handler_interface::VERBOSITY_NORMAL);
}
else if (!$state['migration_data_done'])
{
try
{
$this->output_handler->write(array('MIGRATION_DATA_RUNNING', $name), migrator_output_handler_interface::VERBOSITY_VERBOSE);
$this->last_run_migration['task'] = 'process_data_step';
$elapsed_time = microtime(true);
$result = $this->process_data_step($migration->update_data(), $state['migration_data_state']);
$elapsed_time = microtime(true) - $elapsed_time;
$state['migration_data_state'] = ($result === true) ? '' : $result;
$state['migration_data_done'] = ($result === true);
$state['migration_end_time'] = ($result === true) ? time() : 0;
if ($state['migration_schema_done'])
{
$this->output_handler->write(array('MIGRATION_DATA_DONE', $name, $elapsed_time), migrator_output_handler_interface::VERBOSITY_NORMAL);
}
else
{
$this->output_handler->write(array('MIGRATION_DATA_IN_PROGRESS', $name, $elapsed_time), migrator_output_handler_interface::VERBOSITY_VERY_VERBOSE);
}
}
catch (\phpbb\db\migration\exception $e)
{

View File

@@ -0,0 +1,31 @@
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/
namespace phpbb\db;
interface migrator_output_handler_interface
{
const VERBOSITY_QUIET = 0;
const VERBOSITY_NORMAL = 1;
const VERBOSITY_VERBOSE = 2;
const VERBOSITY_VERY_VERBOSE = 3;
const VERBOSITY_DEBUG = 4;
/**
* Write output using the configured closure.
*
* @param string|array $message The message to write or an array containing the language key and all of its parameters.
* @param int $verbosity The verbosity of the message.
*/
public function write($message, $verbosity);
}

View File

@@ -0,0 +1,24 @@
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/
namespace phpbb\db;
class null_migrator_output_handler implements migrator_output_handler_interface
{
/**
* {@inheritdoc}
*/
public function write($message, $verbosity)
{
}
}

View File

@@ -131,7 +131,7 @@ class admin_activate_user extends \phpbb\notification\type\base
public function get_email_template_variables()
{
$board_url = generate_board_url();
$username = $this->user_loader->get_username($this->item_id, 'no_profile');
$username = $this->user_loader->get_username($this->item_id, 'username');
return array(
'USERNAME' => htmlspecialchars_decode($username),

View File

@@ -577,6 +577,43 @@ class session
}
}
$provider_collection = $phpbb_container->get('auth.provider_collection');
$provider = $provider_collection->get_provider();
$this->data = $provider->autologin();
if ($user_id !== false && sizeof($this->data) && $this->data['user_id'] != $user_id)
{
$this->data = array();
}
if (sizeof($this->data))
{
$this->cookie_data['k'] = '';
$this->cookie_data['u'] = $this->data['user_id'];
}
// If we're presented with an autologin key we'll join against it.
// Else if we've been passed a user_id we'll grab data based on that
if (isset($this->cookie_data['k']) && $this->cookie_data['k'] && $this->cookie_data['u'] && !sizeof($this->data))
{
$sql = 'SELECT u.*
FROM ' . USERS_TABLE . ' u, ' . SESSIONS_KEYS_TABLE . ' k
WHERE u.user_id = ' . (int) $this->cookie_data['u'] . '
AND u.user_type IN (' . USER_NORMAL . ', ' . USER_FOUNDER . ")
AND k.user_id = u.user_id
AND k.key_id = '" . $db->sql_escape(md5($this->cookie_data['k'])) . "'";
$result = $db->sql_query($sql);
$user_data = $db->sql_fetchrow($result);
if ($user_id === false || (isset($user_data['user_id']) && $user_id == $user_data['user_id']))
{
$this->data = $user_data;
$bot = false;
}
$db->sql_freeresult($result);
}
if ($user_id !== false && !sizeof($this->data))
{
$this->cookie_data['k'] = '';
@@ -591,34 +628,6 @@ class session
$db->sql_freeresult($result);
$bot = false;
}
else if (!$bot)
{
$provider_collection = $phpbb_container->get('auth.provider_collection');
$provider = $provider_collection->get_provider();
$this->data = $provider->autologin();
if (sizeof($this->data))
{
$this->cookie_data['k'] = '';
$this->cookie_data['u'] = $this->data['user_id'];
}
// If we're presented with an autologin key we'll join against it.
// Else if we've been passed a user_id we'll grab data based on that
if (isset($this->cookie_data['k']) && $this->cookie_data['k'] && $this->cookie_data['u'] && !sizeof($this->data))
{
$sql = 'SELECT u.*
FROM ' . USERS_TABLE . ' u, ' . SESSIONS_KEYS_TABLE . ' k
WHERE u.user_id = ' . (int) $this->cookie_data['u'] . '
AND u.user_type IN (' . USER_NORMAL . ', ' . USER_FOUNDER . ")
AND k.user_id = u.user_id
AND k.key_id = '" . $db->sql_escape(md5($this->cookie_data['k'])) . "'";
$result = $db->sql_query($sql);
$this->data = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
$bot = false;
}
}
// Bot user, if they have a SID in the Request URI we need to get rid of it
// otherwise they'll index this page with the SID, duplicate content oh my!

View File

@@ -239,7 +239,7 @@ class version_helper
*/
public function get_versions($force_update = false, $force_cache = false)
{
$cache_file = 'versioncheck_' . $this->host . $this->path . $this->file;
$cache_file = '_versioncheck_' . $this->host . $this->path . $this->file;
$info = $this->cache->get($cache_file);

View File

@@ -21,8 +21,8 @@
# General Information about this style
name = prosilver
copyright = © phpBB Limited, 2007
style_version = 3.1.0-RC6
phpbb_version = 3.1.0-RC6
style_version = 3.1.0
phpbb_version = 3.1.0
# Defining a different template bitfield
# template_bitfield = lNg=

View File

@@ -21,8 +21,8 @@
# General Information about this style
name = subsilver2
copyright = © 2005 phpBB Limited
style_version = 3.1.0-RC6
phpbb_version = 3.1.0-RC6
style_version = 3.1.0
phpbb_version = 3.1.0
# Defining a different template bitfield
# template_bitfield = lNg=

View File

@@ -106,4 +106,32 @@ class phpbb_functional_memberlist_test extends phpbb_functional_test_case
$this->assertContains('admin', $crawler->eq(0)->text());
$this->assertNotContains('admin', $crawler->eq(1)->text());
}
public function test_group_rank()
{
copy(__DIR__ . '/fixtures/files/valid.jpg', __DIR__ . '/../../phpBB/images/ranks/valid.jpg');
$this->login();
$this->admin_login();
$this->add_lang(array('acp/groups', 'acp/posting'));
// Set a group rank to the registered users
$crawler = self::request('GET', "adm/index.php?sid={$this->sid}&i=acp_groups&mode=manage&action=edit&g=2");
$form = $crawler->selectButton('Submit')->form();
$form['group_rank']->select('1');
$crawler = self::submit($form);
$this->assertContainsLang('GROUP_UPDATED', $crawler->filter('.successbox')->text());
// Set a rank image for site_admin
$crawler = self::request('GET', "adm/index.php?sid={$this->sid}&i=acp_ranks&mode=ranks&action=edit&id=1");
$form = $crawler->selectButton('Submit')->form();
$form['rank_image']->select('valid.jpg');
$crawler = self::submit($form);
$this->assertContainsLang('RANK_UPDATED', $crawler->filter('.successbox')->text());
$crawler = self::request('GET', 'memberlist.php?mode=group&g=2');
$this->assertContains('memberlist-test-user', $crawler->text());
unlink(__DIR__ . '/../../phpBB/images/ranks/valid.jpg');
}
}

View File

@@ -129,8 +129,8 @@ class phpbb_functional_prune_shadow_topic_test extends phpbb_functional_test_cas
$result = $this->db->sql_query($sql);
$crawler = self::request('GET', "viewforum.php?f={$this->data['forums']['Prune Shadow']}&sid={$this->sid}");
$cron_link = $crawler->filter('img')->last()->attr('src');
$crawler = self::request('GET', $cron_link . "&sid={$this->sid}", array(), false);
$this->assertNotEmpty($crawler->filter('img')->last()->attr('src'));
self::request('GET', "cron.php?cron_type=cron.task.core.prune_shadow_topics&f={$this->data['forums']['Prune Shadow']}&sid={$this->sid}", array(), false);
$this->assert_forum_details($this->data['forums']['Prune Shadow'], array(
'forum_posts_approved' => 0,

View File

@@ -45,12 +45,24 @@ class phpbb_functional_registration_test extends phpbb_functional_test_case
$form = $crawler->selectButton('Submit')->form(array(
'username' => 'user-reg-test',
'email' => 'user-reg-test@phpbb.com',
'new_password' => 'testtest',
'password_confirm' => 'testtest',
'new_password' => 'user-reg-testuser-reg-test',
'password_confirm' => 'user-reg-testuser-reg-test',
));
$form['tz']->select('Europe/Berlin');
$crawler = self::submit($form);
$this->assertContainsLang('ACCOUNT_ADDED', $crawler->filter('#message')->text());
}
/**
* @depends test_register_new_account
*/
public function test_default_subscription_options()
{
$this->login('user-reg-test');
$crawler = self::request('GET', 'ucp.php?i=ucp_notifications&mode=notification_options&sid=' . $this->sid);
$form_values = $crawler->selectButton('Submit')->form()->getValues();
$this->assertEquals(1, $form_values['notification.type.post_notification.method.email']);
$this->assertEquals(1, $form_values['notification.type.topic_notification.method.email']);
}
}

View File

@@ -556,12 +556,10 @@ class phpbb_functional_test_case extends phpbb_test_case
$cache = new phpbb_mock_null_cache;
$cache_driver = new \phpbb\cache\driver\null();
$phpbb_container = $this->getMock('Symfony\Component\DependencyInjection\ContainerInterface');
$phpbb_container
->expects($this->any())
->method('get')
->with('cache.driver')
->will($this->returnValue($cache_driver));
$phpbb_container = new phpbb_mock_container_builder();
$phpbb_container->set('cache.driver', $cache_driver);
$phpbb_notifications = new phpbb_mock_notification_manager();
$phpbb_container->set('notification_manager', $phpbb_notifications);
if (!function_exists('utf_clean_string'))
{