1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-09-20 21:11:35 +02:00

Compare commits

...

319 Commits

Author SHA1 Message Date
Andreas Fischer
11242dd07d [prep-release-3.0.14] Add security relevant changes to CHANGELOG.html. 2015-05-03 16:22:28 +02:00
Andreas Fischer
5382552fc8 [prep-release-3.0.14] Bump version numbers for 3.0.14 release. 2015-05-03 14:40:50 +02:00
Andreas Fischer
1a3350619f Merge remote-tracking branch 'phpbb-security/ticket/security-180' into prep-release-3.0.14
* phpbb-security/ticket/security-180:
  [ticket/security-180] Add tests for redirecting to main URL
  [ticket/security-180] Always fail when redirecting to an insecure URL
  [ticket/security-180] Make sure that redirect goes to full URL plus slash
  [ticket/security-180] Check if redirect URL contains board URL
2015-04-28 21:54:50 +02:00
Andreas Fischer
d833f29069 [3.0.x] Add changelog for 3.0.14 release. 2015-04-28 18:57:03 +02:00
Andreas Fischer
ce74a0bd6c [3.0.x] Bump version numbers for 3.0.14-RC1 release. 2015-04-27 23:22:44 +02:00
Andreas Fischer
cd6c0427fb [3.0.x] Bumping version numbers to final for 3.0.14 releases. 2015-04-27 23:13:56 +02:00
Andreas Fischer
4d63032024 Merge pull request #3549 from bantu/ticket/13765
[ticket/13765] Verify SERVER_PROTOCOL has the expected format before using it.

* bantu/ticket/13765:
  [ticket/13765] Verify SERVER_PROTOCOL has the expected format before using it.
2015-04-25 18:10:45 +02:00
Joas Schilling
463c62df18 [ticket/13765] Verify SERVER_PROTOCOL has the expected format before using it.
PHPBB3-13765
2015-04-25 17:22:10 +02:00
Marc Alexander
18fc621d73 [ticket/security-180] Add tests for redirecting to main URL
SECURITY-180
2015-04-23 15:27:30 +02:00
Joas Schilling
ee658bfe7b [ticket/security-180] Always fail when redirecting to an insecure URL
SECURITY-180
2015-04-11 17:08:28 +02:00
Marc Alexander
bca1b96b2e [ticket/security-180] Make sure that redirect goes to full URL plus slash
SECURITY-180
2015-04-11 16:41:20 +02:00
Marc Alexander
eed355b798 [ticket/security-180] Check if redirect URL contains board URL
SECURITY-180
2015-04-10 18:10:32 +02:00
Joas Schilling
35d2467c94 Merge pull request #3512 from bantu/ticket/13738
[ticket/13738] Use new branch names in sami-all.conf.php.
2015-04-03 18:41:41 +02:00
Andreas Fischer
d6d9ff51b2 [ticket/13738] Use new branch names in sami-all.conf.php.
PHPBB3-13738
2015-04-02 12:30:39 +02:00
Nicofuma
b9db47e3f5 Merge pull request #3359 from marc1706/ticket/13568
[ticket/13568] Validate imagick path as readable absolute path

closes #3359
2015-03-29 19:41:13 +02:00
Andreas Fischer
1efbb5b3bb Merge pull request #3493 from prototech/ticket/13555
[ticket/13555] Render poll options separately when previewing.

* prototech/ticket/13555:
  [ticket/13555] Render poll options separately when previewing.
2015-03-26 11:15:36 +01:00
Oliver Schramm
84d77d6cd5 Merge pull request #3505 from Nicofuma/ticket/13723
[ticket/13723] Add Elsensee to authors list
2015-03-25 21:44:09 +01:00
Nicofuma
44540b6112 [ticket/13723] Add Elsensee to authors list
PHPBB3-13723
2015-03-25 21:31:50 +01:00
JoshyPHP
1df97c205d [ticket/13555] Render poll options separately when previewing.
This prevents an option from being split into two when a line break is present
inside of it.

PHPBB3-13555
2015-03-19 15:32:31 -07:00
Joas Schilling
62973faf4b Merge pull request #3443 from naderman/ticket/13617
[ticket/13617] Enforce column size limit for session_forum_id
2015-02-27 22:43:32 +01:00
Nils Adermann
6f3f6282d1 [ticket/13617] Enforce column size limit for session_forum_id
PHPBB3-13617
2015-02-25 16:20:50 +01:00
Andreas Fischer
3db7ac0aad Merge pull request #3422 from VSEphpbb/ticket/13634-3.0.x
[ticket/13634] Update branch names on README

* VSEphpbb/ticket/13634-3.0.x:
  [ticket/13634] Update links to travis build icons
  [ticket/13634] Update branch names on README
2015-02-19 19:27:14 +01:00
Matt Friedman
bbf4bcc986 [ticket/13634] Update links to travis build icons
PHPBB3-13634
2015-02-18 08:42:14 -08:00
Matt Friedman
03f9c69e60 [ticket/13634] Update branch names on README
PHPBB3-13634
2015-02-18 08:37:36 -08:00
Marc Alexander
877774a296 Merge pull request #3393 from bantu/ticket/13599
[ticket/13599] Remove Travis CI PHP 5.2 environment. No longer supported.
2015-02-13 12:02:25 +01:00
Andreas Fischer
0a775e0433 [ticket/13599] Remove Travis CI PHP 5.2 environment. No longer supported.
PHPBB3-13599
2015-02-12 22:12:32 +01:00
Marc Alexander
7c5d872344 [ticket/13568] Also check if absolute_path_writable is writable
PHPBB3-13568
2015-02-06 10:15:36 +01:00
Andreas Fischer
2787e799e1 Merge pull request #3365 from marc1706/ticket/13348-olympus
[ticket/13348] Use close method to free query result handle

* marc1706/ticket/13348-olympus:
  [ticket/13348] Remove unnecessary global $cache
  [ticket/13348] Use close method to free query result handle
2015-02-03 20:36:27 +01:00
Marc Alexander
4e06ab16f0 [ticket/13348] Remove unnecessary global $cache
$cache is not used in the method get_item().

PHPBB3-13348
2015-02-03 18:24:16 +01:00
Marc Alexander
1f2cb69c8a [ticket/13348] Use close method to free query result handle
PHPBB3-13348
2015-02-03 18:23:13 +01:00
Marc Alexander
a3be531020 [ticket/13568] Use correct data provider on windows
PHPBB3-13568
2015-02-03 16:34:41 +01:00
Andreas Fischer
e86b7ce562 Merge pull request #3363 from Nicofuma/ticket/13572
[ticket/13572] Update composer to version 1.0.0-alpha9

* Nicofuma/ticket/13572:
  [ticket/13572] Update composer to version 1.0.0-alpha9
2015-02-03 10:30:02 +01:00
Nicofuma
f4f983c0f6 [ticket/13572] Update composer to version 1.0.0-alpha9
PHPBB3-13572
2015-02-03 10:25:39 +01:00
Marc Alexander
ffe0e46e82 [ticket/13568] Add imagick tests for windows
PHPBB3-13568
2015-02-02 20:39:58 +01:00
Marc Alexander
d50cec998c [ticket/13568] Correctly check rpath and rwpath validation options
PHPBB3-13568
2015-02-02 18:44:48 +01:00
Marc Alexander
b53fd867be [ticket/13568] Add more test cases for imagick path
PHPBB3-13568
2015-02-02 18:33:53 +01:00
Marc Alexander
a93df0e511 [ticket/13568] Use more descriptive validation names and merge with path block
PHPBB3-13568
2015-02-02 18:30:05 +01:00
Marc Alexander
99574cf5e5 [ticket/13568] Add functional test for imagick path setting
PHPBB3-13568
2015-02-02 16:11:00 +01:00
Marc Alexander
19421fcdef [ticket/13568] Validate imagick path as readable absolute path
PHPBB3-13568
2015-02-02 15:59:52 +01:00
Andreas Fischer
7273591560 Merge branch 'prep-release-3.0.13' into develop-olympus
* prep-release-3.0.13:
  [prep-release-3.0.13] Correct changelog link to 3.0.13 changes.
  [prep-release-3.0.13] Also update version in references to files.
  [prep-release-3.0.13] Add changelog for 3.0.13-PL1 release.
  [prep-release-3.0.13] Get rid of roman numbers in CHANGELOG.html.
  [prep-release-3.0.13] Bump version numbers for 3.0.13-PL1 release.

Conflicts:
	build/build.xml
	phpBB/includes/constants.php
	phpBB/install/database_update.php
	phpBB/install/schemas/schema_data.sql
2015-01-30 13:40:44 +01:00
Andreas Fischer
5f237a0426 [prep-release-3.0.13] Correct changelog link to 3.0.13 changes. 2015-01-30 01:32:34 +01:00
Andreas Fischer
1e94b0ae71 [prep-release-3.0.13] Also update version in references to files. 2015-01-29 23:32:05 +01:00
Andreas Fischer
5fea945b5b [prep-release-3.0.13] Add changelog for 3.0.13-PL1 release. 2015-01-29 23:27:12 +01:00
Andreas Fischer
208923563e [prep-release-3.0.13] Get rid of roman numbers in CHANGELOG.html. 2015-01-29 23:16:34 +01:00
Andreas Fischer
40e676ad03 [prep-release-3.0.13] Bump version numbers for 3.0.13-PL1 release. 2015-01-29 18:17:29 +01:00
Dhruv
cc210b1842 Merge remote-tracking branch 'upstream/prep-release-3.0.13' into develop-olympus 2015-01-29 11:51:33 +05:30
Dhruv Goel
36f8fb2b37 Merge pull request #3347 from bantu/ticket/13554
[ticket/13554] Show feature release upgrades in blue rather than red.
2015-01-29 11:47:37 +05:30
Andreas Fischer
6f5524de26 Merge branch 'prep-release-3.0.13' into develop-olympus
* prep-release-3.0.13:
  [ticket/13549] Do not exit when ORIG_PATH_INFO just contains SCRIPT_NAME.
2015-01-29 00:08:23 +01:00
Andreas Fischer
872caf805c Merge pull request #3348 from bantu/ticket/13549
[ticket/13549] Do not exit when ORIG_PATH_INFO just contains SCRIPT_NAME...

* bantu/ticket/13549:
  [ticket/13549] Do not exit when ORIG_PATH_INFO just contains SCRIPT_NAME.
2015-01-29 00:06:00 +01:00
Andreas Fischer
f48cc8bbe9 Merge branch 'prep-release-3.0.13' into develop-olympus
* prep-release-3.0.13:
  [ticket/12933] Handle case when * is last character of word
2015-01-29 00:03:16 +01:00
Andreas Fischer
8da3a6f117 Merge pull request #3349 from bantu/ticket/12933
[ticket/12933] Handle case when * is last character of word

* bantu/ticket/12933:
  [ticket/12933] Handle case when * is last character of word
2015-01-29 00:03:05 +01:00
Marc Alexander
7495055907 [ticket/13549] Do not exit when ORIG_PATH_INFO just contains SCRIPT_NAME.
The ORIG_PATH_INFO on IIS also contains the script name. Only use that
for killing the script after removing the script name from ORIG_PATH_INFO.

PHPBB3-13549
2015-01-28 22:07:16 +01:00
Dhruv
5eb0d422c8 [ticket/12933] Handle case when * is last character of word
PHPBB3-12933
2015-01-28 21:59:58 +01:00
Andreas Fischer
dff1ea6b85 [ticket/13554] Show feature release upgrades in blue rather than red.
PHPBB3-13554
2015-01-28 21:59:03 +01:00
Andreas Fischer
9d72463824 Merge pull request #3343 from marc1706/ticket/13414
[ticket/13414] Set Content-Length header only if status is not 304

* marc1706/ticket/13414:
  [ticket/13414] Set Content-Length header only if status is not 304
2015-01-28 19:48:42 +01:00
Marc Alexander
a9fa20bb91 [ticket/13414] Set Content-Length header only if status is not 304
PHPBB3-13414
2015-01-28 15:50:48 +01:00
Nils Adermann
ebd5aace3f Merge branch 'prep-release-3.0.13' into develop-olympus
* prep-release-3.0.13:
  [prep-release-3.0.13] Bump version numbers for 3.0.13 release
  [prep-release-3.0.13] Highlight security relevant changes

Conflicts:
	build/build.xml
	phpBB/includes/constants.php
	phpBB/install/database_update.php
	phpBB/install/schemas/schema_data.sql
2015-01-26 18:57:06 +01:00
Nils Adermann
5ce89ae82f [prep-release-3.0.13] Bump version numbers for 3.0.13 release 2015-01-26 18:08:31 +01:00
Nils Adermann
4b42589cfa [prep-release-3.0.13] Highlight security relevant changes 2015-01-26 17:53:43 +01:00
Andreas Fischer
4c11ea97d5 Merge pull request #3339 from nickvergessen/ticket/12089
[ticket/12089] Add assert message on HTTP status code check

* nickvergessen/ticket/12089:
  [ticket/12089] Add assert message on HTTP status code check
2015-01-26 02:47:36 +01:00
Joas Schilling
ed2d080551 [ticket/12089] Add assert message on HTTP status code check
PHPBB3-12089
2015-01-25 23:06:56 +01:00
Andreas Fischer
14585fcb4f [develop-olympus] Increment version number to 3.0.14-dev. 2015-01-21 15:15:30 +01:00
Andreas Fischer
2c9e178a42 [develop-olympus] Add changelog for 3.0.13 release. 2015-01-21 01:45:23 +01:00
Andreas Fischer
9f7f366573 [develop-olympus] Bump version numbers for 3.0.13-RC1 release. 2015-01-21 01:32:18 +01:00
Andreas Fischer
c09023d1db [develop-olympus] Bumping version numbers to final for 3.0.13 releases. 2015-01-21 01:25:50 +01:00
Nils Adermann
eaeb88133f Merge pull request #3316 from bantu/ticket/13531
[ticket/13531] Explicitly disallow trailing paths (e.g. PATH_INFO).
2015-01-21 01:05:13 +01:00
Andreas Fischer
e34b92882a [ticket/13531] Send 404 Not Found.
PHPBB3-13531
2015-01-21 01:02:16 +01:00
Marc Alexander
4b9434bf1b [ticket/13531] Explicitly disallow trailing paths (e.g. PATH_INFO).
PHPBB3-13531
2015-01-21 01:02:08 +01:00
Andreas Fischer
d17904884e Merge pull request #3312 from bantu/ticket/13527
[ticket/13527] Escape information received from version server

* bantu/ticket/13527:
  [ticket/13527] Apply htmlspecialchars() to data from version server.
  [ticket/13527] Remove two unused variables.
2015-01-20 23:14:38 +01:00
Andreas Fischer
a8027c542f Merge pull request #3311 from bantu/ticket/13526
[ticket/13526] Correctly validate the ucp_pm_options form key.

* bantu/ticket/13526:
  [ticket/13526] Correctly validate the ucp_pm_options form key.
2015-01-20 23:12:00 +01:00
Andreas Fischer
3134b6b70e Merge pull request #3306 from marc1706/ticket/13519
[ticket/13519] Correctly validate imagick path as path and not string

* marc1706/ticket/13519:
  [ticket/13519] Correctly validate imagick path as path and not string
2015-01-20 23:10:19 +01:00
Andreas Fischer
92b5222295 [ticket/13527] Apply htmlspecialchars() to data from version server.
PHPBB3-13527
2015-01-20 22:40:39 +01:00
Andreas Fischer
251868dd7e [ticket/13527] Remove two unused variables.
PHPBB3-13527
2015-01-20 22:34:14 +01:00
Joas Schilling
23069a13e2 [ticket/13526] Correctly validate the ucp_pm_options form key.
PHPBB3-13526
2015-01-20 22:16:24 +01:00
Joas Schilling
03e3ee7f16 Merge pull request #3310 from bantu/ticket/13523
[ticket/13523] Install PHPUnit manually instead of from PEAR.
2015-01-20 20:47:36 +01:00
Andreas Fischer
0beb9128f9 [ticket/13523] Install PHPUnit manually instead of from PEAR.
The pear.phpunit.de channel has been shut down in 2014.

PHPBB3-13523
2015-01-20 20:31:08 +01:00
Nils Adermann
ebbe6a7791 Merge pull request #2990 from Senky/ticket/10985
[ticket/10985] Error bbcode.html not found when updating with custom style inheriting from prosilver
2015-01-19 22:27:14 +01:00
Marc Alexander
6564446b0f [ticket/13519] Correctly validate imagick path as path and not string
PHPBB3-13519
2015-01-19 20:47:47 +01:00
Tristan Darricau
b54dbe0df6 Merge pull request #3188 from marc1706/ticket/11613
[ticket/11613] Allow cookies for domains without dots

* marc1706/ticket/11613:
  [ticket/11613] Allow cookies to work on netbios domains
2014-11-27 10:38:45 +01:00
Jakub Senko
b67b67f2df [ticket/11613] Allow cookies to work on netbios domains
PHPBB3-11613
2014-11-26 14:58:33 +01:00
Joas Schilling
ff9b541070 Merge pull request #3180 from naderman/ticket/13376
[ticket/13376] Revert unnecessary change for cookies called GLOBALS 92f554e3
2014-11-25 16:36:18 +01:00
Nils Adermann
965042d015 [ticket/13376] Revert unnecessary change for cookies called GLOBALS 92f554e3
Also introduce a clear cookie message hardcoded just in case.

PHPBB3-13376
2014-11-25 15:57:12 +01:00
Joas Schilling
a415b8e37b Merge pull request #3164 from Crizz0/ticket/10442
[ticket/10442] Adds <dd>&nbsp;</dd> to <dl> for xhtml correctness
2014-11-22 11:31:31 +01:00
Crizzo
867bfa3f9e [ticket/10442] Adds <dd>&nbsp;</dd> to <dl> for xhtml correctness
PHPBB3-10442
2014-11-22 01:08:14 +01:00
Joas Schilling
d4fd5e3365 Merge pull request #3146 from bantu/ticket/13341
[ticket/13341] Change coverage to whitelist to prevent errors with temp ...
2014-11-17 22:47:17 +01:00
Andreas Fischer
c40d7f0896 [ticket/13341] Change coverage to whitelist to prevent errors with temp files.
b4f95deefc suggests that this can lead to issues
with classes having the same name. However, this does not seem to be a problem
with the current version of PHPUnit we are using.

Despite https://phpunit.de/manual/4.1/en/code-coverage-analysis.html saying
that addUncoveredFilesFromWhitelist="true" is optional, this seems to be on by
default in PHPUnit 4.1.0. As a result, all files are considered for code
coverage; which is what we want.

processUncoveredFilesFromWhitelist is however false (by default) and as such
even files that are considered for code coverage are not processed through PHP
when not used in actual tests. Since it is already impossible to test multiple
classes with the same name in the same test run (without process isolation),
because that would already lead to "cannot redeclare class" errors, it is also
impossible for "cannot redeclare class" errors to happen in test coverage.

PHPBB3-13341
2014-11-14 13:44:42 +01:00
Joas Schilling
b99fbd0be0 Merge pull request #3142 from bantu/ticket/13331
[ticket/13331] Use docs target for this branch, add docs-all for all branches
2014-11-12 22:55:30 +01:00
Andreas Fischer
b55d744e77 [ticket/13331] Use docs target for this branch, add docs-all for dev branches.
PHPBB3-13331
2014-11-12 21:40:26 +01:00
Tristan Darricau
6949f64d28 Merge pull request #3133 from bantu/ticket/13324
[ticket/13324] Update sami/sami and fabpot/goutte for new zipball location

* bantu/ticket/13324:
  [ticket/13324] Update sami/sami and fabpot/goutte for new zipball location.
2014-11-11 15:27:53 +01:00
Andreas Fischer
9bd24e2efb [ticket/13324] Update sami/sami and fabpot/goutte for new zipball location.
PHPBB3-13324
2014-11-11 12:23:02 +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
fcc320e385 [ticket/13234] Fix conditions and CS
PHPBB3-13234
2014-10-28 12:19:53 +01: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
Marc Alexander
d51c1707e3 Merge pull request #3051 from nickvergessen/ticket/12120
[ticket/12120] Remove EXreaction from active authors
2014-10-21 19:22:11 -05:00
Joas Schilling
9cf81ac7f5 [ticket/12120] Remove EXreaction from active authors
PHPBB3-12120
2014-10-21 18:17:59 +02:00
Andreas Fischer
b71cf56bda Merge pull request #3047 from Elsensee/ticket/13168
[ticket/13168] Fix mbstring warnings in ACP for PHP 5.6 compatibility

* Elsensee/ticket/13168:
  [ticket/13168] Fix mbstring warnings in ACP for PHP 5.6 compatibility
2014-10-20 23:20:42 +02:00
Nils Adermann
d4faeb064b Merge pull request #3039 from nickvergessen/ticket/13138
[ticket/13138] Only use cookie data when we do not force a user_id
2014-10-20 14:49:29 -04:00
Oliver Schramm
53f166274a [ticket/13168] Fix mbstring warnings in ACP for PHP 5.6 compatibility
PHPBB3-13168
2014-10-20 16:47:52 +02:00
Joas Schilling
e7e016637b [ticket/13138] Do not use cookie data and autologin while forcing a user_id
PHPBB3-13138
2014-10-16 12:32:48 +02:00
Joas Schilling
a12a7d0b90 Merge pull request #2460 from Nicofuma/ticket/11224
[ticket/11224] SQL cache destroy does not destroy queries to tables joined
2014-10-06 23:20:50 +02:00
Andreas Fischer
ce0c33f62a Merge pull request #2994 from Skouat/ticket/13086-olympus
[ticket/13086] Update ACP_MASS_EMAIL_EXPLAIN language key

* Skouat/ticket/13086-olympus:
  [ticket/13086] String replaces 50 with 20
2014-09-24 21:21:53 +02:00
Mario Skouat
077db77259 [ticket/13086] String replaces 50 with 20
PHPBB3-13086
2014-09-24 19:03:33 +02:00
Tristan Darricau
74a96bf7c2 [ticket/11224] Adds a test case
PHPBB3-11224
2014-09-24 16:16:47 +02:00
Jakub Senko
ca7f4fb531 [ticket/10985] Add fix to properly inherit style during update process
PHPBB3-10985
2014-09-23 23:03:07 +02:00
Andreas Fischer
2f773fca18 Merge pull request #2989 from Senky/ticket/13096
[ticket/13096] ldap_escape() added to PHP 5.6.0

* Senky/ticket/13096:
  [ticket/13096] Add phpbb_ prefix to ldap_escape()
2014-09-23 22:54:27 +02:00
Jakub Senko
ba464ec93a [ticket/13096] Add phpbb_ prefix to ldap_escape()
PHPBB3-13096
2014-09-23 22:43:52 +02:00
Marc Alexander
8bd1853b56 Merge pull request #2981 from nickvergessen/ticket/10729
Ticket/10729 Update editor information when user being deleted
2014-09-23 11:08:56 +02:00
Joas Schilling
bea5f94de6 [ticket/10729] Use mocked null cache for phpunit 3.6 on travis with php 5.2
PHPBB3-10729
2014-09-23 09:03:44 +02:00
Joas Schilling
e28b93e0cc [ticket/10729] Ensure that no bans exist before testing create_session
PHPBB3-10729
2014-09-22 23:56:31 +02:00
Joas Schilling
7fca351e05 [ticket/10729] Add assert messages and finish up tests
PHPBB3-10729
2014-09-22 02:01:54 +02:00
Joas Schilling
d7c12ccd60 [ticket/10729] Add tests for some special tables with unique conditions
PHPBB3-10729
2014-09-22 01:42:36 +02:00
Joas Schilling
74854ac65d [ticket/10729] Add tests for user posts, reports and attachments
PHPBB3-10729
2014-09-22 00:55:34 +02:00
Joas Schilling
d48e4b680e [ticket/10729] Fix doc block for user_delete
PHPBB3-10729
2014-09-22 00:55:08 +02:00
Andreas Fischer
f01b602e9f Merge pull request #2808 from nickvergessen/ticket/12917
[ticket/12917] Check commit message and image ICC profile on 5.3.3

* nickvergessen/ticket/12917:
  [ticket/12917] Check commit message and image ICC profile on 5.3.3
2014-08-07 14:30:41 +02:00
Joas Schilling
b700e871cf [ticket/12917] Check commit message and image ICC profile on 5.3.3
PHPBB3-12917
2014-08-07 13:40:31 +02:00
Joas Schilling
122898d221 Merge pull request #2350 from Nicofuma/ticket/11480
[ticket/11480] PM : "Unknown folder" returned when inbox folder is full

* Nicofuma/ticket/11480:
  [ticket/11480] Move the test into get_folder()
  [ticket/11480] Fix the double spaces in phpbb_functional_test_case
  [ticket/11480] Fix typos
  [ticket/11480] Add functionnal test
  [ticket/11480] PM : "Unknown folder" returned when inbox folder is full
2014-08-01 22:17:17 +02:00
Tristan Darricau
8bdfda723c [ticket/11480] Move the test into get_folder()
PHPBB3-11480
2014-07-30 15:28:02 +02:00
Joas Schilling
9a3af2a052 Merge pull request #2425 from Zoddo/ticket/12492
[ticket/12492] Add support of special chars

* Zoddo/ticket/12492:
  [ticket/12492] Add support of special chars
2014-07-30 15:00:32 +02:00
Oliver Schramm
da6b378e64 [ticket/10729] Update message_edit_user when user being deleted
PHPBB3-10729
2014-07-18 00:11:51 +02:00
Oliver Schramm
53f597b6d0 [ticket/10729] Update post_edit_user when user being deleted
PHPBB3-10729
2014-07-17 16:28:32 +02:00
Andreas Fischer
a58cc394bc Merge pull request #2716 from marc1706/ticket/12120
[ticket/12120] Remove imkingdavid from active authors

* marc1706/ticket/12120:
  [ticket/12120] Remove imkingdavid from active authors
2014-07-11 12:00:02 +02:00
Tristan Darricau
3a11fec5de Merge pull request #2722 from marc1706/ticket/12695
[ticket/12695] Add viewtopic language file for parse_attachments in mcp_...

* marc1706/ticket/12695:
  [ticket/12695] Add viewtopic language file for parse_attachments in mcp_post
2014-07-10 15:25:00 +02:00
Marc Alexander
83f4bd9ee7 [ticket/12695] Add viewtopic language file for parse_attachments in mcp_post
PHPBB3-12695
2014-07-10 14:39:53 +02:00
Marc Alexander
e68094679e [ticket/12120] Remove imkingdavid from active authors
PHPBB3-12120
2014-07-08 21:20:51 +02:00
Tristan Darricau
a6d66b2ab0 Merge pull request #2685 from nickvergessen/ticket/12120
[ticket/12120] Add nicofuma to the developers

* nickvergessen/ticket/12120:
  [ticket/12120] Add nicofuma to the developers
2014-07-02 22:43:12 +02:00
Joas Schilling
eff07032c0 [ticket/12120] Add nicofuma to the developers
PHPBB3-12120
2014-07-02 22:26:32 +02:00
Tristan Darricau
0ce27eacb1 [ticket/11480] Fix the double spaces in phpbb_functional_test_case
PHPBB3-11480
2014-06-30 00:33:33 +02:00
Andreas Fischer
66efb1889d Merge pull request #2662 from dhruvgoel92/ticket/12196
[ticket/12196] Revert Fix typo "referer" in acp/attachments

* dhruvgoel92/ticket/12196:
  [ticket/12196] Revert Fix typo "referer" in acp/attachments
2014-06-26 23:33:46 +02:00
Dhruv
a730c0291f [ticket/12196] Revert Fix typo "referer" in acp/attachments
This reverts commit 9bc1f7924d.
https://tracker.phpbb.com/browse/PHPBB3-12196

PHPBB3-12196
2014-06-27 00:07:15 +05:30
Dhruv
fbbf210747 Merge remote-tracking branch 'nickvergessen/ticket/12196' into develop-olympus
# By Joas Schilling
# Via Joas Schilling
* nickvergessen/ticket/12196:
  [ticket/12196] Fix typo "referer" in acp/attachments
2014-06-26 23:23:33 +05:30
Joas Schilling
9bc1f7924d [ticket/12196] Fix typo "referer" in acp/attachments
PHPBB3-12196
2014-06-25 23:17:02 +02:00
Andreas Fischer
2596dbc850 Merge pull request #2633 from marc1706/ticket/12755
[ticket/12755] Add timeout to remote upload to prevent infinite loop

* marc1706/ticket/12755:
  [ticket/12755] Apply de morgan to conditional
  [ticket/12755] Terminate upload loop if upload reaches filesize
  [ticket/12755] Change upload in remote_upload() method to fit get_remote_file
  [ticket/12755] Add language string for timed out remote upload
  [ticket/12755] Add timeout to remote upload to prevent infinite loop
2014-06-24 20:59:10 +02:00
Marc Alexander
8b3cc9a6c4 [ticket/12755] Apply de morgan to conditional
PHPBB3-12755
2014-06-24 19:53:52 +02:00
Marc Alexander
309dbb4ef9 [ticket/12755] Terminate upload loop if upload reaches filesize
Terminate the upload loop if the expected filesize has been reached instead
of trying to read more bytes until the timeout has been reached.

PHPBB3-12755
2014-06-24 19:07:49 +02:00
Marc Alexander
5ee1e07e17 [ticket/12755] Change upload in remote_upload() method to fit get_remote_file
PHPBB3-12755
2014-06-24 11:53:32 +02:00
Marc Alexander
8817b59377 [ticket/12755] Add language string for timed out remote upload
PHPBB3-12755
2014-06-23 20:35:36 +02:00
Marc Alexander
0499655ba4 [ticket/12755] Add timeout to remote upload to prevent infinite loop
PHPBB3-12755
2014-06-21 11:55:54 +02:00
Andreas Fischer
51b2cc14f8 Merge pull request #2622 from Nicofuma/ticket/12741
[ticket/12741] Functional tests on Travis fail since php update last night

* Nicofuma/ticket/12741:
  [ticket/12741] Change the mode of the socket file
2014-06-19 19:32:21 +02:00
Tristan Darricau
f62ec14926 [ticket/12741] Change the mode of the socket file
Since php 5.4.29, by default, php-fpm creates the socket with the 0600 mode
instead of 0666.

PHPBB3-12741
2014-06-19 18:44:44 +02:00
Andreas Fischer
d2aee6d2ea Merge pull request #2608 from dhruvgoel92/ticket/12720
[ticket/12720] Allow commit heading to begin with lowercase letters

* dhruvgoel92/ticket/12720:
  [ticket/12720] Allow commit heading to begin with lowercase letters
2014-06-16 15:28:25 +02:00
Dhruv
6db849cba5 [ticket/12720] Allow commit heading to begin with lowercase letters
PHPBB3-12720
2014-06-16 18:55:19 +05:30
Dhruv Goel
233cdbfd66 Merge pull request #2548 from bantu/ticket/12660
[ticket/12660] Improve check for when phpinfo() is disabled.
2014-06-09 13:22:15 +05:30
Andreas Fischer
a0c442d16e [ticket/12660] Improve check for when phpinfo() is disabled.
PHPBB3-12660
2014-06-09 03:28:57 +02:00
Tristan Darricau
5762af6180 [ticket/11480] Fix typos
PHPBB3-11480
2014-05-29 22:45:34 +02:00
Tristan Darricau
9c8e843def [ticket/11480] Add functionnal test
PHPBB3-11480
2014-05-29 14:56:45 +02:00
Joas Schilling
a396b647f3 Merge pull request #2282 from bantu/ticket/12384
[ticket/12384] Run Travis CI HHVM tests against MySQLi instead of MySQL.

* bantu/ticket/12384:
  [ticket/12384] Run Travis CI HHVM tests against MySQLi instead of MySQL.
2014-05-28 23:30:03 +02:00
Joas Schilling
f09799322e Merge pull request #2498 from bantu/ticket/12582
[ticket/12582] Strip away copyrighted ICC profile from images

* bantu/ticket/12582:
  [ticket/12582] Fix coding style.
  [ticket/12582] Remove set -e due to exiftool not liking 0 byte files.
  [ticket/12582] Strip away copyrighted ICC profile
  [ticket/12582] Change strip_icc_profiles.sh to only take a single file.
  [ticket/12582] Run strip_icc_profiles.sh on Travis CI.
  [ticket/12582] Overwrite inplace instead of creating _original files.
  [ticket/12582] Add script for strippping ICC profiles from images.
2014-05-28 21:49:54 +02:00
Andreas Fischer
de71837b71 [ticket/12582] Fix coding style.
PHPBB3-12582
2014-05-27 20:56:29 +02:00
Andreas Fischer
d7c143da24 [ticket/12582] Remove set -e due to exiftool not liking 0 byte files.
PHPBB3-12582
2014-05-27 20:51:48 +02:00
David Prévot
b485318ba9 [ticket/12582] Strip away copyrighted ICC profile
This images embed a non free ICC profile that doesn’t allow
modification:

http://web.archive.org/web/20020603153925/srgb.com/usingsrgb.html

Please use the proposed version stripping away this copyrighted binary
profile, probably embedded by an image software at one time:

	exiftool -icc_profile"-<=" phpBB/adm/images/phpbb_logo.png

I’ve checked the resulting image and trust it is identical to the
original.

Some more background on the issue:
https://lists.debian.org/debian-devel/2014/05/msg00339.html

PHPBB3-12582
2014-05-27 18:35:44 +02:00
Andreas Fischer
c02fba3f1c [ticket/12582] Change strip_icc_profiles.sh to only take a single file.
PHPBB3-12582
2014-05-27 17:23:54 +02:00
Andreas Fischer
4f9aa5e384 [ticket/12582] Run strip_icc_profiles.sh on Travis CI.
PHPBB3-12582
2014-05-27 17:23:54 +02:00
Andreas Fischer
ac3bc45874 [ticket/12582] Overwrite inplace instead of creating _original files.
PHPBB3-12582
2014-05-27 17:23:54 +02:00
Andreas Fischer
af05015a69 [ticket/12582] Add script for strippping ICC profiles from images.
PHPBB3-12582
2014-05-27 13:13:29 +02:00
Skouat
a0a5c852d5 [ticket/12492] Add support of special chars
Add support of special chars during db test in the installation

PHPBB3-12492
2014-05-24 14:33:02 +02:00
Joas Schilling
ac3e0e53b2 Merge pull request #2470 from bantu/task/sami
[task/sami] Add Sami to composer dependencies and build script

* bantu/task/sami:
  [task/sami] Establish alphabetical order.
  [task/sami] Also ignore ext/ directory.
  [task/sami] Replace phpdoctor with sami.
  [task/sami] Add sami/sami as a composer development dependency.
2014-05-18 18:56:52 +02:00
Andreas Fischer
223058c8c6 [task/sami] Establish alphabetical order.
PHPBB3-12495
2014-05-17 13:05:52 +02:00
Andreas Fischer
6a97d9f855 [task/sami] Also ignore ext/ directory.
PHPBB3-12495
2014-05-17 13:04:25 +02:00
Andreas Fischer
f08f283143 [task/sami] Replace phpdoctor with sami.
PHPBB3-12495
2014-05-16 17:56:03 +02:00
Andreas Fischer
b32f91b9c6 [task/sami] Add sami/sami as a composer development dependency.
PHPBB3-12495
2014-05-16 17:55:41 +02:00
Andreas Fischer
f2500da8ec Merge pull request #2454 from nickvergessen/ticket/12540
[ticket/12540] Fix broken placeholders in language files

* nickvergessen/ticket/12540:
  [ticket/12540] Fix broken placeholders in language files
2014-05-15 13:36:06 +02:00
Tristan Darricau
d53336af06 [ticket/11224] Remove new line in acm_memory.php
PHPBB3-11224
2014-05-15 12:36:22 +02:00
Tristan Darricau
292908ca4a [ticket/11224] Use assertNotEquals(false) instead of assertNotFalse()
assertNotFalse() is unavailable with the version of phpunit used with php
5.2

PHPBB3-11224
2014-05-15 01:50:44 +02:00
Tristan Darricau
7c99e30920 [ticket/11224] Fix coding style
PHPBB3-11224
2014-05-15 01:17:02 +02:00
Tristan Darricau
b7f54e42b2 [ticket/11224] Add unit test
PHPBB3-11224
2014-05-15 00:22:27 +02:00
Tristan Darricau
9dd71fa32e [ticket/11224] Fix the blank line after ?>
PHPBB3-11224
2014-05-14 20:23:27 +02:00
Tristan Darricau
0c4b53e2f1 [ticket/11224] Fix returned data
PHPBB3-11224
2014-05-14 20:22:36 +02:00
Tristan Darricau
0c109c9d37 [ticket/11224] SQL cache destroy does not destroy queries to tables joined
https://tracker.phpbb.com/browse/PHPBB3-11224

PHPBB3-11224
2014-05-14 20:00:04 +02:00
Joas Schilling
dceea23b1f [ticket/12540] Fix broken placeholders in language files
PHPBB3-12540
2014-05-13 21:41:11 +02:00
Andreas Fischer
cc0446dc17 Merge pull request #2430 from nickvergessen/ticket/10839-olympus
[Ticket/10839] olympus - Remove phpunit configuration files

* nickvergessen/ticket/10839-olympus:
  [ticket/10839] Fix note about running slow tests and build task
  [ticket/10839] Removing phpunit.xml.all
  [ticket/10839] Always run functional tests by default
2014-05-10 17:14:00 +02:00
Joas Schilling
333120a992 [ticket/10839] Fix note about running slow tests and build task
PHPBB3-10839
2014-05-09 11:19:49 +02:00
Joas Schilling
8a9b1a8fed [ticket/10839] Removing phpunit.xml.all
To run all tests, just append
    --group slow
to your call

PHPBB3-10839
2014-05-09 11:19:48 +02:00
Joas Schilling
d6ac4a1130 [ticket/10839] Always run functional tests by default
They are skipped anyway, if $phpbb_functional_url is not configured.
If you want to run tests without functional tests, just append
    --exclude-group functional
to your call

PHPBB3-10839
2014-05-09 11:19:48 +02:00
Joas Schilling
436e388b87 Merge pull request #2396 from Nicofuma/ticket/12485
[ticket/12485] Broken tests due to absolute 'exclude'

* Nicofuma/ticket/12485:
  [ticket/12485] Broken tests due to absolute exclude
2014-05-03 10:19:52 +02:00
Nicofuma
3dee1db260 [ticket/12485] Broken tests due to absolute exclude
PHPBB3-12485
2014-05-03 04:05:25 +02:00
Nils Adermann
af7ec71967 Merge remote-tracking branch 'github-bantu/ticket/11860' into develop-olympus
* github-bantu/ticket/11860:
  [ticket/11860] htaccess: Support for Apache 2.4's "Require" syntax.
2014-05-03 00:37:11 +02:00
Nils Adermann
7b94368d52 Merge remote-tracking branch 'github-bantu/ticket/12429' into develop-olympus
* github-bantu/ticket/12429:
  [ticket/12429] Update PHPUnit to 4.1, update DBUnit to 1.3.
2014-05-02 21:42:54 +02:00
Andreas Fischer
30dc3afb69 [ticket/12429] Update PHPUnit to 4.1, update DBUnit to 1.3.
PHPBB3-12429
2014-05-02 20:19:10 +02:00
Nils Adermann
1cd2aaf92f Merge remote-tracking branch 'github-nickvergessen/ticket/12472' into develop-olympus
* github-nickvergessen/ticket/12472:
  [ticket/12472] Set fast_finish for travis
2014-05-02 18:58:15 +02:00
Marc Alexander
cb2538dc84 Merge remote-tracking branch 'nickvergessen/ticket/12120' into develop-olympus
* nickvergessen/ticket/12120:
  [ticket/12120] Add Marc Alexander to AUTHORS
2014-05-02 18:36:08 +02:00
Joas Schilling
acdaad2625 [ticket/12472] Set fast_finish for travis
Now, a build will finish as soon as a job has failed,
or when the only jobs left allow failures.
http://docs.travis-ci.com/user/build-configuration/#Fast-finishing

PHPBB3-12472
2014-05-02 17:59:22 +02:00
Joas Schilling
797cb02f06 [ticket/12120] Add Marc Alexander to AUTHORS
PHPBB3-12120
2014-05-02 17:12:44 +02:00
Nils Adermann
c7450592d8 Merge remote-tracking branch 'github-bantu/ticket/12468' into develop-olympus
* github-bantu/ticket/12468:
  [ticket/12468] Having mbstring.http_input set to '' is as good as 'pass'.
  [ticket/12467] Add config*.php and tests_config*.php to .gitignore
2014-05-02 15:36:59 +02:00
Andreas Fischer
370015c1a5 [ticket/12468] Having mbstring.http_input set to '' is as good as 'pass'.
PHPBB3-12468
2014-05-02 14:41:08 +02:00
Andreas Fischer
43c6fd768f Merge pull request #2371 from nickvergessen/ticket/12467
[ticket/12467] Add config*.php and tests_config*.php to .gitignore

* nickvergessen/ticket/12467:
  [ticket/12467] Add config*.php and tests_config*.php to .gitignore
2014-05-02 14:21:54 +02:00
Joas Schilling
535cd5670f [ticket/12467] Add config*.php and tests_config*.php to .gitignore
PHPBB3-12467
2014-05-02 13:47:30 +02:00
Nils Adermann
fa230b48ec Merge remote-tracking branch 'github-marc1706/ticket/8960-olympus' into develop-olympus
* github-marc1706/ticket/8960-olympus:
  [ticket/8960] Allow changing avatar path if it's not writable
2014-05-02 13:25:29 +02:00
Joas Schilling
06e9d8871c Merge pull request #2319 from n-aleha/ticket/12186
[ticket/12186] Move PM reports below post reports while installing

* n-aleha/ticket/12186:
  [ticket/12186] Move PM reports below post reports while installing
2014-04-29 21:28:54 +02:00
Nicofuma
4f6441b411 [ticket/11480] PM : "Unknown folder" returned when inbox folder is full
https://tracker.phpbb.com/browse/PHPBB3-11480

PHPBB3-11480
2014-04-25 01:04:00 +02:00
n-aleha
5a91399dac [ticket/12186] Move PM reports below post reports while installing
In mcp, move PM reports below post reports while installing.

PHPBB3-12186
2014-04-23 22:43:20 +03:00
Andreas Fischer
c0f3011b53 Merge pull request #2341 from nickvergessen/ticket/12413
[ticket/12413] Revert e65a6dd8f4 in olympus

* nickvergessen/ticket/12413:
  [ticket/12413] Revert e65a6dd8f4
2014-04-22 19:24:43 +02:00
Joas Schilling
f9cdec90fc [ticket/12413] Revert e65a6dd8f4
"Merge remote-tracking branch 'dhruvgoel92/ticket/11271' into develop-olympus"

This reverts commit e65a6dd8f4, reversing
changes made to 214f515e9c.

PHPBB3-12413
2014-04-22 18:55:17 +02:00
Joas Schilling
d735129d6e Merge pull request #2324 from bantu/ticket/12417
[ticket/12417] Revert "No longer allow Travis CI HHVM environment to fai...

* bantu/ticket/12417:
  [ticket/12417] Revert "No longer allow Travis CI HHVM environment to fail."
2014-04-16 22:46:41 +02:00
Andreas Fischer
04893e3f98 [ticket/12417] Revert "No longer allow Travis CI HHVM environment to fail."
hhvm-nightly 2014.04.16~precise introduced "Attempted to serialize
unserializable builtin class DOMElement" errors when running functional tests.

This reverts commit ff7cc77f9d.

PHPBB3-12417
2014-04-16 22:16:52 +02:00
Andreas Fischer
e9807e1741 Merge pull request #2310 from n-aleha/ticket/12397
[ticket/12397] Fix sql_unique_index_exists doc block

* n-aleha/ticket/12397:
  [ticket/12397] Fix sql_unique_index_exists doc block
2014-04-15 23:59:39 +02:00
n-aleha
bff63be512 [ticket/12397] Fix sql_unique_index_exists doc block
db_tools::sql_unique_index_exists() searches for unique indexes but not
primary key indexes.

PHPBB3-12397
2014-04-16 00:55:05 +03:00
Joas Schilling
675cef9c2e Merge pull request #2195 from Elsensee/ticket/10423
[ticket/10423] Remove * from search or highlight string

* Elsensee/ticket/10423:
  [ticket/10423] Replace foreach with function in viewtopic.php
  [ticket/10423] Remove unnecessary include in test
  [ticket/10423] Match multiple wildcards
  [ticket/10423] Move code into a function and add tests for it
  [ticket/10423] Remove * from search or highlight string
2014-04-15 23:23:26 +02:00
Oliver Schramm
f3cd7f73e1 [ticket/10423] Replace foreach with function in viewtopic.php
PHPBB3-10423
2014-04-15 20:43:16 +02:00
Oliver Schramm
601ecd3da1 [ticket/10423] Remove unnecessary include in test
PHPBB3-10423
2014-04-15 20:43:01 +02:00
Marc Alexander
c6fd2f01eb [ticket/8960] Allow changing avatar path if it's not writable
This change will allow users to change the avatar path even if it's not
writable. However, this will get rid of the error message that the path is
not writable. Due to this, a minor addition to the explain message in the ACP
settings has been made.

PHPBB3-8960
2014-04-14 22:44:37 +02:00
Oliver Schramm
dde7ac3b2b [ticket/10423] Match multiple wildcards
Multiple wildcards are removed from the string if there is
no word before or after them. If there is a word before or
after them, they are just replaced with a single one.

PHPBB3-10423
2014-04-13 21:36:09 +02:00
Oliver Schramm
face175471 [ticket/10423] Move code into a function and add tests for it
PHPBB3-10423
2014-04-13 21:15:14 +02:00
Andreas Fischer
b19ee00b9c [ticket/12384] Run Travis CI HHVM tests against MySQLi instead of MySQL.
HHVM MySQLi has been fixed and works for us now.

PHPBB3-12384
2014-04-12 01:58:54 +02:00
Cesar G
e64c2326bd Merge remote-tracking branch 'marc1706/ticket/10687' into develop-olympus
* marc1706/ticket/10687:
  [ticket/10687] Improve error message if unable to get image dimensions
2014-04-10 17:42:14 -07:00
Andreas Fischer
7d54fbd31a Merge pull request #2279 from Elsensee/ticket/12381
[ticket/12381] Fix broken error message when selecting invalid DB driver

* Elsensee/ticket/12381:
  [ticket/12381] Fix broken error message when selecting invalid DB driver
2014-04-10 15:44:35 +02:00
Oliver Schramm
87cfcda638 [ticket/12381] Fix broken error message when selecting invalid DB driver
PHPBB3-12381
2014-04-10 15:05:16 +02:00
Joas Schilling
f0f479c517 Merge remote-tracking branch 'bantu/ticket/12320' into develop-olympus
* bantu/ticket/12320:
  [ticket/12320] Install a nightly build of HHVM.
  [ticket/12320] No longer allow Travis CI HHVM environment to fail.
2014-04-10 13:38:01 +02:00
Andreas Fischer
4d206e2ced [ticket/12320] Install a nightly build of HHVM.
PHPBB3-12320
2014-04-10 11:37:25 +02:00
Andreas Fischer
ff7cc77f9d [ticket/12320] No longer allow Travis CI HHVM environment to fail.
PHPBB3-12320
2014-04-10 11:36:48 +02:00
Marc Alexander
5c34b9c371 [ticket/10687] Improve error message if unable to get image dimensions
The error message that is presented if getimagesize() was unable to determine
an image's dimensions now additionally states that this might be caused by an
incorrect URL.

PHPBB3-10687
2014-04-09 14:55:49 +02:00
Andreas Fischer
8920ca5d43 Merge remote-tracking branch 'VSEphpbb/ticket/12359' into develop-olympus
* VSEphpbb/ticket/12359:
  [ticket/12359] Remove inline width styling on UCP birthday fields
2014-04-06 11:04:38 +02:00
Matt Friedman
399f2f5a1f [ticket/12359] Remove inline width styling on UCP birthday fields
PHPBB3-12359
2014-04-05 21:13:38 -07:00
Joas Schilling
352b523889 Merge remote-tracking branch 'Marc/ticket/10851' into develop-olympus
* Marc/ticket/10851:
  [ticket/10851] Set disallowed content to empty array if checking is disabled
2014-04-05 10:00:17 +02:00
Joas Schilling
67e049b7ff Merge remote-tracking branch 'Elsensee/ticket/12353' into develop-olympus
* Elsensee/ticket/12353:
  [ticket/12353] Fix displayed attachments in ACP
2014-04-04 17:39:51 +02:00
Oliver Schramm
744b39e6c4 [ticket/12353] Fix displayed attachments in ACP
PHPBB3-12353
2014-04-04 17:07:54 +02:00
Joas Schilling
296e573b6b Merge remote-tracking branch 'bantu/ticket/12318' into develop-olympus
* bantu/ticket/12318:
  [ticket/12318] Revert "Pin HHVM version to 3.0.0~precise."
2014-04-03 23:07:35 +02:00
Andreas Fischer
1a044711fb [ticket/12318] Revert "Pin HHVM version to 3.0.0~precise."
This reverts commit f6614f2078 as the install
command started failing with "Version '3.0.0~precise' for 'hhvm' was not found"
in the meantime.

PHPBB3-12318
2014-04-03 22:33:46 +02:00
Marc Alexander
519adb5060 [ticket/10851] Set disallowed content to empty array if checking is disabled
The disallowed content defaults to a standard set of mimetype triggers by
default. If one doesn't want to check the attachments mimetype triggers then
we need to set the disallowed content to an empty array.

PHPBB3-10851
2014-04-03 16:06:46 +02:00
Joas Schilling
801a1f9ab9 Merge remote-tracking branch 'Elsensee/ticket/12341' into develop-olympus
* Elsensee/ticket/12341:
  [ticket/12341] Add tests for get_username_string()
2014-04-03 15:20:30 +02:00
Oliver Schramm
31e1d7be8d [ticket/12341] Add tests for get_username_string()
PHPBB3-12341
2014-04-01 23:53:04 +02:00
Joas Schilling
c2fbaf3af2 Merge remote-tracking branch 'bantu/ticket/12318-olympus' into develop-olympus
* bantu/ticket/12318-olympus:
  [ticket/12318] Use MySQL instead of MySQLi for now on HHVM.
  [ticket/12318] Pin HHVM version to 3.0.0~precise.
  [ticket/12318] Always install new config file on HHVM upgrade conflict.
  [ticket/12318] Add PPA providing dependencies for recent HHVM on Ubuntu 12.04.
  [ticket/12318] Upgrade to a recent stable version of HHVM.
  [ticket/12318] Correctly setup HHVM for functional tests.
2014-03-31 20:53:55 +02:00
Andreas Fischer
297729aa32 [ticket/12318] Use MySQL instead of MySQLi for now on HHVM.
PHPBB3-12318
2014-03-30 15:43:55 +02:00
Andreas Fischer
e1be4943d8 [ticket/12318] Pin HHVM version to 3.0.0~precise.
PHPBB3-12318
2014-03-30 15:43:55 +02:00
Andreas Fischer
d53c411d90 [ticket/12318] Always install new config file on HHVM upgrade conflict.
PHPBB3-12318
2014-03-30 15:43:54 +02:00
Andreas Fischer
a53312636a [ticket/12318] Add PPA providing dependencies for recent HHVM on Ubuntu 12.04.
PHPBB3-12318
2014-03-30 15:43:54 +02:00
Andreas Fischer
672eab3a9c [ticket/12318] Upgrade to a recent stable version of HHVM.
PHPBB3-12318
2014-03-30 15:43:54 +02:00
Andreas Fischer
04707cbf8d [ticket/12318] Correctly setup HHVM for functional tests.
PHPBB3-12318
2014-03-30 15:43:54 +02:00
Andreas Fischer
dc3cb2205b Merge remote-tracking branch 'VSEphpbb/ticket/12316' into develop-olympus
* VSEphpbb/ticket/12316:
  [ticket/12316] Add Build Status Icon for develop-ascraeus to README.md
2014-03-30 15:40:30 +02:00
Matt Friedman
a6b988c844 [ticket/12316] Add Build Status Icon for develop-ascraeus to README.md
PHPBB3-12316
2014-03-30 00:07:08 -07:00
Joas Schilling
1663a0a5fe Merge remote-tracking branch 'bantu/ticket/12319' into develop-olympus
* bantu/ticket/12319:
  [ticket/12319] Backport Travis CI HHVM environment to develop-olympus.
2014-03-29 17:49:51 +01:00
Andreas Fischer
f7f18a3c66 [ticket/12319] Backport Travis CI HHVM environment to develop-olympus.
PHPBB3-12319
2014-03-29 12:08:52 +01:00
Joas Schilling
4e8aef7cd6 Merge remote-tracking branch 'noxwizard/ticket/naderman/9725' into develop-olympus
* noxwizard/ticket/naderman/9725:
  [ticket/9725] Code sniffer fixes
  [ticket/9725] Do not use deprecated views to remove default constraints
  [ticket/9725] Move primary key creation to the correct location
  [ticket/9725] Remove trailing spaces from MSSQL schema
  [ticket/9725] Create MSSQL primary keys if none exist
  [ticket/9725] Remove explicit filegroup designations
  [ticket/9725] Fetch Azure db stats from proper table
  [ticket/9725] Add dummy indexes for Azure
  [ticket/9725] Create an Azure SQL compatible Schema
2014-03-29 10:43:09 +01:00
Patrick Webster
79492d4110 [ticket/9725] Code sniffer fixes
PHPBB3-9725
2014-03-28 17:07:50 -05:00
Patrick Webster
aaa846cb3a [ticket/9725] Do not use deprecated views to remove default constraints
PHPBB3-9725
2014-03-28 17:05:37 -05:00
Patrick Webster
31e610f0b1 [ticket/9725] Move primary key creation to the correct location
PHPBB3-9725
2014-03-28 17:05:25 -05:00
Patrick Webster
a2580687ee [ticket/9725] Remove trailing spaces from MSSQL schema
PHPBB3-9725
2014-03-28 17:05:13 -05:00
Patrick Webster
83be990701 [ticket/9725] Create MSSQL primary keys if none exist
PHPBB3-9725
2014-03-28 17:04:56 -05:00
Patrick Webster
68ae8dfa97 [ticket/9725] Remove explicit filegroup designations
PHPBB3-9725
2014-03-28 17:04:41 -05:00
Patrick Webster
80a844d38c [ticket/9725] Fetch Azure db stats from proper table
PHPBB3-9725
2014-03-28 17:04:29 -05:00
Oliver Schramm
02378e94e7 [ticket/10423] Remove * from search or highlight string
PHPBB3-10423
2014-03-28 22:28:14 +01:00
Joas Schilling
40ed3f6776 Merge remote-tracking branch 'bantu/ticket/12257' into develop-olympus
* bantu/ticket/12257:
  [ticket/12257] Use MyISAM in PHP 5.3 environment such that FULLTEXT tests run.
2014-03-27 14:31:23 +01:00
Nils Adermann
47ab801440 Merge remote-tracking branch 'marshalrusty/ticket/12310' into develop-olympus
* marshalrusty/ticket/12310:
  [ticket/12310] Don't autocomplete SMTP user/pass on install
2014-03-26 23:35:48 -04:00
Yuriy Rusko
dc9ae231e5 [ticket/12310] Don't autocomplete SMTP user/pass on install
PHPBB3-12310
2014-03-26 23:16:39 -04:00
Andreas Fischer
0b9752a594 Merge pull request #2183 from s9e/ticket/12302
Upgrade all composer.phar to 1.0.0-alpha8

* s9e/ticket/12302:
  [ticket/12302] Added `--no-dev` to composer call in build.xml
  [ticket/12302] Updated composer.phar to 1.0.0-alpha8
2014-03-25 17:27:15 +01:00
s9e
55e7459922 [ticket/12302] Added --no-dev to composer call in build.xml
PHPBB3-12302
2014-03-25 17:20:59 +01:00
s9e
53740111f6 [ticket/12302] Updated composer.phar to 1.0.0-alpha8
wget -N https://getcomposer.org/download/1.0.0-alpha8/composer.phar

PHPBB3-12302
2014-03-25 17:09:00 +01:00
Andreas Fischer
ca8fa03659 [ticket/12257] Use MyISAM in PHP 5.3 environment such that FULLTEXT tests run.
PHPBB3-12257
2014-03-24 21:42:06 +01:00
Joas Schilling
574a9f4f2a Merge remote-tracking branch 'schosser/ticket/10174' into develop-olympus
* schosser/ticket/10174:
  [ticket/10174] Rename "Ban usernames" to "Ban users" in ACP
2014-03-24 20:58:11 +01:00
Daniel Schosser
a46ad06c19 [ticket/10174] Rename "Ban usernames" to "Ban users" in ACP
Changing the language string from "Ban usernames" to "Ban users"
to clarify its use. It bans users by their name and not the username itself

PHPBB3-10174
2014-03-23 14:06:32 +01:00
Joas Schilling
5197e5afe3 Merge remote-tracking branch 'geetakshi/ticket/12035' into develop-olympus
* geetakshi/ticket/12035:
  [ticket/12035] Correcting the condition
  [ticket/12035] Adding necessary conditions
  [ticket/12035] Adding link to user posts to ACP page
2014-03-22 15:07:01 +01:00
geetakshi
663eb74cf3 [ticket/12035] Correcting the condition
PHPBB3-12035
2014-03-20 14:17:03 +05:30
geetakshi
5316c32b10 [ticket/12035] Adding necessary conditions
PHPBB3-12035
2014-03-20 03:36:53 +05:30
Joas Schilling
bdab6dede0 Merge remote-tracking branch 'Elsensee/ticket/11766' into develop-olympus
* Elsensee/ticket/11766:
  [ticket/11766] Hide edit, quote and delete buttons if topic is locked
2014-03-19 20:34:22 +01:00
Oliver Schramm
d71fd5d660 [ticket/11766] Hide edit, quote and delete buttons if topic is locked
But show quote button to guests if topic isn't locked

PHPBB3-11766
2014-03-19 20:23:56 +01:00
geetakshi
418034af0e [ticket/12035] Adding link to user posts to ACP page
Adding link of posts behind displayed number of posts of the user

PHPBB3-12035
2014-03-17 00:52:11 +05:30
Joas Schilling
c1b48bdd01 Merge remote-tracking branch 'Elsensee/ticket/12072' into develop-olympus
* Elsensee/ticket/12072:
  [ticket/12072] Fix comment about NEW MEMBERS permission
2014-03-14 14:35:56 +01:00
Oliver Schramm
647f976c30 [ticket/12072] Fix comment about NEW MEMBERS permission
PHPBB3-12072
2014-03-14 14:33:56 +01:00
Joas Schilling
bdce7abc84 Merge remote-tracking branch 'marcosbc/ticket/12247' into develop-olympus
* marcosbc/ticket/12247:
  [ticket/12247] Makes static usernames work
  [ticket/12247] Add ['username'] to mcp_queue.php's user_notification()
2014-03-14 13:58:17 +01:00
Joas Schilling
943e4e35ee Merge remote-tracking branch 'exreaction/ticket/12202' into develop-olympus
* exreaction/ticket/12202:
  [ticket/12202] Use an array in the data provider instead of exploding manually
  [ticket/12202] Can't call htmlspecialchars before checking for quotes
  [ticket/12202] Fix tests
  [ticket/12202] Test for parse_cfg_file
  [ticket/12202] Use copyright symbol in style.cfg files
  [ticket/12202] Apply htmlspecialchars to style.cfg data
2014-03-14 13:53:55 +01:00
Nathan Guse
a6b274e8ab Merge pull request #11 from nickvergessen/ticket/exreaction/12202
[ticket/12202] Use an array in the data provider instead of exploding manually
2014-03-14 07:29:22 -05:00
Joas Schilling
1f8ab1c196 [ticket/12202] Use an array in the data provider instead of exploding manually
PHPBB3-12202
2014-03-14 13:18:30 +01:00
Marcos Bjorkelund
4333401a27 [ticket/12247] Makes static usernames work
Relative to the last ticket, this allows static usernames to
work correctly (those inserted in the post-column post_username)
when sending the e-mail, instead of showing just "Anonymous".

PHPBB3-12247
2014-03-14 00:49:20 +01:00
Marcos Bjorkelund
b322cb4c11 [ticket/12247] Add ['username'] to mcp_queue.php's user_notification()
It includes the poster's username in the email notifications of
posts that get approved by moderators.

This is done by adding the username to every user_notification()
function located in /phpBB/includes/mcp/mcp_queue.php.

PHPBB3-12247
2014-03-13 23:54:06 +01:00
Joas Schilling
03eb23cbae Merge remote-tracking branch 'bantu/ticket/12176' into develop-olympus
* bantu/ticket/12176:
  [ticket/12176] Reword comment about config entries.
  [ticket/12176] Add newest_user_colour to config array to ensure it exists
  [ticket/12176] Display correct message when trying to delete founder.
  [ticket/12176] Add functional test for founder deletion message.
2014-03-13 10:16:41 +01:00
Andreas Fischer
e123b0c0a0 [ticket/12176] Reword comment about config entries.
PHPBB3-12176
2014-03-13 00:53:07 +01:00
Andreas Fischer
d3ddf29e59 Merge pull request #6 from nickvergessen/ticket/bantu/12176
[ticket/12176] Add newest_user_colour to config array to ensure it exists

* nickvergessen/ticket/bantu/12176:
  [ticket/12176] Add newest_user_colour to config array to ensure it exists
2014-03-13 00:17:59 +01:00
Joas Schilling
ca92ed918a [ticket/12176] Add newest_user_colour to config array to ensure it exists
PHPBB3-12176
2014-03-12 20:08:55 +01:00
Andreas Fischer
d81a604ef8 Merge remote-tracking branch 'Crizz0/ticket/10549' into develop-olympus
* Crizz0/ticket/10549:
  [ticket/10549] using correct variable in includes/functions_module.php too
  [ticket/10549] changed "right" to "incorrect"
2014-03-12 16:25:01 +01:00
Crizzo
d95d062a42 [ticket/10549] using correct variable in includes/functions_module.php too
PHPBB3-10549
2014-03-11 18:45:46 +01:00
Crizzo
239f72ddda [ticket/10549] changed "right" to "incorrect"
PHPBB3-10549
2014-03-11 18:24:35 +01:00
Joas Schilling
e65a6dd8f4 Merge remote-tracking branch 'dhruvgoel92/ticket/11271' into develop-olympus
* dhruvgoel92/ticket/11271:
  [ticket/11271] Make path conversion more precise
  [ticket/11271] Add docblock of feed_generate_content( )
  [ticket/11271] Fix tabs and use !empty( ) instead of count( )
  [ticket/11271] Remove unnecessary inclusion of functions_display
  [ticket/11271] Typecast forum and topic id to integer
  [ticket/11271] Use absolute path for displaying inline attachments in feeds
  [ticket/11271] Changed executable bit.
  [ticket/11271] Formatting code and removing null assignment.
  [ticket/11271] Removing unnecessary database object
  [ticket/11271] Separated attachment fetching query
  [ticket/11271] Fetched feed attachments before loop.
  [ticket/11271] Removed in-line attachment comments properly.
  [ticket/11271] Displaying in-line attached images in ATOM feed.
2014-03-11 09:53:18 +01:00
Joas Schilling
214f515e9c Merge remote-tracking branch 'dhruvgoel92/ticket/11288' into develop-olympus
* dhruvgoel92/ticket/11288:
  [ticket/11288] Handle +,- without preceeding whitespace characters
2014-03-11 09:46:31 +01:00
Joas Schilling
a35901c29b Merge remote-tracking branch 'EXreaction/ticket/12259-olympus' into develop-olympus
* EXreaction/ticket/12259-olympus:
  [ticket/12259] Reduce the size of our test matrix
2014-03-11 09:13:37 +01:00
Nathan Guse
9aa947f7fb Merge pull request #2105 from Crizz0/ticket/12106
[ticket/12106] Adds a explaination that admin/mods still able to use the...
2014-03-10 21:49:29 -05:00
Nathan Guse
ea63e1412b Merge pull request #2100 from Crizz0/ticket/10549
[ticket/10549] Adds language variables to Error messages MODULE...
2014-03-10 21:40:44 -05:00
Nathan Guse
a4810405d2 [ticket/12259] Reduce the size of our test matrix
Only test MariaDB or PostgreSQL once on PHP 5.4. This reduces our build matrix
by 10 builds (over half).

PHPBB3-12259
2014-03-10 21:34:55 -05:00
Crizzo
957e9aabc3 [ticket/12106] Combined first and second sentence
PHPBB3-12106
2014-03-10 21:19:25 +01:00
Crizzo
13327a13a0 [ticket/12106] Adds a explaination that admin/mods still able to use the board
PHPBB3-12106
2014-03-10 18:50:39 +01:00
Crizzo
ec4c9833ca [ticket/10549] Adds language variables
PHPBB3-10549
2014-03-10 18:35:23 +01:00
Nathaniel Guse
f3d8dfd1e3 [ticket/12202] Can't call htmlspecialchars before checking for quotes
PHPBB3-12202
2014-03-09 17:17:33 -05:00
Nathaniel Guse
50dd76aef3 [ticket/12202] Fix tests
PHPBB3-12202
2014-03-09 17:16:45 -05:00
Nathan Guse
49734db9cd [ticket/12202] Test for parse_cfg_file
PHPBB3-12202
2014-03-09 15:20:42 -05:00
Nathan Guse
224e3f139f [ticket/12202] Use copyright symbol in style.cfg files
PHPBB3-12202
2014-03-09 15:20:18 -05:00
Nathan Guse
f2d3879da4 [ticket/12202] Apply htmlspecialchars to style.cfg data
PHPBB3-12202
2014-03-09 15:19:52 -05:00
Nathan Guse
00f8fe24d2 Merge remote-tracking branch 'remotes/dhruvgoel92/ticket/10945' into develop-olympus
* remotes/dhruvgoel92/ticket/10945:
  [ticket/10945] Fix return values for split_keywords function
  [ticket/10945] Display search query when search fails in native search
  [ticket/10945] remove trigger_error call
2014-03-09 11:15:10 -05:00
Dhruv
c51dcbe6a0 [ticket/10945] Fix return values for split_keywords function
The function now returns false if all the words are common words and true
otherwise.

PHPBB3-10945
2014-03-08 21:23:08 +05:30
Dhruv
b6eec5c142 [ticket/10945] Display search query when search fails in native search
If search fails and common words are present, split_keywords returns false
and search.php file prints appropriate message of common words.
If search fails and there are no common words, split_keywords returns true
and keyword_search returns false so that the search query is displayed in
search box.

PHPBB3-10945
2014-03-08 21:20:37 +05:30
Dhruv Goel
f4645a6376 [ticket/10945] remove trigger_error call
removes trigger_error call incase no search results are found or start
variable exceeds the amount. So that search query is displayed in the
search box even if no results are returned.

PHPBB3-10945
2014-03-08 21:15:51 +05:30
Henry Sudhof
b993fa54a5 [ticket/9725] Add dummy indexes for Azure
SQL Azure requires a primary AKA clustered key on every table.
This adds a dummy INT column to act as key,
avoiding possible duplicate entries.
so that these columns can support bigger (speak: huge) tables

PHPBB3-9725
2014-03-01 21:03:25 -06:00
Henry Sudhof
fd4f973440 [ticket/9725] Create an Azure SQL compatible Schema
Two problems were encountered when installing on AzureSQL:
-Azure SQL does not support the ON clause of T-SQL
-Azure SQL requries a clustered index AKA primary key on all tables

The fix is makeshift; it introduces questionable primary indices, which should be replaced with auto--increment columns.

PHPBB3-9725
2014-03-01 20:59:11 -06:00
Joas Schilling
9f4908f0f2 Merge remote-tracking branch 'bantu/ticket/11509' into develop-olympus
* bantu/ticket/11509:
  [ticket/11509] Exit with the expected (non-zero) exit status on failure.
  [ticket/11509] Output which commit is being inspected.
  [ticket/11509] Three dots means sym. difference, but we only want new commits.
2014-03-01 19:13:58 +01:00
Nils Adermann
05d921fbbc Merge pull request #2059 from nickvergessen/ticket/12205
[ticket/12205] Do not display 0 for empty integers when show_novalue is off
2014-02-25 19:48:54 +01:00
Joas Schilling
ffbc7ccb64 [ticket/12205] Do not display 0 for empty integers when show_novalue is off
PHPBB3-12205
2014-02-25 18:24:45 +01:00
Andreas Fischer
42e8c2e8cf [ticket/11509] Exit with the expected (non-zero) exit status on failure.
PHPBB3-11509
2014-02-21 01:48:55 +01:00
Andreas Fischer
fe5858902e [ticket/11509] Output which commit is being inspected.
PHPBB3-11509
2014-02-21 01:47:45 +01:00
Andreas Fischer
ccd30912d9 [ticket/11509] Three dots means sym. difference, but we only want new commits.
PHPBB3-11509
2014-02-21 01:47:37 +01:00
Nathan Guse
823dca737f Merge remote-tracking branch 'remotes/prototech/ticket/12093' into develop-olympus
* remotes/prototech/ticket/12093:
  [ticket/12093] Check that document.selection is supported.
2014-02-19 09:06:57 -06:00
Nils Adermann
14017b7032 Merge remote-tracking branch 'github-exreaction/ticket/12210' into develop-olympus
* github-exreaction/ticket/12210:
  [ticket/12210] dbtools::sql_create_table incorrectly throws error related to auto-increment length on non auto-increment fields
2014-02-18 19:33:36 +01:00
Nathaniel Guse
602f4a2b54 [ticket/12210] dbtools::sql_create_table incorrectly throws error
related to auto-increment length on non auto-increment fields

PHPBB3-12210
2014-02-17 23:46:39 -06:00
Andreas Fischer
8960e6d777 [ticket/12176] Display correct message when trying to delete founder.
PHPBB3-12176
2014-02-15 02:27:54 +01:00
Andreas Fischer
587241f3a9 [ticket/12176] Add functional test for founder deletion message.
PHPBB3-12176
2014-02-15 02:27:54 +01:00
Nils Adermann
f245198652 Merge remote-tracking branch 'github-nickvergessen/ticket/12188' into develop-olympus
* github-nickvergessen/ticket/12188:
  [ticket/12188] Add php 5.6 to travis enviroments
2014-02-13 15:42:50 +01:00
Joas Schilling
9d1d90e336 [ticket/12188] Add php 5.6 to travis enviroments
PHPBB3-12188
2014-02-13 14:47:51 +01:00
Cesar G
43ccfbc6f4 [ticket/12093] Check that document.selection is supported.
PHPBB3-12093
2014-01-25 15:37:33 -08:00
Dhruv
1aa27f400c [ticket/11271] Make path conversion more precise
PHPBB3-11271
2013-12-27 03:31:28 +05:30
Dhruv
a71625ca76 [ticket/11271] Add docblock of feed_generate_content( )
PHPBB3-11271
2013-12-27 00:38:42 +05:30
Dhruv
f7c764986f [ticket/11271] Fix tabs and use !empty( ) instead of count( )
PHPBB3-11271
2013-12-27 00:22:29 +05:30
Dhruv
6611329d83 [ticket/11271] Remove unnecessary inclusion of functions_display
PHPBB3-11271
2013-12-27 00:22:28 +05:30
Dhruv
3bae72d164 [ticket/11271] Typecast forum and topic id to integer
PHPBB3-11271
2013-12-27 00:22:27 +05:30
Dhruv
dc37f3a0e3 [ticket/11271] Use absolute path for displaying inline attachments in feeds
PHPBB3-11271
2013-12-27 00:22:26 +05:30
erangamapa
62263c13d4 [ticket/11271] Changed executable bit.
Changed executable bit value from 755 to 644.

PHPBB3-11271
2013-12-27 00:22:25 +05:30
erangamapa
08d69de933 [ticket/11271] Formatting code and removing null assignment.
Formatted code and replaced null assignment with empty array
assignment to attachments parameter in method 'feed_generate_content'.

PHPBB3-11271
2013-12-27 00:22:24 +05:30
erangamapa
cca4067694 [ticket/11271] Removing unnecessary database object
Removed unnecessary global database object from 'feed_generate_content'
Method.

PHPBB3-11271
2013-12-27 00:22:22 +05:30
erangamapa
8586171187 [ticket/11271] Separated attachment fetching query
Removed external query used to fetch related attachments.
Added attachments fetching method with database query to
post based feed.

PHPBB3-11271
2013-12-27 00:22:21 +05:30
erangamapa
91a14a9e63 [ticket/11271] Fetched feed attachments before loop.
Fetched feed attachments before looping through feed items and
send them to method 'feed_generate_content' for each feed item.

PHPBB3-11271
2013-12-27 00:22:20 +05:30
erangamapa
a41e2ca380 [ticket/11271] Removed in-line attachment comments properly.
Added a new regex to remove in-line attachment comments.

PHPBB3-11271
2013-12-27 00:22:19 +05:30
erangamapa
5bf4726195 [ticket/11271] Displaying in-line attached images in ATOM feed.
In-line attached images are not displaying as they are not parsing.
Included 'parse_attachments' column name for data fetching queries
in feed.php. Checked weather feeds have in-line attachments and
parsed them by using parse_attachments() method.

PHPBB3-11271
2013-12-27 00:22:18 +05:30
Dhruv
2b959e3331 [ticket/11288] Handle +,- without preceeding whitespace characters
PHPBB3-11288
2013-10-05 21:09:52 +05:30
Andreas Fischer
6c3f3ec893 [ticket/11860] htaccess: Support for Apache 2.4's "Require" syntax.
PHPBB3-11860
2013-09-23 14:10:21 +02:00
107 changed files with 3980 additions and 968 deletions

6
.gitignore vendored
View File

@@ -4,9 +4,7 @@
/phpBB/cache/*.php
/phpBB/cache/*.lock
/phpBB/composer.phar
/phpBB/config.php
/phpBB/config_dev.php
/phpBB/config_test.php
/phpBB/config*.php
/phpBB/ext/*
/phpBB/files/*
/phpBB/images/avatars/gallery/*
@@ -14,5 +12,5 @@
/phpBB/store/*
/phpBB/vendor
/tests/phpbb_unit_tests.sqlite2
/tests/test_config.php
/tests/test_config*.php
/tests/tmp/*

View File

@@ -1,27 +1,38 @@
language: php
php:
- 5.2
- 5.3.3
- 5.3
- 5.4
- 5.5
- 5.6
- hhvm
env:
- DB=mariadb
- DB=mysql
- DB=postgres
before_script:
- sh -c "if [ '$DB' = 'postgres' ]; then psql -c 'DROP DATABASE IF EXISTS phpbb_tests;' -U postgres; fi"
- sh -c "if [ '$DB' = 'postgres' ]; then psql -c 'create database phpbb_tests;' -U postgres; fi"
- sh -c "if [ '$DB' = 'mariadb' ]; then travis/setup-mariadb.sh; fi"
- sh -c "if [ '$TRAVIS_PHP_VERSION' = '5.3' -a '$DB' = 'mysql' ]; then mysql -e 'SET GLOBAL storage_engine=MyISAM;'; fi"
- sh -c "if [ '$DB' = 'mysql' -o '$DB' = 'mariadb' ]; then mysql -e 'create database IF NOT EXISTS phpbb_tests;'; fi"
- sh -c "if [ '$TRAVIS_PHP_VERSION' = '5.2' ]; then pear install --force phpunit/DbUnit; phpenv rehash; fi"
- cd phpBB
- sh -c "if [ '$TRAVIS_PHP_VERSION' != '5.2' ]; then php ../composer.phar install --dev --no-interaction --prefer-source; fi"
- php ../composer.phar install --dev --no-interaction --prefer-source
- cd ..
- sh -c "if [ `php -r "echo (int) version_compare(PHP_VERSION, '5.3.19', '>=');"` = "1" ]; then travis/setup-webserver.sh; fi"
- sh -c "if [ '$TRAVIS_PHP_VERSION' = '5.3.3' -a '$DB' = 'mysql' ]; then sudo apt-get update; sudo apt-get install -y parallel libimage-exiftool-perl; fi"
script:
- sh -c "if [ '$TRAVIS_PHP_VERSION' = '5.2' ]; then phpunit --configuration travis/phpunit-$DB-travis.xml; else phpBB/vendor/bin/phpunit --configuration travis/phpunit-$DB-travis.xml; fi"
- sh -c "if [ '$TRAVIS_PHP_VERSION' = '5.5' -a '$DB' = 'mysql' -a '$TRAVIS_PULL_REQUEST' != 'false' ]; then git-tools/commit-msg-hook-range.sh origin/$TRAVIS_BRANCH...FETCH_HEAD; fi"
- phpBB/vendor/bin/phpunit --configuration travis/phpunit-$DB-travis.xml
- sh -c "if [ '$TRAVIS_PHP_VERSION' = '5.3.3' -a '$DB' = 'mysql' -a '$TRAVIS_PULL_REQUEST' != 'false' ]; then git-tools/commit-msg-hook-range.sh origin/$TRAVIS_BRANCH..FETCH_HEAD; fi"
- sh -c "if [ '$TRAVIS_PHP_VERSION' = '5.3.3' -a '$DB' = 'mysql' ]; then find . -type f -not -path './phpBB/vendor/*' -iregex '.*\.\(gif\|jpg\|jpeg\|png\)$' | parallel --gnu --keep-order 'phpBB/develop/strip_icc_profiles.sh {}' || exit 1; fi"
matrix:
include:
- php: 5.4
env: DB=mariadb
- php: 5.4
env: DB=postgres
allow_failures:
- php: hhvm
fast_finish: true

View File

@@ -17,9 +17,11 @@ Find support and lots more on [phpBB.com](http://www.phpbb.com)! Discuss the dev
## AUTOMATED TESTING
We have unit and functional tests in order to prevent regressions. You can view the bamboo continuous integration [here](http://bamboo.phpbb.com) or check our travis build below.
develop - [![Build Status](https://secure.travis-ci.org/phpbb/phpbb.png?branch=develop)](http://travis-ci.org/phpbb/phpbb)
develop-olympus - [![Build Status](https://secure.travis-ci.org/phpbb/phpbb.png?branch=develop-olympus)](http://travis-ci.org/phpbb/phpbb)
We have unit and functional tests in order to prevent regressions. You can view the bamboo continuous integration [here](http://bamboo.phpbb.com) or check our travis build below:
* [![Build Status](https://secure.travis-ci.org/phpbb/phpbb.png?branch=master)](http://travis-ci.org/phpbb/phpbb) **master** - Latest development version
* [![Build Status](https://secure.travis-ci.org/phpbb/phpbb.png?branch=3.1.x)](http://travis-ci.org/phpbb/phpbb) **3.1.x** - Development of version 3.1.x
* [![Build Status](https://secure.travis-ci.org/phpbb/phpbb.png?branch=3.0.x)](http://travis-ci.org/phpbb/phpbb) **3.0.x** - Development of version 3.0.x
## LICENSE

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.0.13-dev" />
<property name="prevversion" value="3.0.12" />
<property name="olderversions" value="3.0.2, 3.0.3, 3.0.4, 3.0.5, 3.0.6, 3.0.7, 3.0.7-PL1, 3.0.8, 3.0.9, 3.0.10, 3.0.11" />
<property name="newversion" value="3.0.14" />
<property name="prevversion" value="3.0.14-RC1" />
<property name="olderversions" value="3.0.2, 3.0.3, 3.0.4, 3.0.5, 3.0.6, 3.0.7, 3.0.7-PL1, 3.0.8, 3.0.9, 3.0.10, 3.0.11, 3.0.12, 3.0.13, 3.0.13-PL1" />
<!-- no configuration should be needed beyond this point -->
<property name="oldversions" value="${olderversions}, ${prevversion}" />
@@ -67,22 +67,22 @@
<exec dir="."
command="phpBB/vendor/bin/phpunit
--log-junit build/logs/phpunit.xml
--configuration phpunit.xml.all
--group slow
--coverage-clover build/logs/clover-slow.xml
--coverage-html build/coverage-slow"
passthru="true" />
</target>
<!-- Builds docs for current branch into build/api/output/master -->
<target name="docs">
<!-- only works if you setup phpdoctor:
git clone https://github.com/peej/phpdoctor.git
and then create an executable phpdoctor in your path containing
#!/bin/sh
php -f /path/to/phpdoctor/phpdoc.php $@
-->
<exec dir="build"
command="phpdoctor phpdoc-phpbb.ini"
<exec dir="."
command="phpBB/vendor/bin/sami.php update build/sami-checkout.conf.php"
passthru="true" />
</target>
<!-- Builds docs for multiple branches/tags into build/api/output/$branch -->
<target name="docs-all">
<exec dir="."
command="phpBB/vendor/bin/sami.php update build/sami-all.conf.php"
passthru="true" />
</target>
@@ -221,7 +221,7 @@
command="git archive ${revision} composer.phar | tar -xf - -C ${dir}"
checkreturn="true" />
<exec dir="${dir}"
command="php composer.phar install"
command="php composer.phar install --no-dev"
checkreturn="true"
passthru="true" />
<delete file="${dir}/composer.phar" />

View File

@@ -1,145 +0,0 @@
; Default configuration file for PHPDoctor
; This config file will cause PHPDoctor to generate API documentation of
; itself.
; PHPDoctor settings
; -----------------------------------------------------------------------------
; Names of files to parse. This can be a single filename, or a comma separated
; list of filenames. Wildcards are allowed.
files = "*.php"
; Names of files or directories to ignore. This can be a single filename, or a
; comma separated list of filenames. Wildcards are NOT allowed.
;ignore = "CVS, .svn, .git, _compiled"
ignore = templates_c/,*HTML/default/*,spec/,*config.php*,*CVS/,test_chora.php,testupdate/,cache/,store/,*proSilver/,develop/,includes/utf/data/,includes/captcha/fonts/,install/update/,install/update.new/,files/,*phpinfo.php*,*update_script.php*,*upgrade.php*,*convert.php*,install/converter/,language/de/,script/,*swatch.php*,*test.php*,*test2.php*,*install.php*,*functions_diff.php*,*acp_update.php*,acm_xcache.php
; The directory to look for files in, if not used the PHPDoctor will look in
; the current directory (the directory it is run from).
source_path = "../phpBB/"
; If you do not want PHPDoctor to look in each sub directory for files
; uncomment this line.
;subdirs = off
; Set how loud PHPDoctor is as it runs. Quiet mode suppresses all output other
; than warnings and errors. Verbose mode outputs additional messages during
; execution.
quiet = on
;verbose = on
; Select the doclet to use for generating output.
doclet = standard
;doclet = debug
; The directory to find the doclet in. Doclets control the HTML output of
; phpDoctor and can be modified to suit your needs. They are expected to be
; in a directory named after themselves at the location given.
;doclet_path = ./doclets
; Select the formatter to use for generating output.
;formatter = htmlStandardFormatter
; The directory to find the formatter in. Formatters convert textual markup
; for use by the doclet.
;formatter_path = ./formatters
; The directory to find taglets in. Taglets allow you to make PHPDoctor handle
; new tags and to alter the behavour of existing tags and their output.
;taglet_path = ./taglets
; If the code you are parsing does not use package tags or not all elements
; have package tags, use this setting to place unbound elements into a
; particular package.
default_package = "phpBB"
use_class_path_as_package = off
ignore_package_tags = off
; Specifies the name of a HTML file containing text for the overview
; documentation to be placed on the overview page. The path is relative to
; "source_path" unless an absolute path is given.
overview = ../README.md
; Package comments will be looked for in a file named package.html in the same
; directory as the first source file parsed in that package or in the directory
; given below. If package comments are placed in the directory given below then
; they should be named "<packageName>.html".
package_comment_dir = ./
; Parse out global variables and/or global constants?
;globals = off
;constants = off
; Generate documentation for all class members
;private = on
; Generate documentation for public and protected class members
;protected = on
; Generate documentation for only public class members
;public = on
; Use the PEAR compatible handling of the docblock first sentence
;pear_compat = on
; Standard doclet settings
; -----------------------------------------------------------------------------
; The directory to place generated documentation in. If the given path is
; relative to it will be relative to "source_path".
d = "../build/api/"
; Specifies the title to be placed in the HTML <title> tag.
windowtitle = "phpBB3"
; Specifies the title to be placed near the top of the overview summary file.
doctitle = "phpBB3 Sourcecode Documentation"
; Specifies the header text to be placed at the top of each output file. The
; header will be placed to the right of the upper navigation bar.
header = "phpBB3"
; Specifies the footer text to be placed at the bottom of each output file. The
; footer will be placed to the right of the lower navigation bar.
footer = "phpBB3"
; Specifies the text to be placed at the bottom of each output file. The text
; will be placed at the bottom of the page, below the lower navigation bar.
;bottom = "This document was generated by <a href="http://peej.github.com/phpdoctor/">PHPDoctor: The PHP Documentation Creator</a>"
; Create a class tree?
;tree = off
; Use GeSHi to include formatted source files in the documentation. PHPDoctor will look in the current doclet directory for a /geshi subdirectory. Unpack the GeSHi archive from http://qbnz.com/highlighter to get this directory - it will contain a php script and a subdirectory with formatting files.
include_source = off

30
build/sami-all.conf.php Normal file
View File

@@ -0,0 +1,30 @@
<?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.
*
*/
require __DIR__ . '/sami-checkout.conf.php';
$config['versions'] = Sami\Version\GitVersionCollection::create(__DIR__ . '/../')
/*
This would be nice, but currently causes various problems that need
debugging.
->addFromTags('release-3.0.*')
->add('3.0.x', '3.0-next (olympus)')
->addFromTags('release-3.1.*')
->add('3.1.x', '3.1-next (ascraeus)')
->add('master')
*/
->add('3.0.x')
->add('3.1.x')
;
return new Sami\Sami($iterator, $config);

View File

@@ -0,0 +1,44 @@
<?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.
*
*/
// Prevent 'Class "acm" does not exist.' exception on removeClass().
class PhpbbArrayStore extends Sami\Store\ArrayStore
{
public function removeClass(Sami\Project $project, $name)
{
unset($this->classes[$name]);
}
}
$iterator = Symfony\Component\Finder\Finder::create()
->files()
->name('*.php')
->in(__DIR__ . '/../phpBB/')
->notPath('#^cache/#')
->notPath('#^develop/#')
->notPath('#^ext/#')
->notPath('#^vendor/#')
->notPath('data')
;
$config = array(
'theme' => 'enhanced',
'title' => 'phpBB API Documentation',
'build_dir' => __DIR__.'/api/output/%version%',
'cache_dir' => __DIR__.'/api/cache/%version%',
'default_opened_level' => 2,
// Do not use JsonStore. See https://github.com/fabpot/Sami/issues/79
'store' => new PhpbbArrayStore,
);
return new Sami\Sami($iterator, $config);

Binary file not shown.

View File

@@ -5,26 +5,47 @@
#
# Calls the git commit-msg hook on all non-merge commits in a given commit range.
#
set -e
if [ "$#" -ne 1 ];
then
echo "Expected one argument (commit range, e.g. eef1b586...1666476b)."
echo "Expected one argument (commit range, e.g. phpbb/develop..ticket/12345)."
exit
fi
DIR=$(dirname "$0")
COMMIT_MSG_HOOK_PATH="$DIR/hooks/commit-msg"
COMMIT_RANGE="$1"
COMMIT_MSG_HOOK_PATH="$DIR/hooks/commit-msg"
COMMIT_MSG_HOOK_FATAL=$(git config --bool phpbb.hooks.commit-msg.fatal 2> /dev/null)
git config phpbb.hooks.commit-msg.fatal true
EXIT_STATUS=0
for COMMIT_HASH in $(git rev-list --no-merges "$COMMIT_RANGE")
do
echo "Inspecting commit message of commit $COMMIT_HASH"
# The git commit-msg hook takes a path to a file containing a commit
# message. So we have to extract the commit message into a file first,
# which then also needs to be deleted after our work is done.
COMMIT_MESSAGE_PATH="$DIR/commit_msg.$COMMIT_HASH"
git log -n 1 --pretty=format:%B "$COMMIT_HASH" > "$COMMIT_MESSAGE_PATH"
# Invoke hook on commit message file.
"$COMMIT_MSG_HOOK_PATH" "$COMMIT_MESSAGE_PATH"
# If any commit message hook complains with a non-zero exit status, we
# will send a non-zero exit status upstream.
if [ $? -ne 0 ]
then
EXIT_STATUS=1
fi
rm "$COMMIT_MESSAGE_PATH"
done
# Restore phpbb.hooks.commit-msg.fatal config
if [ -n "$COMMIT_MSG_HOOK_FATAL" ]
then
git config phpbb.hooks.commit-msg.fatal "$COMMIT_MSG_HOOK_FATAL"
fi
exit $EXIT_STATUS

View File

@@ -191,12 +191,12 @@ do
err=$ERR_HEADER;
echo "$line" | grep -Eq "^\[(ticket/[0-9]+|feature/$branch_regex|task/$branch_regex)\] .+$"
result=$?
if ! echo "$line" | grep -Eq "^\[(ticket/[0-9]+|feature/$branch_regex|task/$branch_regex)\] [A-Z].+$"
if ! echo "$line" | grep -Eq "^\[(ticket/[0-9]+|feature/$branch_regex|task/$branch_regex)\] [a-zA-Z].+$"
then
# Don't be too strict.
# Commits may be temporary, intended to be squashed later.
# Just issue a warning here.
complain "$severity: heading should be a sentence beginning with a capital letter." 1>&2
complain "$severity: heading should be a sentence beginning with a letter." 1>&2
complain "You entered:" 1>&2
complain "$line" 1>&2
fi

View File

@@ -8,12 +8,50 @@
#RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
#</IfModule>
<Files "config.php">
Order Allow,Deny
Deny from All
</Files>
<Files "common.php">
Order Allow,Deny
Deny from All
</Files>
# With Apache 2.4 the "Order, Deny" syntax has been deprecated and moved from
# module mod_authz_host to a new module called mod_access_compat (which may be
# disabled) and a new "Require" syntax has been introduced to mod_authz_host.
# We could just conditionally provide both versions, but unfortunately Apache
# does not explicitly tell us its version if the module mod_version is not
# available. In this case, we check for the availability of module
# mod_authz_core (which should be on 2.4 or higher only) as a best guess.
<IfModule mod_version.c>
<IfVersion < 2.4>
<Files "config.php">
Order Allow,Deny
Deny from All
</Files>
<Files "common.php">
Order Allow,Deny
Deny from All
</Files>
</IfVersion>
<IfVersion >= 2.4>
<Files "config.php">
Require all denied
</Files>
<Files "common.php">
Require all denied
</Files>
</IfVersion>
</IfModule>
<IfModule !mod_version.c>
<IfModule !mod_authz_core.c>
<Files "config.php">
Order Allow,Deny
Deny from All
</Files>
<Files "common.php">
Order Allow,Deny
Deny from All
</Files>
</IfModule>
<IfModule mod_authz_core.c>
<Files "config.php">
Require all denied
</Files>
<Files "common.php">
Require all denied
</Files>
</IfModule>
</IfModule>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.1 KiB

After

Width:  |  Height:  |  Size: 6.5 KiB

View File

@@ -524,6 +524,9 @@ function validate_config_vars($config_vars, &$cfg_array, &$error)
$cfg_array[$config_name] = trim($destination);
// Absolute file path
case 'absolute_path':
case 'absolute_path_writable':
// Path being relative (still prefixed by phpbb_root_path), but with the ability to escape the root dir...
case 'path':
case 'wpath':
@@ -542,20 +545,22 @@ function validate_config_vars($config_vars, &$cfg_array, &$error)
break;
}
if (!file_exists($phpbb_root_path . $cfg_array[$config_name]))
$path = in_array($config_definition['validate'], array('wpath', 'path', 'rpath', 'rwpath')) ? $phpbb_root_path . $cfg_array[$config_name] : $cfg_array[$config_name];
if (!file_exists($path))
{
$error[] = sprintf($user->lang['DIRECTORY_DOES_NOT_EXIST'], $cfg_array[$config_name]);
}
if (file_exists($phpbb_root_path . $cfg_array[$config_name]) && !is_dir($phpbb_root_path . $cfg_array[$config_name]))
if (file_exists($path) && !is_dir($path))
{
$error[] = sprintf($user->lang['DIRECTORY_NOT_DIR'], $cfg_array[$config_name]);
}
// Check if the path is writable
if ($config_definition['validate'] == 'wpath' || $config_definition['validate'] == 'rwpath')
if ($config_definition['validate'] == 'wpath' || $config_definition['validate'] == 'rwpath' || $config_definition['validate'] === 'absolute_path_writable')
{
if (file_exists($phpbb_root_path . $cfg_array[$config_name]) && !phpbb_is_writable($phpbb_root_path . $cfg_array[$config_name]))
if (file_exists($path) && !phpbb_is_writable($path))
{
$error[] = sprintf($user->lang['DIRECTORY_NOT_WRITABLE'], $cfg_array[$config_name]);
}

View File

@@ -19,7 +19,7 @@
<!-- ENDIF -->
<!-- IF NEXT_FEATURE_VERSION -->
<div class="errorbox">
<div class="errorbox notice">
<p>{UPGRADE_INSTRUCTIONS}</p>
</div>
<!-- ENDIF -->

View File

@@ -30,7 +30,7 @@
</dl>
<dl>
<dt><label>{L_POSTS}:</label></dt>
<dd><strong>{USER_POSTS}</strong><!-- IF POSTS_IN_QUEUE and U_MCP_QUEUE --> (<a href="{U_MCP_QUEUE}">{L_POSTS_IN_QUEUE}</a>)<!-- ELSEIF POSTS_IN_QUEUE --> ({L_POSTS_IN_QUEUE})<!-- ENDIF --></dd>
<dd><strong><!-- IF USER_HAS_POSTS and U_SEARCH_USER --><a href="{U_SEARCH_USER}">{USER_POSTS}</a><!-- ELSE -->{USER_POSTS}<!-- ENDIF --></strong><!-- IF POSTS_IN_QUEUE and U_MCP_QUEUE --> (<a href="{U_MCP_QUEUE}">{L_POSTS_IN_QUEUE}</a>)<!-- ELSEIF POSTS_IN_QUEUE --> ({L_POSTS_IN_QUEUE})<!-- ENDIF --></dd>
</dl>
<dl>
<dt><label>{L_WARNINGS}:</label></dt>

View File

@@ -292,7 +292,7 @@ function mozWrap(txtarea, open, close)
*/
function storeCaret(textEl)
{
if (textEl.createTextRange)
if (textEl.createTextRange && document.selection)
{
textEl.caretPos = document.selection.createRange().duplicate();
}

View File

@@ -1,8 +1,9 @@
{
"require-dev": {
"fabpot/goutte": "1.0.*",
"phpunit/dbunit": "1.2.*",
"phpunit/phpunit": "3.7.*",
"phing/phing": "2.4.*"
"phpunit/dbunit": "1.3.*",
"phpunit/phpunit": "4.1.*",
"phing/phing": "2.4.*",
"sami/sami": "1.*"
}
}

827
phpBB/composer.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -237,6 +237,19 @@ $supported_dbms = array('firebird', 'mssql', 'mysql_40', 'mysql_41', 'oracle', '
foreach ($supported_dbms as $dbms)
{
$schema_data = get_schema_struct();
if ($dbms == 'mssql')
{
foreach ($schema_data as $table_name => $table_data)
{
if (!isset($table_data['PRIMARY_KEY']))
{
$schema_data[$table_name]['COLUMNS']['mssqlindex'] = array('UINT', NULL, 'auto_increment');
$schema_data[$table_name]['PRIMARY_KEY'] = 'mssqlindex';
}
}
}
$fp = fopen($schema_path . $dbms . '_schema.sql', 'wb');
$line = '';
@@ -552,7 +565,7 @@ foreach ($supported_dbms as $dbms)
case 'mssql':
$line = substr($line, 0, -2);
$line .= "\n) ON [PRIMARY]" . (($textimage) ? ' TEXTIMAGE_ON [PRIMARY]' : '') . "\n";
$line .= "\n)";// ON [PRIMARY]" . (($textimage) ? ' TEXTIMAGE_ON [PRIMARY]' : '') . "\n";
$line .= "GO\n\n";
break;
}
@@ -589,7 +602,7 @@ foreach ($supported_dbms as $dbms)
$line .= "\tCONSTRAINT [PK_{$table_name}] PRIMARY KEY CLUSTERED \n";
$line .= "\t(\n";
$line .= "\t\t[" . implode("],\n\t\t[", $table_data['PRIMARY_KEY']) . "]\n";
$line .= "\t) ON [PRIMARY] \n";
$line .= "\t)\n";
$line .= "GO\n\n";
break;
@@ -684,7 +697,7 @@ foreach ($supported_dbms as $dbms)
case 'mssql':
$line .= ($key_data[0] == 'INDEX') ? 'CREATE INDEX' : '';
$line .= ($key_data[0] == 'UNIQUE') ? 'CREATE UNIQUE INDEX' : '';
$line .= " [{$key_name}] ON [{$table_name}]([" . implode('], [', $key_data[1]) . "]) ON [PRIMARY]\n";
$line .= " [{$key_name}] ON [{$table_name}]([" . implode('], [', $key_data[1]) . "])\n";
$line .= "GO\n\n";
break;

View File

@@ -0,0 +1,26 @@
#!/bin/sh
#
# @copyright (c) 2014 phpBB Group
# @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
#
if [ "$#" -ne 1 ]
then
SCRIPT=$(basename "$0")
echo "Description: Finds and strips ICC Profiles from given image file." >&2
echo "Usage: $SCRIPT /path/to/image/file" >&2
echo "Exit Status: 0 if no ICC profiles have been stripped, otherwise 1." >&2
echo "Requires: exiftool" >&2
exit 1
fi
FILE=$1
HASH_OLD=$(md5sum "$FILE")
exiftool -icc_profile"-<=" -overwrite_original_in_place "$FILE" > /dev/null 2>&1
HASH_NEW=$(md5sum "$FILE")
if [ "$HASH_OLD" != "$HASH_NEW" ]
then
echo "Stripped ICC Profile from $FILE."
exit 1
fi

View File

@@ -24,9 +24,10 @@ phpBB Lead Developer: naderman (Nils Adermann)
phpBB Developers: bantu (Andreas Fischer)
dhruv.goel92 (Dhruv Goel)
EXreaction (Nathan Guse)
imkingdavid (David King)
Elsensee (Oliver Schramm)
marc1706 (Marc Alexander)
nickvergessen (Joas Schilling)
Nicofuma (Tristan Darricau)
prototech (Cesar Gallegos)
Contributions by: leviatan21 (Gabriel Vazquez)
@@ -51,9 +52,11 @@ phpBB Developers: A_Jelly_Doughnut (Josh Woody) [01/2010 - 11/2010]
ckwalsh (Cullen Walsh) [01/2010 - 07/2011]
DavidMJ (David M.) [12/2005 - 08/2009]
dhn (Dominik Dröscher) [05/2007 - 01/2011]
EXreaction (Nathan Guse) [07/2012 - 05/2014]
GrahamJE (Graham Eames) [09/2005 - 11/2006]
kellanved (Henry Sudhof) [04/2007 - 03/2011]
igorw (Igor Wiedler) [08/2010 - 02/2013]
imkingdavid (David King) [11/2012 - 06/2014]
kellanved (Henry Sudhof) [04/2007 - 03/2011]
Oleg (Oleg Pudeyev) [01/2011 - 05/2013]
rxu (Ruslan Uzdenov) [04/2010 - 12/2012]
TerraFrost (Jim Wigginton) [04/2009 - 01/2011]

View File

@@ -52,7 +52,10 @@
<ol>
<li><a href="#changelog">Changelog</a>
<ol style="list-style-type: lower-roman;">
<ul>
<li><a href="#v3013-PL1">Changes since 3.0.13-PL1</a></li>
<li><a href="#v3013">Changes since 3.0.13</a></li>
<li><a href="#v3012">Changes since 3.0.12</a></li>
<li><a href="#v3011">Changes since 3.0.11</a></li>
<li><a href="#v3010">Changes since 3.0.10</a></li>
<li><a href="#v309">Changes since 3.0.9</a></li>
@@ -74,7 +77,7 @@
<li><a href="#v30rc3">Changes since RC-3</a></li>
<li><a href="#v30rc2">Changes since RC-2</a></li>
<li><a href="#v30rc1">Changes since RC-1</a></li>
</ol>
</ul>
</li>
<li><a href="#disclaimer">Copyright and disclaimer</a></li>
</ol>
@@ -93,7 +96,181 @@
<div class="content">
<a name="v3011"></a><h3>1.i. Changes since 3.0.11</h3>
<a name="v3013-PL1"></a><h3>Changes since 3.0.13-PL1</h3>
<h4>Security</h4>
<ul>
<li>[SECURITY-180] - An insufficient check allowed users of the Google Chrome browser to be redirected to external domains (e.g. on login)</li>
</ul>
<h4>Bug</h4>
<ul>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13348">PHPBB3-13348</a>] - sql_freeresult() should be called in feed base class</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13414">PHPBB3-13414</a>] - download/file.php sends Content-Length header even when issuing 304 Not Modified</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13555">PHPBB3-13555</a>] - Poll options preview rendered incorrectly by &lt;br /&gt; collision</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13568">PHPBB3-13568</a>] - Imagick path validated as relative path although ACP asks for absolute path</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13617">PHPBB3-13617</a>] - Bot session continuation with invalid f= query parameter causes SQL error</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13738">PHPBB3-13738</a>] - Sami still refers to develop-* branches</li>
</ul>
<h4>Improvement</h4>
<ul>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12089">PHPBB3-12089</a>] - Make HTTP status code assertion failure messages more informative</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13765">PHPBB3-13765</a>] - Verify that SERVER_PROTOCOL has the expected format</li>
</ul>
<h4>Task</h4>
<ul>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11539">PHPBB3-11539</a>] - Add unit tests for several functions in functions.php</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13572">PHPBB3-13572</a>] - Upgrade composer to 1.0.0-alpha9</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13599">PHPBB3-13599</a>] - Remove PHP 5.2 Travis environment</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13634">PHPBB3-13634</a>] - Update README to show new branch names</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13723">PHPBB3-13723</a>] - Update docs/AUTHORS for 3.0.14-RC1 / 3.1.4-RC1</li>
</ul>
<a name="v3013"></a><h3>Changes since 3.0.13</h3>
<h4>Bug</h4>
<ul>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12933">PHPBB3-12933</a>] - The search operator for partial matches does not work</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13549">PHPBB3-13549</a>] - Compare ORIG_PATH_INFO with SCRIPT_NAME for checking trailing paths</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13554">PHPBB3-13554</a>] - Advertisement of feature release in red indicates a problem</li>
</ul>
<a name="v3012"></a><h3>Changes since 3.0.12</h3>
<h4>Security</h4>
<ul>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13531">PHPBB3-13531</a>] - Disallow trailing paths (e.g. using the PATH_INFO feature) to prevent path-relative CSS injection</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13526">PHPBB3-13526</a>] - Correctly validate ucp_pm_options form key</li>
</ul>
<h4>Bug</h4>
<ul>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-6703">PHPBB3-6703</a>] - Problem with russian letter while converting from 2.0.x</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-8960">PHPBB3-8960</a>] - Allow changing allow_avatar_remote when images/avatars/upload is not writable</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-9420">PHPBB3-9420</a>] - BBCode - Unable to use a proper URI token</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-9724">PHPBB3-9724</a>] - Wrong return &quot;Return to ACP&quot;</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-9725">PHPBB3-9725</a>] - MSSQL Schema is not azure compatible</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-10023">PHPBB3-10023</a>] - Password change requirement notification in UCP is not noticable</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-10423">PHPBB3-10423</a>] - Searching for the term &quot;test *&quot; will highlight nearly every word and displays htmlspecialchars as htmlentities.</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-10442">PHPBB3-10442</a>] - XHTML is invalid when a forum link without redirect counter is present</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-10687">PHPBB3-10687</a>] - UNABLE_GET_IMAGE_SIZE text misleading for remote avatars</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-10729">PHPBB3-10729</a>] - Post editor information is not updated when user being deleted with posts</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-10776">PHPBB3-10776</a>] - Grammar errors in docs/README.html</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-10796">PHPBB3-10796</a>] - SQL Azure does not allow SELECT FROM sysfiles</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-10851">PHPBB3-10851</a>] - HTML files containing certain tags being rejected as possible attack vectors with &quot;Check attachment file&quot; set to &quot;No&quot;</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-10863">PHPBB3-10863</a>] - Permission mask does not accurately show some forum permissions if user has MOD parmissions</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-10917">PHPBB3-10917</a>] - Updater notice &quot;Update files are out of date...&quot; when updating to unreleased version</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-10985">PHPBB3-10985</a>] - Error bbcode.html not found when updating with custom style inheriting from prosilver</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11062">PHPBB3-11062</a>] - In Automatic Update, new language strings from install.php are only loaded from English</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11224">PHPBB3-11224</a>] - SQL cache destroy does not destroy queries to tables joined</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11288">PHPBB3-11288</a>] - &quot;Fulltext native&quot; search fooled by hyphens</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11480">PHPBB3-11480</a>] - Prevent Private Message system from returning &quot;Unknown folder&quot; when inbox folder is full</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11613">PHPBB3-11613</a>] - Cookies do not work for netbios domain</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11686">PHPBB3-11686</a>] - Not checking for phpBB Debug errors on functional tests</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11699">PHPBB3-11699</a>] - PHP Lint Test should exclude selected subdirectories of the build directory.</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11726">PHPBB3-11726</a>] - Don't run lint tests on Travis on postgres</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11762">PHPBB3-11762</a>] - generate_text_for_display() treats &quot;0&quot; as an empty string</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11789">PHPBB3-11789</a>] - Inline css with color value in subsilver2</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11794">PHPBB3-11794</a>] - Coding Guidelines document says to place a comma after every array element, but fails to do so itself</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11799">PHPBB3-11799</a>] - Anti Abuse Headers missing for sendpassword</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11811">PHPBB3-11811</a>] - Chrome 30 adds outline to focused elements</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11821">PHPBB3-11821</a>] - Wrong comma usage &quot;You are receiving this notification&quot;</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11823">PHPBB3-11823</a>] - Travis-CI webserver not matching PHP files with anything after the .php</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11829">PHPBB3-11829</a>] - Closed reports may seem open in detailed view</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11860">PHPBB3-11860</a>] - .htaccess not working for Apache 2.4</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11864">PHPBB3-11864</a>] - Do not call exit after display_progress_bar in acp_forums</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11879">PHPBB3-11879</a>] - Compatibility error in forum_fn.js: .live should be replaced with .on</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11968">PHPBB3-11968</a>] - Travis Image are broken due to repository rename</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12037">PHPBB3-12037</a>] - acp_inactive.html has hard-coded text</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12048">PHPBB3-12048</a>] - Custom BBCodes Fail to Render Language Strings with a Number</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12061">PHPBB3-12061</a>] - Keyboard shortcut alt+h doesn't work properly in firefox</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12072">PHPBB3-12072</a>] - Missing word &quot;send&quot; in comment in schema_data.sql</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12093">PHPBB3-12093</a>] - IE 11 javascript selection is no longer supported</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12118">PHPBB3-12118</a>] - Add noindex meta tag to subsilver2 pm/topic view-print template</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12119">PHPBB3-12119</a>] - Remove keywords and description meta tags from prosilver view-print templates</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12120">PHPBB3-12120</a>] - Update docs/AUTHORS for 3.0.13-RC1</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12140">PHPBB3-12140</a>] - Avoid endless loop in build script</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12161">PHPBB3-12161</a>] - build/save directories are no longer created</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12162">PHPBB3-12162</a>] - Binary files missing from update packages</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12176">PHPBB3-12176</a>] - No error shown when attempting to delete a founder</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12186">PHPBB3-12186</a>] - MCP should open &quot;Reported posts&quot; instead of PM Reports</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12188">PHPBB3-12188</a>] - Add php 5.6 to travis tests</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12202">PHPBB3-12202</a>] - Variables read from style.cfg etc. should be htmlspecialchared</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12205">PHPBB3-12205</a>] - Custom Profile Field display bug</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12210">PHPBB3-12210</a>] - dbtools::sql_create_table incorrectly throws error related to auto-increment length on non auto-increment fields</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12310">PHPBB3-12310</a>] - SMTP username and password should not autocomplete during install</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12316">PHPBB3-12316</a>] - develop-ascraeus build status missing from &quot;Automated Testing&quot; section in README.md</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12353">PHPBB3-12353</a>] - User attachments in ACP are not displaying every attachment</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12359">PHPBB3-12359</a>] - Day and Month of Birthday Misaligned When Editing</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12381">PHPBB3-12381</a>] - Broken error message when selecting invalid DB driver</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12397">PHPBB3-12397</a>] - db_tools::sql_unique_index_exists() has wrong doc block</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12429">PHPBB3-12429</a>] - Update phpunit to 3.8+</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12467">PHPBB3-12467</a>] - Add config_*.php and tests_config_*.php to .gitignore</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12472">PHPBB3-12472</a>] - Set fast finish for .travis.yml</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12485">PHPBB3-12485</a>] - Broken tests due to absolute exclude</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12492">PHPBB3-12492</a>] - DB_TEST: Special chars are not supported.</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12540">PHPBB3-12540</a>] - WRONG_FILESIZE contains broken placeholders</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12660">PHPBB3-12660</a>] - Undefined offset error when phpinfo() disabled and debug enabled</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12695">PHPBB3-12695</a>] - Undefined index: MISSING_INLINE_ATTACHMENT notice given when viewing post details</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12720">PHPBB3-12720</a>] - Git commit hook should not require commit message to start with a capital letter</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12741">PHPBB3-12741</a>] - Functional tests on Travis fail since php update last night</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12755">PHPBB3-12755</a>] - Remote upload stuck in infinite loop if server sends keep-alive</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13086">PHPBB3-13086</a>] - Update ACP_MASS_EMAIL_EXPLAIN language key</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13096">PHPBB3-13096</a>] - ldap_escape() added to PHP 5.6.0</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13138">PHPBB3-13138</a>] - Banned users cause infinite recursion</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13168">PHPBB3-13168</a>] - Warning displayed in PHP 5.6 for mbstring.http_input</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13234">PHPBB3-13234</a>] - Remember me cookie gets unset by admin reauthentication</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13341">PHPBB3-13341</a>] - Tests fail when generating coverage report</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13376">PHPBB3-13376</a>] - deregister_globals() does not work correctly when $_COOKIE['GLOBALS'] - is specified</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13519">PHPBB3-13519</a>] - Correctly validate imagick path as path and not string</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13523">PHPBB3-13523</a>] - PHP 5.2 Unit Tests no longer work due to deprecated PHPUnit PEAR channel</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13527">PHPBB3-13527</a>] - Escape information received from version server</li>
</ul>
<h4>Improvement</h4>
<ul>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-10037">PHPBB3-10037</a>] - Add Smiley Buttons in Signature Editor</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-10174">PHPBB3-10174</a>] - Rename &quot;Ban usernames&quot; to &quot;Ban users&quot; in ACP</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-10549">PHPBB3-10549</a>] - Languages variables should be used, not hardcoded</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-10555">PHPBB3-10555</a>] - Copyright notice in overall_header.html is not translatable</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-10945">PHPBB3-10945</a>] - Show entered search query in the search box when no results are found.</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11254">PHPBB3-11254</a>] - Check CRLF line endings in the test suite</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11295">PHPBB3-11295</a>] - Drop tables for postgres in the test suite</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11297">PHPBB3-11297</a>] - Running tests doc should mention dbunit dependency</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11704">PHPBB3-11704</a>] - phing build script does not include vendor folder, even if there are dependencies</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11766">PHPBB3-11766</a>] - Remove Quote and Edit button when topic is lock</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11801">PHPBB3-11801</a>] - missing semi colons in css</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11814">PHPBB3-11814</a>] - Topic reply notification email text change</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12035">PHPBB3-12035</a>] - Add a link to user's posts in the ACP user overview page</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12106">PHPBB3-12106</a>] - Document exceptions to &quot;Disable Board&quot; in ACP.</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12146">PHPBB3-12146</a>] - Add color demo when editing a group from the UCP</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12247">PHPBB3-12247</a>] - include poster's username in email notifications of posts that get approved by moderators</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12259">PHPBB3-12259</a>] - Too many redundant tests are run on Travis</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12468">PHPBB3-12468</a>] - Allow mbstring.http_input='' besides 'pass' for PHP 5.6 compatibility</li>
</ul>
<h4>Task</h4>
<ul>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-10839">PHPBB3-10839</a>] - Remove phpunit.xml.functional and always include functional tests</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11509">PHPBB3-11509</a>] - Travis should check commit message format</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11876">PHPBB3-11876</a>] - Upgrade package checksums from MD5 to SHA256</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11877">PHPBB3-11877</a>] - Create package download links and checksums for announcement via script</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11920">PHPBB3-11920</a>] - Add MariaDB tests to Travis-CI</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11951">PHPBB3-11951</a>] - Add MariaDB to supported RDBMS list</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-11970">PHPBB3-11970</a>] - Use 'set -x' in Travis CI setup scripts</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12046">PHPBB3-12046</a>] - Use PHP_BINARY environment variable in lint unit test</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12056">PHPBB3-12056</a>] - Make sure each unit test runs on its own</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12147">PHPBB3-12147</a>] - Remove Travis CI notification configuration</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12302">PHPBB3-12302</a>] - Upgrade composer.phar to 1.0.0-alpha8</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12318">PHPBB3-12318</a>] - Correctly setup HHVM functional tests on Travis CI</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12319">PHPBB3-12319</a>] - Backport Travis CI HHVM environment enabling to develop-olympus.</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12320">PHPBB3-12320</a>] - No longer allow Travis CI HHVM environment to fail</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12341">PHPBB3-12341</a>] - Add tests for get_username_string()</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12384">PHPBB3-12384</a>] - Run Travis CI HHVM tests against MySQLi instead of MySQL</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12417">PHPBB3-12417</a>] - hhvm-nightly 2014.04.16~precise breaks tests</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12495">PHPBB3-12495</a>] - Add Sami to composer dependencies and build script</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12582">PHPBB3-12582</a>] - Strip away copyrighted ICC profile from images</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-12917">PHPBB3-12917</a>] - Move commit check and file executable checks to 5.3.3 build on travis</li>
<li>[<a href="http://tracker.phpbb.com/browse/PHPBB3-13324">PHPBB3-13324</a>] - Composer no longer downloads sami/sami and fabpot/goutte</li>
</ul>
<a name="v3011"></a><h3>Changes since 3.0.11</h3>
<h4>Bug</h4>
<ul>
@@ -248,7 +425,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.ii. Changes since 3.0.10</h3>
<a name="v3010"></a><h3>Changes since 3.0.10</h3>
<h4>Bug</h4>
<ul>
@@ -373,7 +550,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.iii. Changes since 3.0.9</h3>
<a name="v309"></a><h3>Changes since 3.0.9</h3>
<h4>Bug</h4>
<ul>
@@ -509,7 +686,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.iv. Changes since 3.0.8</h3>
<a name="v308"></a><h3>Changes since 3.0.8</h3>
<h4> Bug
</h4>
@@ -574,7 +751,7 @@
</li>
<li>[<a href='http://tracker.phpbb.com/browse/PHPBB3-9924'>PHPBB3-9924</a>] - $template-&gt;display hook does not pass $template instance
</li>
<li>[<a href='http://tracker.phpbb.com/browse/PHPBB3-9925'>PHPBB3-9925</a>] - prosilver logo margin bug in IE 6-7-8
<li>[<a href='http://tracker.phpbb.com/browse/PHPBB3-9925'>PHPBB3-9925</a>] - prosilver logo margin bug in IE 6-7-8
</li>
<li>[<a href='http://tracker.phpbb.com/browse/PHPBB3-9928'>PHPBB3-9928</a>] - Do not link &quot;login to your board&quot; to the &quot;send statistics&quot; page after completed update.
</li>
@@ -582,7 +759,7 @@
</li>
<li>[<a href='http://tracker.phpbb.com/browse/PHPBB3-9932'>PHPBB3-9932</a>] - The Bing bot is not added when converting.
</li>
<li>[<a href='http://tracker.phpbb.com/browse/PHPBB3-9933'>PHPBB3-9933</a>] - Wrong handling of consecutive multiple asterisks in word censor
<li>[<a href='http://tracker.phpbb.com/browse/PHPBB3-9933'>PHPBB3-9933</a>] - Wrong handling of consecutive multiple asterisks in word censor
</li>
<li>[<a href='http://tracker.phpbb.com/browse/PHPBB3-9934'>PHPBB3-9934</a>] - Mass Mail missing under the system tab on a fresh install
</li>
@@ -594,7 +771,7 @@
</li>
<li>[<a href='http://tracker.phpbb.com/browse/PHPBB3-9948'>PHPBB3-9948</a>] - Inline quicktime files won&#39;t display
</li>
<li>[<a href='http://tracker.phpbb.com/browse/PHPBB3-9949'>PHPBB3-9949</a>] - $user-&gt;lang() is not handling arguments as per documentation
<li>[<a href='http://tracker.phpbb.com/browse/PHPBB3-9949'>PHPBB3-9949</a>] - $user-&gt;lang() is not handling arguments as per documentation
</li>
<li>[<a href='http://tracker.phpbb.com/browse/PHPBB3-9950'>PHPBB3-9950</a>] - Problem with localized button images after uprading from 3.0.7-PL1 to 3.0.8
</li>
@@ -757,7 +934,7 @@
<li>[<a href='http://tracker.phpbb.com/browse/PHPBB3-10250'>PHPBB3-10250</a>] - phpBB Logo needs the Registered Trademark Symbol
</li>
</ul>
<h4> Improvement
</h4>
<ul>
@@ -814,7 +991,7 @@
<li>[<a href='http://tracker.phpbb.com/browse/PHPBB3-10186'>PHPBB3-10186</a>] - UCP signature panel displays when not authed for signatures
</li>
</ul>
<h4> New Feature
</h4>
<ul>
@@ -825,7 +1002,7 @@
<li>[<a href='http://tracker.phpbb.com/browse/PHPBB3-10110'>PHPBB3-10110</a>] - Redis caching module
</li>
</ul>
<h4> Task
</h4>
<ul>
@@ -864,7 +1041,7 @@
<li>[<a href='http://tracker.phpbb.com/browse/PHPBB3-10107'>PHPBB3-10107</a>] - Improve docs for non-apache webserver configuration
</li>
</ul>
<h4> Sub-task
</h4>
<ul>
@@ -877,7 +1054,7 @@
</ul>
<a name="v307-PL1"></a><h3>1.v. Changes since 3.0.7-PL1</h3>
<a name="v307-PL1"></a><h3>Changes since 3.0.7-PL1</h3>
<h4> Security
</h4>
<ul>
@@ -1335,13 +1512,13 @@
</ul>
<a name="v307"></a><h3>1.vi. Changes since 3.0.7</h3>
<a name="v307"></a><h3>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.vii. Changes since 3.0.6</h3>
<a name="v306"></a><h3>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>
@@ -1445,7 +1622,7 @@
</ul>
<a name="v305"></a><h3>1.viii. Changes since 3.0.5</h3>
<a name="v305"></a><h3>Changes since 3.0.5</h3>
<ul>
<li>[Fix] Allow whitespaces in avatar gallery names. (Bug #44955)</li>
@@ -1667,7 +1844,7 @@
<li>[Feature] Send anonymous statistical information to phpBB on installation and update (optional).</li>
</ul>
<a name="v304"></a><h3>1.ix. Changes since 3.0.4</h3>
<a name="v304"></a><h3>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>
@@ -1756,7 +1933,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.x. Changes since 3.0.3</h3>
<a name="v303"></a><h3>Changes since 3.0.3</h3>
<ul>
<li>[Fix] Allow mixed-case template directories to be inherited (Bug #36725)</li>
@@ -1788,7 +1965,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.xi. Changes since 3.0.2</h3>
<a name="v302"></a><h3>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>
@@ -1887,7 +2064,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.xii. Changes since 3.0.1</h3>
<a name="v301"></a><h3>Changes since 3.0.1</h3>
<ul>
<li>[Fix] Ability to set permissions on non-mysql dbms (Bug #24955)</li>
@@ -1935,7 +2112,7 @@
<li>[Sec] Only allow urls gone through redirect() being used within login_box(). (thanks nookieman)</li>
</ul>
<a name="v300"></a><h3>1.xiii Changes since 3.0.0</h3>
<a name="v300"></a><h3>Changes since 3.0.0</h3>
<ul>
<li>[Change] Validate birthdays (Bug #15004)</li>
@@ -2006,7 +2183,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.xiv. Changes since 3.0.RC8</h3>
<a name="v30rc8"></a><h3>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>
@@ -2015,7 +2192,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.xv. Changes since 3.0.RC7</h3>
<a name="v30rc7"></a><h3>Changes since 3.0.RC7</h3>
<ul>
<li>[Fix] Fixed MSSQL related bug in the update system</li>
@@ -2050,7 +2227,7 @@
<li>[Fix] No duplication of active topics (Bug #15474)</li>
</ul>
<a name="v30rc6"></a><h3>1.xvi. Changes since 3.0.RC6</h3>
<a name="v30rc6"></a><h3>Changes since 3.0.RC6</h3>
<ul>
<li>[Fix] Submitting language changes using acp_language (Bug #14736)</li>
@@ -2060,7 +2237,7 @@
<li>[Fix] Able to request new password (Bug #14743)</li>
</ul>
<a name="v30rc5"></a><h3>1.xvii. Changes since 3.0.RC5</h3>
<a name="v30rc5"></a><h3>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>
@@ -2123,7 +2300,7 @@
<li>[Sec] New password hashing mechanism for storing passwords (#i42)</li>
</ul>
<a name="v30rc4"></a><h3>1.xviii. Changes since 3.0.RC4</h3>
<a name="v30rc4"></a><h3>Changes since 3.0.RC4</h3>
<ul>
<li>[Fix] MySQL, PostgreSQL and SQLite related database fixes (Bug #13862)</li>
@@ -2174,7 +2351,7 @@
<li>[Fix] odbc_autocommit causing existing result sets to be dropped (Bug #14182)</li>
</ul>
<a name="v30rc3"></a><h3>1.xix. Changes since 3.0.RC3</h3>
<a name="v30rc3"></a><h3>Changes since 3.0.RC3</h3>
<ul>
<li>[Fix] Fixing some subsilver2 and prosilver style issues</li>
@@ -2283,7 +2460,7 @@
</ul>
<a name="v30rc2"></a><h3>1.xx. Changes since 3.0.RC2</h3>
<a name="v30rc2"></a><h3>Changes since 3.0.RC2</h3>
<ul>
<li>[Fix] Re-allow searching within the memberlist</li>
@@ -2329,7 +2506,7 @@
</ul>
<a name="v30rc1"></a><h3>1.xxi. Changes since 3.0.RC1</h3>
<a name="v30rc1"></a><h3>Changes since 3.0.RC1</h3>
<ul>
<li>[Fix] (X)HTML issues within the templates (Bug #11255, #11255)</li>

View File

@@ -276,7 +276,7 @@
<p>This package is meant for those wanting to only replace the files that were changed between a previous version and the latest version.</p>
<p>This package contains a number of archives, each contains the files changed from a given release to the latest version. You should select the appropriate archive for your current version, e.g. if you currently have <strong>3.0.11</strong> you should select the appropriate <code>phpBB-3.0.12-files.zip/tar.bz2</code> file.</p>
<p>This package contains a number of archives, each contains the files changed from a given release to the latest version. You should select the appropriate archive for your current version, e.g. if you currently have <strong>3.0.13</strong> you should select the appropriate <code>phpBB-3.0.14-files.zip/tar.bz2</code> file.</p>
<p>The directory structure has been preserved, enabling you (if you wish) to simply upload the uncompressed contents of the archive to the appropriate location on your server, i.e. simply overwrite the existing files with the new versions. Do not forget that if you have installed any modifications (MODs) these files will overwrite the originals, possibly destroying them in the process. You will need to re-add MODs to any affected file before uploading.</p>
@@ -288,7 +288,7 @@
<p>The patch file is one solution for those with many Modifications (MODs) or other changes and do not want to re-add them back to all the changed files. To use this you will need command line access to a standard UNIX type <strong>patch</strong> application. If you do not have access to such an application, but still want to use this update approach, we strongly recommend the <a href="#update_auto">Automatic update package</a> explained below. It is also the recommended update method.</p>
<p>A number of patch files are provided to allow you to update from previous stable releases. Select the correct patch, e.g. if your current version is <strong>3.0.11</strong>, you need the <code>phpBB-3.0.12-patch.zip/tar.bz2</code> file. Place the correct patch in the parent directory containing the phpBB core files (i.e. index.php, viewforum.php, etc.). With this done you should run the following command: <code>patch -cl -d [PHPBB DIRECTORY] -p1 &lt; [PATCH NAME]</code> (where PHPBB DIRECTORY is the directory name your phpBB Installation resides in, for example phpBB, and where PATCH NAME is the relevant filename of the selected patch file). This should complete quickly, hopefully without any HUNK FAILED comments.</p>
<p>A number of patch files are provided to allow you to update from previous stable releases. Select the correct patch, e.g. if your current version is <strong>3.0.13</strong>, you need the <code>phpBB-3.0.14-patch.zip/tar.bz2</code> file. Place the correct patch in the parent directory containing the phpBB core files (i.e. index.php, viewforum.php, etc.). With this done you should run the following command: <code>patch -cl -d [PHPBB DIRECTORY] -p1 &lt; [PATCH NAME]</code> (where PHPBB DIRECTORY is the directory name your phpBB Installation resides in, for example phpBB, and where PATCH NAME is the relevant filename of the selected patch file). This should complete quickly, hopefully without any HUNK FAILED comments.</p>
<p>If you do get failures, you should look at using the <a href="#update_files">Changed Files</a> package to replace the files which failed to patch. Please note that you will need to manually re-add any MODs to these particular files. Alternatively, if you know how, you can examine the .rej files to determine what failed where and make manual adjustments to the relevant source.</p>
@@ -298,7 +298,7 @@
<p>This update method is the recommended method for updating. This package detects changed files automatically and merges in changes if needed.</p>
<p>The automatic update package will update the board from a given version to the latest version. A number of automatic update files are available, and you should choose the one that corresponds to the version of the board that you are currently running. For example, if your current version is <strong>3.0.11</strong>, you need the <code>phpBB-3.0.11_to_3.0.12.zip/tar.bz2</code> file.</p>
<p>The automatic update package will update the board from a given version to the latest version. A number of automatic update files are available, and you should choose the one that corresponds to the version of the board that you are currently running. For example, if your current version is <strong>3.0.13</strong>, you need the <code>phpBB-3.0.13_to_3.0.14.zip/tar.bz2</code> file.</p>
<p>To perform the update, either follow the instructions from the <strong>Administration Control Panel-&gt;System</strong> Tab - this should point out that you are running an outdated version and will guide you through the update - or follow the instructions listed below.</p>

View File

@@ -509,16 +509,18 @@ function send_file_to_browser($attachment, $upload_dir, $category)
}
}
if ($size)
{
header("Content-Length: $size");
}
// Close the db connection before sending the file
$db->sql_close();
if (!set_modified_headers($attachment['filetime'], $user->browser))
{
// Send Content-Length only if set_modified_headers() does not send
// status 304 - Not Modified
if ($size)
{
header("Content-Length: $size");
}
// Try to deliver in chunks
@set_time_limit(0);

View File

@@ -464,6 +464,9 @@ class phpbb_feed_base
*/
var $separator_stats = "\xE2\x80\x94"; // &mdash;
/** @var mixed Query result handle */
var $result;
/**
* Constructor
*/
@@ -617,10 +620,9 @@ class phpbb_feed_base
function get_item()
{
global $db, $cache;
static $result;
global $db;
if (!isset($result))
if (!isset($this->result))
{
if (!$this->get_sql())
{
@@ -629,10 +631,10 @@ class phpbb_feed_base
// Query database
$sql = $db->sql_build_query('SELECT', $this->sql);
$result = $db->sql_query_limit($sql, $this->num_items);
$this->result = $db->sql_query_limit($sql, $this->num_items);
}
return $db->sql_fetchrow($result);
return $db->sql_fetchrow($this->result);
}
function user_viewprofile($row)

View File

@@ -292,12 +292,24 @@ class acm_memory
// determine which tables this query belongs to
// Some queries use backticks, namely the get_database_size() query
// don't check for conformity, the SQL would error and not reach here.
if (!preg_match('/FROM \\(?(`?\\w+`?(?: \\w+)?(?:, ?`?\\w+`?(?: \\w+)?)*)\\)?/', $query, $regs))
if (!preg_match_all('/(?:FROM \\(?(`?\\w+`?(?: \\w+)?(?:, ?`?\\w+`?(?: \\w+)?)*)\\)?)|(?:JOIN (`?\\w+`?(?: \\w+)?))/', $query, $regs, PREG_SET_ORDER))
{
// Bail out if the match fails.
return;
}
$tables = array_map('trim', explode(',', $regs[1]));
$tables = array();
foreach ($regs as $match)
{
if ($match[0][0] == 'F')
{
$tables = array_merge($tables, array_map('trim', explode(',', $match[1])));
}
else
{
$tables[] = $match[2];
}
}
foreach ($tables as $table_name)
{

View File

@@ -127,7 +127,7 @@ class acp_attachments
'img_create_thumbnail' => array('lang' => 'CREATE_THUMBNAIL', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
'img_max_thumb_width' => array('lang' => 'MAX_THUMB_WIDTH', 'validate' => 'int', 'type' => 'text:7:15', 'explain' => true, 'append' => ' ' . $user->lang['PIXEL']),
'img_min_thumb_filesize' => array('lang' => 'MIN_THUMB_FILESIZE', 'validate' => 'int', 'type' => 'text:7:15', 'explain' => true, 'append' => ' ' . $user->lang['BYTES']),
'img_imagick' => array('lang' => 'IMAGICK_PATH', 'validate' => 'string', 'type' => 'text:20:200', 'explain' => true, 'append' => '&nbsp;&nbsp;<span>[ <a href="' . $this->u_action . '&amp;action=imgmagick">' . $user->lang['SEARCH_IMAGICK'] . '</a> ]</span>'),
'img_imagick' => array('lang' => 'IMAGICK_PATH', 'validate' => 'absolute_path', 'type' => 'text:20:200', 'explain' => true, 'append' => '&nbsp;&nbsp;<span>[ <a href="' . $this->u_action . '&amp;action=imgmagick">' . $user->lang['SEARCH_IMAGICK'] . '</a> ]</span>'),
'img_max' => array('lang' => 'MAX_IMAGE_SIZE', 'validate' => 'int', 'type' => 'dimension:3:4', 'explain' => true, 'append' => ' ' . $user->lang['PIXEL']),
'img_link' => array('lang' => 'IMAGE_LINK_SIZE', 'validate' => 'int', 'type' => 'dimension:3:4', 'explain' => true, 'append' => ' ' . $user->lang['PIXEL']),
)

View File

@@ -123,7 +123,7 @@ class acp_board
'avatar_filesize' => array('lang' => 'MAX_FILESIZE', 'validate' => 'int:0', 'type' => 'text:4:10', 'explain' => true, 'append' => ' ' . $user->lang['BYTES']),
'avatar_min' => array('lang' => 'MIN_AVATAR_SIZE', 'validate' => 'int:0', 'type' => 'dimension:3:4', 'explain' => true, 'append' => ' ' . $user->lang['PIXEL']),
'avatar_max' => array('lang' => 'MAX_AVATAR_SIZE', 'validate' => 'int:0', 'type' => 'dimension:3:4', 'explain' => true, 'append' => ' ' . $user->lang['PIXEL']),
'avatar_path' => array('lang' => 'AVATAR_STORAGE_PATH', 'validate' => 'rwpath', 'type' => 'text:20:255', 'explain' => true),
'avatar_path' => array('lang' => 'AVATAR_STORAGE_PATH', 'validate' => 'rpath', 'type' => 'text:20:255', 'explain' => true),
'avatar_gallery_path' => array('lang' => 'AVATAR_GALLERY_PATH', 'validate' => 'rpath', 'type' => 'text:20:255', 'explain' => true)
)
);

View File

@@ -606,8 +606,8 @@ class acp_main
'S_MBSTRING_LOADED' => true,
'S_MBSTRING_FUNC_OVERLOAD_FAIL' => (intval(@ini_get('mbstring.func_overload')) & (MB_OVERLOAD_MAIL | MB_OVERLOAD_STRING)),
'S_MBSTRING_ENCODING_TRANSLATION_FAIL' => (@ini_get('mbstring.encoding_translation') != 0),
'S_MBSTRING_HTTP_INPUT_FAIL' => (@ini_get('mbstring.http_input') != 'pass'),
'S_MBSTRING_HTTP_OUTPUT_FAIL' => (@ini_get('mbstring.http_output') != 'pass'),
'S_MBSTRING_HTTP_INPUT_FAIL' => !in_array(@ini_get('mbstring.http_input'), array('pass', '')),
'S_MBSTRING_HTTP_OUTPUT_FAIL' => !in_array(@ini_get('mbstring.http_output'), array('pass', '')),
));
}

View File

@@ -47,7 +47,7 @@ class acp_php_info
// for this was nabbed from the PHP annotated manual
preg_match_all('#<body[^>]*>(.*)</body>#si', $phpinfo, $output);
if (empty($phpinfo) || empty($output))
if (empty($phpinfo) || empty($output[1][0]))
{
trigger_error('NO_PHPINFO_AVAILABLE', E_USER_WARNING);
}

View File

@@ -34,10 +34,7 @@ class acp_update
$this->page_title = 'ACP_VERSION_CHECK';
// Get current and latest version
$errstr = '';
$errno = 0;
$info = obtain_latest_version_info(request_var('versioncheck_force', false));
$info = htmlspecialchars(obtain_latest_version_info(request_var('versioncheck_force', false)));
if (empty($info))
{

View File

@@ -172,8 +172,7 @@ class acp_users
if ($submit)
{
// You can't delete the founder
if ($delete && $user_row['user_type'] != USER_FOUNDER)
if ($delete)
{
if (!$auth->acl_get('a_userdel'))
{
@@ -186,6 +185,12 @@ class acp_users
trigger_error($user->lang['CANNOT_REMOVE_ANONYMOUS'] . adm_back_link($this->u_action . '&amp;u=' . $user_id), E_USER_WARNING);
}
// Founders can not be deleted.
if ($user_row['user_type'] == USER_FOUNDER)
{
trigger_error($user->lang['CANNOT_REMOVE_FOUNDER'] . adm_back_link($this->u_action . '&amp;u=' . $user_id), E_USER_WARNING);
}
if ($user_id == $user->data['user_id'])
{
trigger_error($user->lang['CANNOT_REMOVE_YOURSELF'] . adm_back_link($this->u_action . '&amp;u=' . $user_id), E_USER_WARNING);
@@ -1032,6 +1037,7 @@ class acp_users
'U_SHOW_IP' => $this->u_action . "&amp;u=$user_id&amp;ip=" . (($ip == 'ip') ? 'hostname' : 'ip'),
'U_WHOIS' => $this->u_action . "&amp;action=whois&amp;user_ip={$user_row['user_ip']}",
'U_MCP_QUEUE' => ($auth->acl_getf_global('m_approve')) ? append_sid("{$phpbb_root_path}mcp.$phpEx", 'i=queue', true, $user->session_id) : '',
'U_SEARCH_USER' => ($config['load_search'] && $auth->acl_get('u_search')) ? append_sid("{$phpbb_root_path}search.$phpEx", "author_id={$user_row['user_id']}&amp;sr=posts") : '',
'U_SWITCH_PERMISSIONS' => ($auth->acl_get('a_switchperm') && $user->data['user_id'] != $user_row['user_id']) ? append_sid("{$phpbb_root_path}ucp.$phpEx", "mode=switch_perm&amp;u={$user_row['user_id']}&amp;hash=" . generate_link_hash('switchperm')) : '',
@@ -2009,7 +2015,7 @@ class acp_users
WHERE a.poster_id = ' . $user_id . "
AND a.is_orphan = 0
ORDER BY $order_by";
$result = $db->sql_query_limit($sql, $config['posts_per_page'], $start);
$result = $db->sql_query_limit($sql, $config['topics_per_page'], $start);
while ($row = $db->sql_fetchrow($result))
{

View File

@@ -282,7 +282,7 @@ function ldap_user_filter($username)
{
global $config;
$filter = '(' . $config['ldap_uid'] . '=' . ldap_escape(htmlspecialchars_decode($username)) . ')';
$filter = '(' . $config['ldap_uid'] . '=' . phpbb_ldap_escape(htmlspecialchars_decode($username)) . ')';
if ($config['ldap_user_filter'])
{
$_filter = ($config['ldap_user_filter'][0] == '(' && substr($config['ldap_user_filter'], -1) == ')') ? $config['ldap_user_filter'] : "({$config['ldap_user_filter']})";
@@ -294,7 +294,7 @@ function ldap_user_filter($username)
/**
* Escapes an LDAP AttributeValue
*/
function ldap_escape($string)
function phpbb_ldap_escape($string)
{
return str_replace(array('*', '\\', '(', ')'), array('\\*', '\\\\', '\\(', '\\)'), $string);
}

View File

@@ -135,6 +135,11 @@ class bbcode
$this->template_bitfield = new bitfield($user->theme['bbcode_bitfield']);
$this->template_filename = $phpbb_root_path . 'styles/' . $user->theme['template_path'] . '/template/bbcode.html';
if (empty($user->theme['template_inherits_id']) && !empty($template->orig_tpl_inherits_id))
{
$user->theme['template_inherits_id'] = $template->orig_tpl_inherits_id;
}
if (!@file_exists($this->template_filename))
{
if (isset($user->theme['template_inherits_id']) && $user->theme['template_inherits_id'])

View File

@@ -25,7 +25,7 @@ if (!defined('IN_PHPBB'))
*/
// phpBB Version
define('PHPBB_VERSION', '3.0.13-dev');
define('PHPBB_VERSION', '3.0.14');
// QA-related
// define('PHPBB_QA', 1);

View File

@@ -452,9 +452,6 @@ class phpbb_db_tools
// Determine if we have created a PRIMARY KEY in the earliest
$primary_key_gen = false;
// Determine if the table must be created with TEXTIMAGE
$create_textimage = false;
// Determine if the table requires a sequence
$create_sequence = false;
@@ -471,13 +468,22 @@ class phpbb_db_tools
break;
}
if ($this->sql_layer == 'mssql' || $this->sql_layer == 'mssqlnative')
{
if (!isset($table_data['PRIMARY_KEY']))
{
$table_data['COLUMNS']['mssqlindex'] = array('UINT', null, 'auto_increment');
$table_data['PRIMARY_KEY'] = 'mssqlindex';
}
}
// Iterate through the columns to create a table
foreach ($table_data['COLUMNS'] as $column_name => $column_data)
{
// here lies an array, filled with information compiled on the column's data
$prepared_column = $this->sql_prepare_column_data($table_name, $column_name, $column_data);
if (isset($prepared_column['auto_increment']) && strlen($column_name) > 26) // "${column_name}_gen"
if (isset($prepared_column['auto_increment']) && $prepared_column['auto_increment'] && strlen($column_name) > 26) // "${column_name}_gen"
{
trigger_error("Index name '${column_name}_gen' on table '$table_name' is too long. The maximum auto increment column length is 26 characters.", E_USER_ERROR);
}
@@ -501,12 +507,6 @@ class phpbb_db_tools
$primary_key_gen = isset($prepared_column['primary_key_set']) && $prepared_column['primary_key_set'];
}
// create textimage DDL based off of the existance of certain column types
if (!$create_textimage)
{
$create_textimage = isset($prepared_column['textimage']) && $prepared_column['textimage'];
}
// create sequence DDL based off of the existance of auto incrementing columns
if (!$create_sequence && isset($prepared_column['auto_increment']) && $prepared_column['auto_increment'])
{
@@ -521,13 +521,9 @@ class phpbb_db_tools
switch ($this->sql_layer)
{
case 'firebird':
$table_sql .= "\n);";
$statements[] = $table_sql;
break;
case 'mssql':
case 'mssqlnative':
$table_sql .= "\n) ON [PRIMARY]" . (($create_textimage) ? ' TEXTIMAGE_ON [PRIMARY]' : '');
$table_sql .= "\n);";
$statements[] = $table_sql;
break;
}
@@ -879,7 +875,7 @@ class phpbb_db_tools
}
}
// Add unqiue indexes?
// Add unique indexes?
if (!empty($schema_changes['add_unique_index']))
{
foreach ($schema_changes['add_unique_index'] as $table => $index_array)
@@ -1290,7 +1286,7 @@ class phpbb_db_tools
}
/**
* Check if a specified index exists in table. Does not return PRIMARY KEY and UNIQUE indexes.
* Check if a specified index exists in table. Does not return PRIMARY KEY indexes.
*
* @param string $table_name Table to check the index at
* @param string $index_name The index name to check
@@ -1819,22 +1815,49 @@ class phpbb_db_tools
case 'mssql':
case 'mssqlnative':
// remove default cosntraints first
// http://msdn.microsoft.com/en-us/library/aa175912%28v=sql.80%29.aspx
$statements[] = "DECLARE @drop_default_name VARCHAR(100), @cmd VARCHAR(1000)
SET @drop_default_name =
(SELECT so.name FROM sysobjects so
JOIN sysconstraints sc ON so.id = sc.constid
WHERE object_name(so.parent_obj) = '{$table_name}'
AND so.xtype = 'D'
AND sc.colid = (SELECT colid FROM syscolumns
WHERE id = object_id('{$table_name}')
AND name = '{$column_name}'))
IF @drop_default_name <> ''
BEGIN
SET @cmd = 'ALTER TABLE [{$table_name}] DROP CONSTRAINT [' + @drop_default_name + ']'
EXEC(@cmd)
END";
$sql = "SELECT CAST(SERVERPROPERTY('productversion') AS VARCHAR(25)) AS mssql_version";
$result = $this->db->sql_query($sql);
$row = $this->db->sql_fetchrow($result);
$this->db->sql_freeresult($result);
// Remove default constraints
if ($row['mssql_version'][0] == '8') // SQL Server 2000
{
// http://msdn.microsoft.com/en-us/library/aa175912%28v=sql.80%29.aspx
// Deprecated in SQL Server 2005
$statements[] = "DECLARE @drop_default_name VARCHAR(100), @cmd VARCHAR(1000)
SET @drop_default_name =
(SELECT so.name FROM sysobjects so
JOIN sysconstraints sc ON so.id = sc.constid
WHERE object_name(so.parent_obj) = '{$table_name}'
AND so.xtype = 'D'
AND sc.colid = (SELECT colid FROM syscolumns
WHERE id = object_id('{$table_name}')
AND name = '{$column_name}'))
IF @drop_default_name <> ''
BEGIN
SET @cmd = 'ALTER TABLE [{$table_name}] DROP CONSTRAINT [' + @drop_default_name + ']'
EXEC(@cmd)
END";
}
else
{
$sql = "SELECT dobj.name AS def_name
FROM sys.columns col
LEFT OUTER JOIN sys.objects dobj ON (dobj.object_id = col.default_object_id AND dobj.type = 'D')
WHERE col.object_id = object_id('{$table_name}')
AND col.name = '{$column_name}'
AND dobj.name IS NOT NULL";
$result = $this->db->sql_query($sql);
$row = $this->db->sql_fetchrow($result);
$this->db->sql_freeresult($result);
if ($row)
{
$statements[] = 'ALTER TABLE [' . $table_name . '] DROP CONSTRAINT [' . $row['def_name'] . ']';
}
}
$statements[] = 'ALTER TABLE [' . $table_name . '] DROP COLUMN [' . $column_name . ']';
break;
@@ -2038,7 +2061,7 @@ class phpbb_db_tools
$sql = "ALTER TABLE [{$table_name}] WITH NOCHECK ADD ";
$sql .= "CONSTRAINT [PK_{$table_name}] PRIMARY KEY CLUSTERED (";
$sql .= '[' . implode("],\n\t\t[", $column) . ']';
$sql .= ') ON [PRIMARY]';
$sql .= ')';
$statements[] = $sql;
break;
@@ -2136,7 +2159,7 @@ class phpbb_db_tools
case 'mssql':
case 'mssqlnative':
$statements[] = 'CREATE UNIQUE INDEX ' . $index_name . ' ON ' . $table_name . '(' . implode(', ', $column) . ') ON [PRIMARY]';
$statements[] = 'CREATE UNIQUE INDEX ' . $index_name . ' ON ' . $table_name . '(' . implode(', ', $column) . ')';
break;
}
@@ -2189,7 +2212,7 @@ class phpbb_db_tools
case 'mssql':
case 'mssqlnative':
$statements[] = 'CREATE INDEX ' . $index_name . ' ON ' . $table_name . '(' . implode(', ', $column) . ') ON [PRIMARY]';
$statements[] = 'CREATE INDEX ' . $index_name . ' ON ' . $table_name . '(' . implode(', ', $column) . ')';
break;
}
@@ -2321,23 +2344,48 @@ class phpbb_db_tools
if (!empty($column_data['default']))
{
$sql = "SELECT CAST(SERVERPROPERTY('productversion') AS VARCHAR(25)) AS mssql_version";
$result = $this->db->sql_query($sql);
$row = $this->db->sql_fetchrow($result);
$this->db->sql_freeresult($result);
// Using TRANSACT-SQL for this statement because we do not want to have colliding data if statements are executed at a later stage
$statements[] = "DECLARE @drop_default_name VARCHAR(100), @cmd VARCHAR(1000)
SET @drop_default_name =
(SELECT so.name FROM sysobjects so
JOIN sysconstraints sc ON so.id = sc.constid
WHERE object_name(so.parent_obj) = '{$table_name}'
AND so.xtype = 'D'
AND sc.colid = (SELECT colid FROM syscolumns
WHERE id = object_id('{$table_name}')
AND name = '{$column_name}'))
IF @drop_default_name <> ''
BEGIN
SET @cmd = 'ALTER TABLE [{$table_name}] DROP CONSTRAINT [' + @drop_default_name + ']'
EXEC(@cmd)
END
SET @cmd = 'ALTER TABLE [{$table_name}] ADD CONSTRAINT [DF_{$table_name}_{$column_name}_1] {$column_data['default']} FOR [{$column_name}]'
EXEC(@cmd)";
if ($row['mssql_version'][0] == '8') // SQL Server 2000
{
$statements[] = "DECLARE @drop_default_name VARCHAR(100), @cmd VARCHAR(1000)
SET @drop_default_name =
(SELECT so.name FROM sysobjects so
JOIN sysconstraints sc ON so.id = sc.constid
WHERE object_name(so.parent_obj) = '{$table_name}'
AND so.xtype = 'D'
AND sc.colid = (SELECT colid FROM syscolumns
WHERE id = object_id('{$table_name}')
AND name = '{$column_name}'))
IF @drop_default_name <> ''
BEGIN
SET @cmd = 'ALTER TABLE [{$table_name}] DROP CONSTRAINT [' + @drop_default_name + ']'
EXEC(@cmd)
END
SET @cmd = 'ALTER TABLE [{$table_name}] ADD CONSTRAINT [DF_{$table_name}_{$column_name}_1] {$column_data['default']} FOR [{$column_name}]'
EXEC(@cmd)";
}
else
{
$statements[] = "DECLARE @drop_default_name VARCHAR(100), @cmd VARCHAR(1000)
SET @drop_default_name =
(SELECT dobj.name FROM sys.columns col
LEFT OUTER JOIN sys.objects dobj ON (dobj.object_id = col.default_object_id AND dobj.type = 'D')
WHERE col.object_id = object_id('{$table_name}')
AND col.name = '{$column_name}'
AND dobj.name IS NOT NULL)
IF @drop_default_name <> ''
BEGIN
SET @cmd = 'ALTER TABLE [{$table_name}] DROP CONSTRAINT [' + @drop_default_name + ']'
EXEC(@cmd)
END
SET @cmd = 'ALTER TABLE [{$table_name}] ADD CONSTRAINT [DF_{$table_name}_{$column_name}_1] {$column_data['default']} FOR [{$column_name}]'
EXEC(@cmd)";
}
}
break;

View File

@@ -2492,7 +2492,7 @@ function redirect($url, $return = false, $disable_cd_check = false)
// Attention: only able to redirect within the same domain if $disable_cd_check is false (yourdomain.com -> www.yourdomain.com will not work)
if (!$disable_cd_check && $url_parts['host'] !== $user->host)
{
$url = generate_board_url();
trigger_error('Tried to redirect to potentially insecure url.', E_USER_ERROR);
}
}
else if ($url[0] == '/')
@@ -2579,6 +2579,12 @@ function redirect($url, $return = false, $disable_cd_check = false)
}
}
// Make sure we don't redirect to external URLs
if (!$disable_cd_check && strpos($url, generate_board_url(true) . '/') !== 0)
{
trigger_error('Tried to redirect to potentially insecure url.', E_USER_ERROR);
}
// Make sure no linebreaks are there... to prevent http response splitting for PHP < 4.4.2
if (strpos(urldecode($url), "\n") !== false || strpos(urldecode($url), "\r") !== false || strpos($url, ';') !== false)
{
@@ -2782,7 +2788,7 @@ function send_status_line($code, $message)
}
else
{
if (!empty($_SERVER['SERVER_PROTOCOL']))
if (!empty($_SERVER['SERVER_PROTOCOL']) && is_string($_SERVER['SERVER_PROTOCOL']) && preg_match('#^HTTP/[0-9]\.[0-9]$#', $_SERVER['SERVER_PROTOCOL']))
{
$version = $_SERVER['SERVER_PROTOCOL'];
}
@@ -3367,7 +3373,7 @@ function parse_cfg_file($filename, $lines = false)
}
// Determine first occurrence, since in values the equal sign is allowed
$key = strtolower(trim(substr($line, 0, $delim_pos)));
$key = htmlspecialchars(strtolower(trim(substr($line, 0, $delim_pos))));
$value = trim(substr($line, $delim_pos + 1));
if (in_array($value, array('off', 'false', '0')))
@@ -3384,7 +3390,11 @@ function parse_cfg_file($filename, $lines = false)
}
else if (($value[0] == "'" && $value[sizeof($value) - 1] == "'") || ($value[0] == '"' && $value[sizeof($value) - 1] == '"'))
{
$value = substr($value, 1, sizeof($value)-2);
$value = htmlspecialchars(substr($value, 1, sizeof($value)-2));
}
else
{
$value = htmlspecialchars($value);
}
$parsed_items[$key] = $value;

View File

@@ -3057,8 +3057,24 @@ function get_database_size()
case 'mssql':
case 'mssql_odbc':
case 'mssqlnative':
$sql = 'SELECT @@VERSION AS mssql_version';
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
$sql = 'SELECT ((SUM(size) * 8.0) * 1024.0) as dbsize
FROM sysfiles';
if ($row)
{
// Azure stats are stored elsewhere
if (strpos($row['mssql_version'], 'SQL Azure') !== false)
{
$sql = 'SELECT ((SUM(reserved_page_count) * 8.0) * 1024.0) as dbsize
FROM sys.dm_db_partition_stats';
}
}
$result = $db->sql_query($sql, 7200);
$database_size = ($row = $db->sql_fetchrow($result)) ? $row['dbsize'] : false;
$db->sql_freeresult($result);

View File

@@ -21,6 +21,7 @@ if (!defined('IN_PHPBB'))
* make_jumpbox()
* bump_topic_allowed()
* get_context()
* phpbb_clean_search_string()
* decode_message()
* strip_bbcode()
* generate_text_for_display()
@@ -360,6 +361,23 @@ function get_context($text, $words, $length = 400)
}
}
/**
* Cleans a search string by removing single wildcards from it and replacing multiple spaces with a single one.
*
* @param string $search_string The full search string which should be cleaned.
*
* @return string The cleaned search string without any wildcards and multiple spaces.
*/
function phpbb_clean_search_string($search_string)
{
// This regular expressions matches every single wildcard.
// That means one after a whitespace or the beginning of the string or one before a whitespace or the end of the string.
$search_string = preg_replace('#(?<=^|\s)\*+(?=\s|$)#', '', $search_string);
$search_string = trim($search_string);
$search_string = preg_replace(array('#\s+#u', '#\*+#u'), array(' ', '*'), $search_string);
return $search_string;
}
/**
* Decode text whereby text is coming from the db and expected to be pre-parsed content
* We are placing this outside of the message parser because we are often in need of it...

View File

@@ -309,7 +309,7 @@ function connect_check_db($error_connect, &$error, $dbms_details, $table_prefix,
if (is_array($db->sql_connect($dbhost, $dbuser, $dbpasswd, $dbname, $dbport, false, true)))
{
$db_error = $db->sql_error();
$error[] = $lang['INST_ERR_DB_CONNECT'] . '<br />' . (($db_error['message']) ? $db_error['message'] : $lang['INST_ERR_DB_NO_ERROR']);
$error[] = $lang['INST_ERR_DB_CONNECT'] . '<br />' . (($db_error['message']) ? utf8_convert_message($db_error['message']) : $lang['INST_ERR_DB_NO_ERROR']);
}
else
{

View File

@@ -436,21 +436,21 @@ class p_master
if ($this->active_module === false)
{
trigger_error('Module not accessible', E_USER_ERROR);
trigger_error('MODULE_NOT_ACCESS', E_USER_ERROR);
}
if (!class_exists("{$this->p_class}_$this->p_name"))
{
if (!file_exists("$module_path/{$this->p_class}_$this->p_name.$phpEx"))
{
trigger_error("Cannot find module $module_path/{$this->p_class}_$this->p_name.$phpEx", E_USER_ERROR);
trigger_error($user->lang('MODULE_NOT_FIND', "$module_path/{$this->p_class}_$this->p_name.$phpEx"), E_USER_ERROR);
}
include("$module_path/{$this->p_class}_$this->p_name.$phpEx");
if (!class_exists("{$this->p_class}_$this->p_name"))
{
trigger_error("Module file $module_path/{$this->p_class}_$this->p_name.$phpEx does not contain correct class [{$this->p_class}_$this->p_name]", E_USER_ERROR);
trigger_error($user->lang('MODULE_FILE_INCORRECT_CLASS', "$module_path/{$this->p_class}_$this->p_name.$phpEx", "{$this->p_class}_$this->p_name"), E_USER_ERROR);
}
if (!empty($mode))

View File

@@ -394,6 +394,10 @@ function upload_attachment($form_name, $forum_id, $local = false, $local_storage
{
$upload->set_disallowed_content(explode('|', $config['mime_triggers']));
}
else if (!$config['check_attachment_content'])
{
$upload->set_disallowed_content(array());
}
if (!$local)
{

View File

@@ -208,7 +208,7 @@ function get_folder($user_id, $folder_id = false)
);
}
if ($folder_id !== false && !isset($folder[$folder_id]))
if ($folder_id !== false && $folder_id !== PRIVMSGS_HOLD_BOX && !isset($folder[$folder_id]))
{
trigger_error('UNKNOWN_FOLDER');
}

View File

@@ -532,7 +532,7 @@ class custom_profile
switch ($this->profile_types[$field_type])
{
case 'int':
if ($value === '' && !$ident_ary['data']['field_show_novalue'])
if (($value === '' || $value === null) && !$ident_ary['data']['field_show_novalue'])
{
return NULL;
}

View File

@@ -466,6 +466,9 @@ class fileupload
var $max_height = 0;
var $error_prefix = '';
/** @var int Timeout for remote upload */
var $upload_timeout = 6;
/**
* Init file upload class.
*
@@ -795,13 +798,28 @@ class fileupload
fputs($fsock, "HOST: " . $host . "\r\n");
fputs($fsock, "Connection: close\r\n\r\n");
// Set a proper timeout for the socket
socket_set_timeout($fsock, $this->upload_timeout);
$get_info = false;
$data = '';
while (!@feof($fsock))
$length = false;
$timer_stop = time() + $this->upload_timeout;
while ((!$length || $filesize < $length) && !@feof($fsock))
{
if ($get_info)
{
$block = @fread($fsock, 1024);
if ($length)
{
// Don't attempt to read past end of file if server indicated length
$block = @fread($fsock, min($length - $filesize, 1024));
}
else
{
$block = @fread($fsock, 1024);
}
$filesize += strlen($block);
if ($remote_max_filesize && $filesize > $remote_max_filesize)
@@ -847,6 +865,15 @@ class fileupload
}
}
}
$stream_meta_data = stream_get_meta_data($fsock);
// Cancel upload if we exceed timeout
if (!empty($stream_meta_data['timed_out']) || time() >= $timer_stop)
{
$file = new fileerror($user->lang[$this->error_prefix . 'REMOTE_UPLOAD_TIMEOUT']);
return $file;
}
}
@fclose($fsock);

View File

@@ -329,11 +329,16 @@ function user_add($user_row, $cp_data = false)
}
/**
* Remove User
*/
* Remove User
*
* @param string $mode 'retain' or 'remove'
* @param int $user_id
* @param mixed $post_username
* @return bool
*/
function user_delete($mode, $user_id, $post_username = false)
{
global $cache, $config, $db, $user, $auth;
global $cache, $config, $db, $user;
global $phpbb_root_path, $phpEx;
$sql = 'SELECT *
@@ -439,11 +444,6 @@ function user_delete($mode, $user_id, $post_username = false)
WHERE poster_id = $user_id";
$db->sql_query($sql);
$sql = 'UPDATE ' . POSTS_TABLE . '
SET post_edit_user = ' . ANONYMOUS . "
WHERE post_edit_user = $user_id";
$db->sql_query($sql);
$sql = 'UPDATE ' . TOPICS_TABLE . '
SET topic_poster = ' . ANONYMOUS . ", topic_first_poster_name = '" . $db->sql_escape($post_username) . "', topic_first_poster_colour = ''
WHERE topic_poster = $user_id";
@@ -501,6 +501,18 @@ function user_delete($mode, $user_id, $post_username = false)
$cache->destroy('sql', MODERATOR_CACHE_TABLE);
// Change user_id to anonymous for posts edited by this user
$sql = 'UPDATE ' . POSTS_TABLE . '
SET post_edit_user = ' . ANONYMOUS . '
WHERE post_edit_user = ' . $user_id;
$db->sql_query($sql);
// Change user_id to anonymous for pms edited by this user
$sql = 'UPDATE ' . PRIVMSGS_TABLE . '
SET message_edit_user = ' . ANONYMOUS . '
WHERE message_edit_user = ' . $user_id;
$db->sql_query($sql);
// Delete user log entries about this user
$sql = 'DELETE FROM ' . LOG_TABLE . '
WHERE reportee_id = ' . $user_id;

View File

@@ -20,7 +20,7 @@ class mcp_pm_reports_info
'title' => 'MCP_PM_REPORTS',
'version' => '1.0.0',
'modes' => array(
'pm_reports' => array('title' => 'MCP_PM_REPORTS_OPEN', 'auth' => 'aclf_m_report', 'cat' => array('MCP_REPORTS')),
'pm_reports' => array('title' => 'MCP_PM_REPORTS_OPEN', 'auth' => 'aclf_m_report', 'cat' => array('MCP_REPORTS')),
'pm_reports_closed' => array('title' => 'MCP_PM_REPORTS_CLOSED', 'auth' => 'aclf_m_report', 'cat' => array('MCP_REPORTS')),
'pm_report_details' => array('title' => 'MCP_PM_REPORT_DETAILS', 'auth' => 'aclf_m_report', 'cat' => array('MCP_REPORTS')),
),

View File

@@ -157,6 +157,7 @@ function mcp_post_details($id, $mode, $action)
if (sizeof($attachments))
{
$user->add_lang('viewtopic');
$update_count = array();
parse_attachments($post_info['forum_id'], $message, $attachments, $update_count);
}

View File

@@ -660,15 +660,17 @@ function approve_post($post_id_list, $id, $mode)
foreach ($post_info as $post_id => $post_data)
{
$username = ($post_data['post_username']) ? $post_data['post_username'] : $post_data['username'];
if ($post_id == $post_data['topic_first_post_id'] && $post_id == $post_data['topic_last_post_id'])
{
// Forum Notifications
user_notification('post', $post_data['topic_title'], $post_data['topic_title'], $post_data['forum_name'], $post_data['forum_id'], $post_data['topic_id'], $post_id);
user_notification('post', $post_data['topic_title'], $post_data['topic_title'], $post_data['forum_name'], $post_data['forum_id'], $post_data['topic_id'], $post_id, $username);
}
else
{
// Topic Notifications
user_notification('reply', $post_data['post_subject'], $post_data['topic_title'], $post_data['forum_name'], $post_data['forum_id'], $post_data['topic_id'], $post_id);
user_notification('reply', $post_data['post_subject'], $post_data['topic_title'], $post_data['forum_name'], $post_data['forum_id'], $post_data['topic_id'], $post_id, $username);
}
}

View File

@@ -204,7 +204,7 @@ class fulltext_native extends search_backend
$this->search_query = $keywords;
$exact_words = array();
preg_match_all('#([^\\s+\\-|*()]+)(?:$|[\\s+\\-|()])#u', $keywords, $exact_words);
preg_match_all('#([^\\s+\\-|()]+)(?:$|[\\s+\\-|()])#u', $keywords, $exact_words);
$exact_words = $exact_words[1];
$common_ids = $words = array();
@@ -231,7 +231,12 @@ class fulltext_native extends search_backend
}
$db->sql_freeresult($result);
}
unset($exact_words);
// Handle +, - without preceeding whitespace character
$match = array('#(\S)\+#', '#(\S)-#');
$replace = array('$1 +', '$1 +');
$keywords = preg_replace($match, $replace, $keywords);
// now analyse the search query, first split it using the spaces
$query = explode(' ', $keywords);
@@ -357,39 +362,21 @@ class fulltext_native extends search_backend
$this->{$mode . '_ids'}[] = $words[$word];
}
}
// throw an error if we shall not ignore unexistant words
else if (!$ignore_no_id)
else
{
if (!isset($common_ids[$word]))
{
$len = utf8_strlen($word);
if ($len >= $this->word_length['min'] && $len <= $this->word_length['max'])
{
trigger_error(sprintf($user->lang['WORD_IN_NO_POST'], $word));
}
else
if ($len < $this->word_length['min'] || $len > $this->word_length['max'])
{
$this->common_words[] = $word;
}
}
}
else
{
$len = utf8_strlen($word);
if ($len < $this->word_length['min'] || $len > $this->word_length['max'])
{
$this->common_words[] = $word;
}
}
}
// we can't search for negatives only
if (!sizeof($this->must_contain_ids))
{
return false;
}
if (!empty($this->search_query))
// Return true if all words are not common words
if (sizeof($exact_words) - sizeof($this->common_words) > 0)
{
return true;
}
@@ -428,6 +415,12 @@ class fulltext_native extends search_backend
return false;
}
// we can't search for negatives only
if (empty($this->must_contain_ids))
{
return false;
}
$must_contain_ids = $this->must_contain_ids;
$must_not_contain_ids = $this->must_not_contain_ids;
$must_exclude_one_ids = $this->must_exclude_one_ids;

View File

@@ -121,6 +121,8 @@ class session
$script_path .= (substr($script_path, -1, 1) == '/') ? '' : '/';
$root_script_path .= (substr($root_script_path, -1, 1) == '/') ? '' : '/';
$forum_id = (isset($_REQUEST['f']) && $_REQUEST['f'] > 0 && $_REQUEST['f'] < 16777215) ? (int) $_REQUEST['f'] : 0;
$page_array += array(
'page_name' => $page_name,
'page_dir' => $page_dir,
@@ -130,7 +132,7 @@ class session
'root_script_path' => str_replace(' ', '%20', htmlspecialchars($root_script_path)),
'page' => $page,
'forum' => (isset($_REQUEST['f']) && $_REQUEST['f'] > 0) ? (int) $_REQUEST['f'] : 0,
'forum' => $forum_id,
);
return $page_array;
@@ -556,7 +558,12 @@ class session
$method = 'autologin_' . $method;
if (function_exists($method))
{
$this->data = $method();
$user_data = $method();
if ($user_id === false || (isset($user_data['user_id']) && $user_id == $user_data['user_id']))
{
$this->data = $user_data;
}
if (sizeof($this->data))
{
@@ -576,11 +583,18 @@ class session
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);
$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);
$bot = false;
}
else if ($user_id !== false && !sizeof($this->data))
if ($user_id !== false && !sizeof($this->data))
{
$this->cookie_data['k'] = '';
$this->cookie_data['u'] = $user_id;
@@ -1037,7 +1051,7 @@ class session
$name_data = rawurlencode($config['cookie_name'] . '_' . $name) . '=' . rawurlencode($cookiedata);
$expire = gmdate('D, d-M-Y H:i:s \\G\\M\\T', $cookietime);
$domain = (!$config['cookie_domain'] || $config['cookie_domain'] == 'localhost' || $config['cookie_domain'] == '127.0.0.1') ? '' : '; domain=' . $config['cookie_domain'];
$domain = (!$config['cookie_domain'] || $config['cookie_domain'] == '127.0.0.1' || strpos($config['cookie_domain'], '.') === false) ? '' : '; domain=' . $config['cookie_domain'];
header('Set-Cookie: ' . $name_data . (($cookietime) ? '; expires=' . $expire : '') . '; path=' . $config['cookie_path'] . $domain . ((!$config['cookie_secure']) ? '' : '; secure') . '; HttpOnly', false);
}

View File

@@ -80,31 +80,13 @@ function deregister_globals()
{
if (isset($not_unset[$varname]))
{
// Hacking attempt. No point in continuing unless it's a COOKIE (so a cookie called GLOBALS doesn't lock users out completely)
if ($varname !== 'GLOBALS' || isset($_GET['GLOBALS']) || isset($_POST['GLOBALS']) || isset($_SERVER['GLOBALS']) || isset($_SESSION['GLOBALS']) || isset($_ENV['GLOBALS']) || isset($_FILES['GLOBALS']))
// Hacking attempt. No point in continuing.
if (isset($_COOKIE[$varname]))
{
exit;
}
else
{
$cookie = &$_COOKIE;
while (isset($cookie['GLOBALS']))
{
if (!is_array($cookie['GLOBALS']))
{
break;
}
foreach ($cookie['GLOBALS'] as $registered_var => $value)
{
if (!isset($not_unset[$registered_var]))
{
unset($GLOBALS[$registered_var]);
}
}
$cookie = &$cookie['GLOBALS'];
}
echo "Clear your cookies. ";
}
echo "Malicious variable name detected. Contact the administrator and ask them to disable register_globals.";
exit;
}
unset($GLOBALS[$varname]);
@@ -113,6 +95,54 @@ function deregister_globals()
unset($input);
}
/**
* Check if requested page uses a trailing path
*
* @param string $phpEx PHP extension
*
* @return bool True if trailing path is used, false if not
*/
function phpbb_has_trailing_path($phpEx)
{
// Check if path_info is being used
if (!empty($_SERVER['PATH_INFO']) || (!empty($_SERVER['ORIG_PATH_INFO']) && $_SERVER['SCRIPT_NAME'] != $_SERVER['ORIG_PATH_INFO']))
{
return true;
}
// Match any trailing path appended to a php script in the REQUEST_URI.
// It is assumed that only actual PHP scripts use names like foo.php. Due
// to this, any phpBB board inside a directory that has the php extension
// appended to its name will stop working, i.e. if the board is at
// example.com/phpBB/test.php/ or example.com/test.php/
if (preg_match('#^[^?]+\.' . preg_quote($phpEx, '#') . '/#', $_SERVER['REQUEST_URI']))
{
return true;
}
return false;
}
// Check if trailing path is used
if (phpbb_has_trailing_path($phpEx))
{
if (substr(strtolower(@php_sapi_name()), 0, 3) === 'cgi')
{
$prefix = 'Status:';
}
else if (!empty($_SERVER['SERVER_PROTOCOL']) && is_string($_SERVER['SERVER_PROTOCOL']) && preg_match('#^HTTP/[0-9]\.[0-9]$#', $_SERVER['SERVER_PROTOCOL']))
{
$prefix = $_SERVER['SERVER_PROTOCOL'];
}
else
{
$prefix = 'HTTP/1.0';
}
header("$prefix 404 Not Found", true, 404);
echo 'Trailing paths and PATH_INFO is not supported by phpBB 3.0';
exit;
}
// Register globals and magic quotes have been dropped in PHP 5.4
if (version_compare(PHP_VERSION, '5.4.0-dev', '>='))
{

View File

@@ -29,7 +29,11 @@ function message_options($id, $mode, $global_privmsgs_rules, $global_rule_condit
// Change "full folder" setting - what to do if folder is full
if (isset($_POST['fullfolder']))
{
check_form_key('ucp_pm_options', $config['form_token_lifetime'], $redirect_url);
if (!check_form_key('ucp_pm_options'))
{
trigger_error('FORM_INVALID');
}
$full_action = request_var('full_action', 0);
$set_folder_id = 0;

View File

@@ -32,7 +32,7 @@ unset($dbpasswd);
$convertor_data = array(
'forum_name' => 'phpBB 2.0.x',
'version' => '1.0.3',
'phpbb_version' => '3.0.12',
'phpbb_version' => '3.0.14',
'author' => '<a href="https://www.phpbb.com/">phpBB Group</a>',
'dbms' => $dbms,
'dbhost' => $dbhost,

View File

@@ -8,7 +8,7 @@
*
*/
define('UPDATES_TO_VERSION', '3.0.13-dev');
define('UPDATES_TO_VERSION', '3.0.14');
// Enter any version to update from to test updates. The version within the db will not be updated.
define('DEBUG_FROM_VERSION', false);
@@ -949,7 +949,7 @@ function database_update_info()
// this column was removed from the database updater
// after 3.0.9-RC3 was released. It might still exist
// in 3.0.9-RCX installations and has to be dropped in
// 3.0.13 after the db_tools class is capable of properly
// 3.0.15 after the db_tools class is capable of properly
// removing a primary key.
// 'attempt_id' => array('UINT', NULL, 'auto_increment'),
'attempt_ip' => array('VCHAR:40', ''),
@@ -1011,8 +1011,18 @@ function database_update_info()
'3.0.12-RC2' => array(),
// No changes from 3.0.12-RC3 to 3.0.12
'3.0.12-RC3' => array(),
// No changes from 3.0.12 to 3.0.13-RC1
'3.0.12' => array(),
// No changes from 3.0.13-RC1 to 3.0.13
'3.0.13-RC1' => array(),
// No changes from 3.0.13 to 3.0.13-PL1
'3.0.13' => array(),
// No changes from 3.0.13-PL1 to 3.0.14-RC1
'3.0.13-PL1' => array(),
// No changes from 3.0.14-RC1 to 3.0.14
'3.0.14-RC1' => array(),
/** @todo DROP LOGIN_ATTEMPT_TABLE.attempt_id in 3.0.13-RC1 */
/** @todo DROP LOGIN_ATTEMPT_TABLE.attempt_id in 3.0.15-RC1 */
);
}
@@ -2254,6 +2264,26 @@ function change_database_data(&$no_updates, $version)
// No changes from 3.0.12-RC3 to 3.0.12
case '3.0.12-RC3':
break;
// No changes from 3.0.12 to 3.0.13-RC1
case '3.0.12':
break;
// No changes from 3.0.13-RC1 to 3.0.13
case '3.0.13-RC1':
break;
// No changes from 3.0.13 to 3.0.13-PL1
case '3.0.13':
break;
// No changes from 3.0.13-PL1 to 3.0.14-RC1
case '3.0.13-PL1':
break;
// No changes from 3.0.14-RC1 to 3.0.14
case '3.0.14-RC1':
break;
}
}

View File

@@ -641,8 +641,9 @@ class module
case 'password':
$size = (int) $tpl_type[1];
$maxlength = (int) $tpl_type[2];
$autocomplete = (isset($options['autocomplete']) && $options['autocomplete'] == 'off') ? ' autocomplete="off"' : '';
$tpl = '<input id="' . $name . '" type="' . $tpl_type[0] . '"' . (($size) ? ' size="' . $size . '"' : '') . ' maxlength="' . (($maxlength) ? $maxlength : 255) . '" name="' . $name . '" value="' . $value . '" />';
$tpl = '<input id="' . $name . '" type="' . $tpl_type[0] . '"' . (($size) ? ' size="' . $size . '"' : '') . ' maxlength="' . (($maxlength) ? $maxlength : 255) . '" name="' . $name . '"' . $autocomplete . ' value="' . $value . '" />';
break;
case 'textarea':

View File

@@ -417,7 +417,7 @@ class install_convert extends module
if (!isset($available_dbms[$src_dbms]) || !$available_dbms[$src_dbms]['AVAILABLE'])
{
$error['db'][] = $lang['INST_ERR_NO_DB'];
$error[] = $lang['INST_ERR_NO_DB'];
$connect_test = false;
}
else

View File

@@ -273,8 +273,8 @@ class install_install extends module
$checks = array(
array('func_overload', '&', MB_OVERLOAD_MAIL|MB_OVERLOAD_STRING),
array('encoding_translation', '!=', 0),
array('http_input', '!=', 'pass'),
array('http_output', '!=', 'pass')
array('http_input', '!=', array('pass', '')),
array('http_output', '!=', array('pass', ''))
);
foreach ($checks as $mb_checks)
@@ -295,7 +295,8 @@ class install_install extends module
break;
case '!=':
if ($ini_val != $mb_checks[2])
if (!is_array($mb_checks[2]) && $ini_val != $mb_checks[2] ||
is_array($mb_checks[2]) && !in_array($ini_val, $mb_checks[2]))
{
$result = '<strong style="color:red">' . $lang['NO'] . '</strong>';
$passed['mbstring'] = false;
@@ -1624,6 +1625,45 @@ class install_install extends module
$_module->move_module_by($row, 'move_up', 5);
}
if ($module_class == 'mcp')
{
// Move pm report details module 3 down...
$sql = 'SELECT *
FROM ' . MODULES_TABLE . "
WHERE module_basename = 'pm_reports'
AND module_class = 'mcp'
AND module_mode = 'pm_report_details'";
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
$_module->move_module_by($row, 'move_down', 3);
// Move closed pm reports module 3 down...
$sql = 'SELECT *
FROM ' . MODULES_TABLE . "
WHERE module_basename = 'pm_reports'
AND module_class = 'mcp'
AND module_mode = 'pm_reports_closed'";
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
$_module->move_module_by($row, 'move_down', 3);
// Move open pm reports module 3 down...
$sql = 'SELECT *
FROM ' . MODULES_TABLE . "
WHERE module_basename = 'pm_reports'
AND module_class = 'mcp'
AND module_mode = 'pm_reports'";
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
$_module->move_module_by($row, 'move_down', 3);
}
if ($module_class == 'ucp')
{
// Move attachment module 4 down...
@@ -2045,8 +2085,8 @@ class install_install extends module
'smtp_delivery' => array('lang' => 'USE_SMTP', 'type' => 'radio:yes_no', 'explain' => true),
'smtp_host' => array('lang' => 'SMTP_SERVER', 'type' => 'text:25:50', 'explain' => false),
'smtp_auth' => array('lang' => 'SMTP_AUTH_METHOD', 'type' => 'select', 'options' => '$this->module->mail_auth_select(\'{VALUE}\')', 'explain' => true),
'smtp_user' => array('lang' => 'SMTP_USERNAME', 'type' => 'text:25:255', 'explain' => true),
'smtp_pass' => array('lang' => 'SMTP_PASSWORD', 'type' => 'password:25:255', 'explain' => true),
'smtp_user' => array('lang' => 'SMTP_USERNAME', 'type' => 'text:25:255', 'explain' => true, 'options' => array('autocomplete' => 'off')),
'smtp_pass' => array('lang' => 'SMTP_PASSWORD', 'type' => 'password:25:255', 'explain' => true, 'options' => array('autocomplete' => 'off')),
'legend2' => 'SERVER_URL_SETTINGS',
'cookie_secure' => array('lang' => 'COOKIE_SECURE', 'type' => 'radio:enabled_disabled', 'explain' => true),

File diff suppressed because it is too large Load Diff

View File

@@ -246,7 +246,7 @@ INSERT INTO phpbb_config (config_name, config_value) VALUES ('topics_per_page',
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 ('version', '3.0.13-dev');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('version', '3.0.14');
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');
@@ -668,7 +668,7 @@ INSERT INTO phpbb_acl_groups (group_id, forum_id, auth_option_id, auth_role_id,
# Bots having bot access
INSERT INTO phpbb_acl_groups (group_id, forum_id, auth_option_id, auth_role_id, auth_setting) VALUES (6, 2, 0, 19, 0);
# NEW MEMBERS aren't allowed to PM
# NEW MEMBERS are not allowed to send private messages
INSERT INTO phpbb_acl_groups (group_id, forum_id, auth_option_id, auth_role_id, auth_setting) VALUES (7, 0, 0, 23, 0);
# NEW MEMBERS on the queue

View File

@@ -74,11 +74,11 @@ $lang = array_merge($lang, array(
'PERMANENT' => 'Permanent',
'UNTIL' => 'Until',
'USER_BAN' => 'Ban one or more usernames',
'USER_BAN' => 'Ban one or more users by username',
'USER_BAN_EXCLUDE_EXPLAIN' => 'Enable this to exclude the entered users from all current bans.',
'USER_BAN_EXPLAIN' => 'You can ban multiple users in one go by entering each name on a new line. Use the <span style="text-decoration: underline;">Find a member</span> facility to look up and add one or more users automatically.',
'USER_NO_BANNED' => 'No banned usernames',
'USER_UNBAN' => 'Un-ban or un-exclude usernames',
'USER_UNBAN' => 'Un-ban or un-exclude users by username',
'USER_UNBAN_EXPLAIN' => 'You can unban (or un-exclude) multiple users in one go using the appropriate combination of mouse and keyboard for your computer and browser. Excluded users are emphasised.',
));

View File

@@ -44,7 +44,7 @@ $lang = array_merge($lang, array(
'DEFAULT_LANGUAGE' => 'Default language',
'DEFAULT_STYLE' => 'Default style',
'DISABLE_BOARD' => 'Disable board',
'DISABLE_BOARD_EXPLAIN' => 'This will make the board unavailable to users. You can also enter a short (255 character) message to display if you wish.',
'DISABLE_BOARD_EXPLAIN' => 'This will make the board unavailable to users who are neither administrators nor moderators. You can also enter a short (255 character) message to display if you wish.',
'OVERRIDE_STYLE' => 'Override user style',
'OVERRIDE_STYLE_EXPLAIN' => 'Replaces users style with the default.',
'SITE_DESC' => 'Site description',
@@ -104,7 +104,7 @@ $lang = array_merge($lang, array(
'AVATAR_GALLERY_PATH' => 'Avatar gallery path',
'AVATAR_GALLERY_PATH_EXPLAIN' => 'Path under your phpBB root directory for pre-loaded images, e.g. <samp>images/avatars/gallery</samp>.',
'AVATAR_STORAGE_PATH' => 'Avatar storage path',
'AVATAR_STORAGE_PATH_EXPLAIN' => 'Path under your phpBB root directory, e.g. <samp>images/avatars/upload</samp>.',
'AVATAR_STORAGE_PATH_EXPLAIN' => 'Path under your phpBB root directory, e.g. <samp>images/avatars/upload</samp>.<br />Avatar uploading <strong>will not be available</strong> if this path is not writable.',
'MAX_AVATAR_SIZE' => 'Maximum avatar dimensions',
'MAX_AVATAR_SIZE_EXPLAIN' => 'Width x Height in pixels.',
'MAX_FILESIZE' => 'Maximum avatar file size',

View File

@@ -50,7 +50,7 @@ $lang = array_merge($lang, array(
'ACP_BAN' => 'Banning',
'ACP_BAN_EMAILS' => 'Ban e-mails',
'ACP_BAN_IPS' => 'Ban IPs',
'ACP_BAN_USERNAMES' => 'Ban usernames',
'ACP_BAN_USERNAMES' => 'Ban users',
'ACP_BBCODES' => 'BBCodes',
'ACP_BOARD_CONFIGURATION' => 'Board configuration',
'ACP_BOARD_FEATURES' => 'Board features',

View File

@@ -37,7 +37,7 @@ if (empty($lang) || !is_array($lang))
// Email settings
$lang = array_merge($lang, array(
'ACP_MASS_EMAIL_EXPLAIN' => 'Here you can e-mail a message to either all of your users or all users of a specific group <strong>having the option to receive mass e-mails enabled</strong>. To achieve this an e-mail will be sent out to the administrative e-mail address supplied, with a blind carbon copy sent to all recipients. The default setting is to only include 50 recipients in such an e-mail, for more recipients more e-mails will be sent. If you are emailing a large group of people please be patient after submitting and do not stop the page halfway through. It is normal for a mass emailing to take a long time, you will be notified when the script has completed.',
'ACP_MASS_EMAIL_EXPLAIN' => 'Here you can e-mail a message to either all of your users or all users of a specific group <strong>having the option to receive mass e-mails enabled</strong>. To achieve this an e-mail will be sent out to the administrative e-mail address supplied, with a blind carbon copy sent to all recipients. The default setting is to only include 20 recipients in such an e-mail, for more recipients more e-mails will be sent. If you are emailing a large group of people please be patient after submitting and do not stop the page halfway through. It is normal for a mass emailing to take a long time, you will be notified when the script has completed.',
'ALL_USERS' => 'All users',
'COMPOSE' => 'Compose',

View File

@@ -52,6 +52,7 @@ $lang = array_merge($lang, array(
'CANNOT_FORCE_REACT_FOUNDER' => 'You are not allowed to force reactivation on founder accounts.',
'CANNOT_FORCE_REACT_YOURSELF' => 'You are not allowed to force reactivation of your own account.',
'CANNOT_REMOVE_ANONYMOUS' => 'You are not able to remove the guest user account.',
'CANNOT_REMOVE_FOUNDER' => 'You are not allowed to remove founder accounts.',
'CANNOT_REMOVE_YOURSELF' => 'You are not allowed to remove your own user account.',
'CANNOT_SET_FOUNDER_IGNORED' => 'You are not able to promote ignored users to be founders.',
'CANNOT_SET_FOUNDER_INACTIVE' => 'You need to activate users before you promote them to founders, only activated users are able to be promoted.',

View File

@@ -88,9 +88,10 @@ $lang = array_merge($lang, array(
'AVATAR_PARTIAL_UPLOAD' => 'The specified file was only partially uploaded.',
'AVATAR_PHP_SIZE_NA' => 'The avatars filesize is too large.<br />The maximum allowed filesize set in php.ini could not be determined.',
'AVATAR_PHP_SIZE_OVERRUN' => 'The avatars filesize is too large. The maximum allowed upload size is %1$d %2$s.<br />Please note this is set in php.ini and cannot be overridden.',
'AVATAR_REMOTE_UPLOAD_TIMEOUT' => 'The specified avatar could not be uploaded because the request timed out.',
'AVATAR_URL_INVALID' => 'The URL you specified is invalid.',
'AVATAR_URL_NOT_FOUND' => 'The file specified could not be found.',
'AVATAR_WRONG_FILESIZE' => 'The avatars filesize must be between 0 and %1d %2s.',
'AVATAR_WRONG_FILESIZE' => 'The avatars filesize must be between 0 and %1$d %2$s.',
'AVATAR_WRONG_SIZE' => 'The submitted avatar is %5$d pixels wide and %6$d pixels high. Avatars must be at least %1$d pixels wide and %2$d pixels high, but no larger than %3$d pixels wide and %4$d pixels high.',
'BACK_TO_TOP' => 'Top',
@@ -341,6 +342,9 @@ $lang = array_merge($lang, array(
'MODERATE' => 'Moderate',
'MODERATOR' => 'Moderator',
'MODERATORS' => 'Moderators',
'MODULE_NOT_ACCESS' => 'Module not accessible',
'MODULE_NOT_FIND' => 'Cannot find module %s',
'MODULE_FILE_INCORRECT_CLASS' => 'Module file %s does not contain correct class [%s]',
'MONTH' => 'Month',
'MOVE' => 'Move',
'MSNM' => 'MSNM/WLM',
@@ -651,7 +655,7 @@ $lang = array_merge($lang, array(
'TOTAL_USERS_ZERO' => 'Total members <strong>0</strong>',
'TRACKED_PHP_ERROR' => 'Tracked PHP errors: %s',
'UNABLE_GET_IMAGE_SIZE' => 'It was not possible to determine the dimensions of the image.',
'UNABLE_GET_IMAGE_SIZE' => 'It was not possible to determine the dimensions of the image. Please verify that the URL you entered is correct.',
'UNABLE_TO_DELIVER_FILE'=> 'Unable to deliver file.',
'UNKNOWN_BROWSER' => 'Unknown browser',
'UNMARK_ALL' => 'Unmark all',

View File

@@ -178,6 +178,7 @@ $lang = array_merge($lang, array(
'QUOTE_DEPTH_EXCEEDED' => 'You may embed only %1$d quotes within each other.',
'REMOTE_UPLOAD_TIMEOUT' => 'The specified file could not be uploaded because the request timed out.',
'SAVE' => 'Save',
'SAVE_DATE' => 'Saved at',
'SAVE_DRAFT' => 'Save draft',
@@ -219,7 +220,7 @@ $lang = array_merge($lang, array(
'VIEW_MESSAGE' => '%sView your submitted message%s',
'VIEW_PRIVATE_MESSAGE' => '%sView your submitted private message%s',
'WRONG_FILESIZE' => 'The file is too big, maximum allowed size is %1d %2s.',
'WRONG_FILESIZE' => 'The file is too big, maximum allowed size is %1$d %2$s.',
'WRONG_SIZE' => 'The image must be at least %1$d pixels wide, %2$d pixels high and at most %3$d pixels wide and %4$d pixels high. The submitted image is %5$d pixels wide and %6$d pixels high.',
));

View File

@@ -266,7 +266,7 @@ $lang = array_merge($lang, array(
'MOVE_DELETED_MESSAGES_TO' => 'Move messages from removed folder to',
'MOVE_DOWN' => 'Move down',
'MOVE_MARKED_TO_FOLDER' => 'Move marked to %s',
'MOVE_PM_ERROR' => 'An error occurred while moving the messages to the new folder, only %1d from %2d messages were moved.',
'MOVE_PM_ERROR' => 'An error occurred while moving the messages to the new folder, only %1$d from %2$d messages were moved.',
'MOVE_TO_FOLDER' => 'Move to folder',
'MOVE_UP' => 'Move up',

View File

@@ -1222,9 +1222,13 @@ if (!sizeof($error) && $preview)
'L_MAX_VOTES' => ($post_data['poll_max_options'] == 1) ? $user->lang['MAX_OPTION_SELECT'] : sprintf($user->lang['MAX_OPTIONS_SELECT'], $post_data['poll_max_options']))
);
$parse_poll->message = implode("\n", $post_data['poll_options']);
$parse_poll->format_display($post_data['enable_bbcode'], $post_data['enable_urls'], $post_data['enable_smilies']);
$preview_poll_options = explode('<br />', $parse_poll->message);
$preview_poll_options = array();
foreach ($post_data['poll_options'] as $poll_option)
{
$parse_poll->message = $poll_option;
$parse_poll->format_display($post_data['enable_bbcode'], $post_data['enable_urls'], $post_data['enable_smilies']);
$preview_poll_options[] = $parse_poll->message;
}
unset($parse_poll);
foreach ($preview_poll_options as $key => $option)

View File

@@ -540,12 +540,6 @@ if ($keywords || $author || $author_id || $search_id || $submit)
$total_match_count = $search->author_search($show_results, $firstpost_only, $sort_by_sql, $sort_key, $sort_dir, $sort_days, $ex_fid_ary, $m_approve_fid_ary, $topic_id, $author_id_ary, $sql_author_match, $id_ary, $start, $per_page);
}
// For some searches we need to print out the "no results" page directly to allow re-sorting/refining the search options.
if (!sizeof($id_ary) && !$search_id)
{
trigger_error('NO_SEARCH_RESULTS');
}
$sql_where = '';
if (sizeof($id_ary))
@@ -580,9 +574,9 @@ if ($keywords || $author || $author_id || $search_id || $submit)
}
// define some vars for urls
$hilit = implode('|', explode(' ', preg_replace('#\s+#u', ' ', str_replace(array('+', '-', '|', '(', ')', '&quot;'), ' ', $keywords))));
// Do not allow *only* wildcard being used for hilight
$hilit = (strspn($hilit, '*') === strlen($hilit)) ? '' : $hilit;
// A single wildcard will make the search results look ugly
$hilit = phpbb_clean_search_string(str_replace(array('+', '-', '|', '(', ')', '&quot;'), ' ', $keywords));
$hilit = str_replace(' ', '|', $hilit);
$u_hilit = urlencode(htmlspecialchars_decode(str_replace('|', ' ', $hilit)));
$u_show_results = '&amp;sr=' . $show_results;
@@ -846,7 +840,8 @@ if ($keywords || $author || $author_id || $search_id || $submit)
$hilit_array = array_filter(explode('|', $hilit), 'strlen');
foreach ($hilit_array as $key => $value)
{
$hilit_array[$key] = str_replace('\*', '\w*?', preg_quote($value, '#'));
$hilit_array[$key] = phpbb_clean_search_string($value);
$hilit_array[$key] = str_replace('\*', '\w*?', preg_quote($hilit_array[$key], '#'));
$hilit_array[$key] = preg_replace('#(^|\s)\\\\w\*\?(\s|$)#', '$1\w+?$2', $hilit_array[$key]);
}
$hilit = implode('|', $hilit_array);

View File

@@ -19,7 +19,7 @@
# General Information about this style
name = prosilver
copyright = &copy; phpBB Group, 2007
version = 3.0.12
version = 3.0.14
# Images
img_site_logo = site_logo.gif*52*139

View File

@@ -18,5 +18,5 @@
# General Information about this style
name = prosilver
copyright = &copy; phpBB Group, 2007
version = 3.0.12
copyright = © phpBB Group, 2007
version = 3.0.14

View File

@@ -347,7 +347,7 @@ function mozWrap(txtarea, open, close)
*/
function storeCaret(textEl)
{
if (textEl.createTextRange)
if (textEl.createTextRange && document.selection)
{
textEl.caretPos = document.selection.createRange().duplicate();
}

View File

@@ -47,6 +47,8 @@
<!-- IF forumrow.LAST_POST_TIME --><dfn>{L_LAST_POST}</dfn> {L_POST_BY_AUTHOR} {forumrow.LAST_POSTER_FULL}
<!-- IF not S_IS_BOT --><a href="{forumrow.U_LAST_POST}">{LAST_POST_IMG}</a> <!-- ENDIF --><br />{forumrow.LAST_POST_TIME}<!-- ELSE -->{L_NO_POSTS}<br />&nbsp;<!-- ENDIF --></span>
</dd>
<!-- ELSE -->
<dd>&nbsp;</dd>
<!-- ENDIF -->
</dl>
</li>

View File

@@ -19,7 +19,7 @@
# General Information about this template
name = prosilver
copyright = &copy; phpBB Group, 2007
version = 3.0.12
version = 3.0.14
# Defining a different template bitfield
template_bitfield = lNg=

View File

@@ -50,9 +50,9 @@
<dl>
<dt><label for="bday_day">{L_BIRTHDAY}:</label><br /><span>{L_BIRTHDAY_EXPLAIN}</span></dt>
<dd>
<label for="bday_day">{L_DAY}: <select name="bday_day" id="bday_day" style="width: 4em;">{S_BIRTHDAY_DAY_OPTIONS}</select></label>
<label for="bday_month">{L_MONTH}: <select name="bday_month" id="bday_month" style="width: 4em;">{S_BIRTHDAY_MONTH_OPTIONS}</select></label>
<label for="bday_year">{L_YEAR}: <select name="bday_year" id="bday_year" style="width: 6em;">{S_BIRTHDAY_YEAR_OPTIONS}</select></label>
<label for="bday_day">{L_DAY}: <select name="bday_day" id="bday_day">{S_BIRTHDAY_DAY_OPTIONS}</select></label>
<label for="bday_month">{L_MONTH}: <select name="bday_month" id="bday_month">{S_BIRTHDAY_MONTH_OPTIONS}</select></label>
<label for="bday_year">{L_YEAR}: <select name="bday_year" id="bday_year">{S_BIRTHDAY_YEAR_OPTIONS}</select></label>
</dd>
</dl>
<!-- ENDIF -->

View File

@@ -21,7 +21,7 @@
# General Information about this theme
name = prosilver
copyright = &copy; phpBB Group, 2007
version = 3.0.12
version = 3.0.14
# Some configuration options

View File

@@ -19,7 +19,7 @@
# General Information about this style
name = subsilver2
copyright = &copy; phpBB Group, 2003
version = 3.0.12
version = 3.0.14
# Images
img_site_logo = site_logo.gif*94*170

View File

@@ -18,5 +18,5 @@
# General Information about this style
name = subsilver2
copyright = &copy; 2005 phpBB Group
version = 3.0.12
copyright = © 2005 phpBB Group
version = 3.0.14

View File

@@ -351,7 +351,7 @@ function mozWrap(txtarea, open, close)
*/
function storeCaret(textEl)
{
if (textEl.createTextRange)
if (textEl.createTextRange && document.selection)
{
textEl.caretPos = document.selection.createRange().duplicate();
}

View File

@@ -19,7 +19,7 @@
# General Information about this template
name = subsilver2
copyright = &copy; phpBB Group, 2003
version = 3.0.12
version = 3.0.14
# Template inheritance
# See http://blog.phpbb.com/2008/07/31/templating-just-got-easier/

View File

@@ -21,7 +21,7 @@
# General Information about this theme
name = subsilver2
copyright = &copy; phpBB Group, 2003
version = 3.0.12
version = 3.0.14
# Some configuration options

View File

@@ -471,17 +471,11 @@ else
$highlight_match = $highlight = '';
if ($hilit_words)
{
foreach (explode(' ', trim($hilit_words)) as $word)
{
if (trim($word))
{
$word = str_replace('\*', '\w+?', preg_quote($word, '#'));
$word = preg_replace('#(^|\s)\\\\w\*\?(\s|$)#', '$1\w+?$2', $word);
$highlight_match .= (($highlight_match != '') ? '|' : '') . $word;
}
}
$highlight = urlencode($hilit_words);
$highlight_match = phpbb_clean_search_string($hilit_words);
$highlight = urlencode($highlight_match);
$highlight_match = str_replace('\*', '\w+?', preg_quote($highlight_match, '#'));
$highlight_match = preg_replace('#(?<=^|\s)\\\\w\*\?(?=\s|$)#', '\w+?', $highlight_match);
$highlight_match = str_replace(' ', '|', $highlight_match);
}
// Make sure $start is set to the last page if it exceeds the amount
@@ -1509,13 +1503,19 @@ for ($i = 0, $end = sizeof($post_list); $i < $end; ++$i)
$edit_allowed = ($user->data['is_registered'] && ($auth->acl_get('m_edit', $forum_id) || (
$user->data['user_id'] == $poster_id &&
$auth->acl_get('f_edit', $forum_id) &&
$topic_data['topic_status'] != ITEM_LOCKED &&
!$row['post_edit_locked'] &&
($row['post_time'] > time() - ($config['edit_time'] * 60) || !$config['edit_time'])
)));
$quote_allowed = $auth->acl_get('m_edit', $forum_id) || ($topic_data['topic_status'] != ITEM_LOCKED &&
($user->data['user_id'] == ANONYMOUS || $auth->acl_get('f_reply', $forum_id))
);
$delete_allowed = ($user->data['is_registered'] && ($auth->acl_get('m_delete', $forum_id) || (
$user->data['user_id'] == $poster_id &&
$auth->acl_get('f_delete', $forum_id) &&
$topic_data['topic_status'] != ITEM_LOCKED &&
$topic_data['topic_last_post_id'] == $row['post_id'] &&
($row['post_time'] > time() - ($config['delete_time'] * 60) || !$config['delete_time']) &&
// we do not want to allow removal of the last post if a moderator locked it!
@@ -1556,7 +1556,7 @@ for ($i = 0, $end = sizeof($post_list); $i < $end; ++$i)
'S_ONLINE' => ($poster_id == ANONYMOUS || !$config['load_onlinetrack']) ? false : (($user_cache[$poster_id]['online']) ? true : false),
'U_EDIT' => ($edit_allowed) ? append_sid("{$phpbb_root_path}posting.$phpEx", "mode=edit&amp;f=$forum_id&amp;p={$row['post_id']}") : '',
'U_QUOTE' => ($auth->acl_get('f_reply', $forum_id)) ? append_sid("{$phpbb_root_path}posting.$phpEx", "mode=quote&amp;f=$forum_id&amp;p={$row['post_id']}") : '',
'U_QUOTE' => ($quote_allowed) ? append_sid("{$phpbb_root_path}posting.$phpEx", "mode=quote&amp;f=$forum_id&amp;p={$row['post_id']}") : '',
'U_INFO' => ($auth->acl_get('m_info', $forum_id)) ? append_sid("{$phpbb_root_path}mcp.$phpEx", "i=main&amp;mode=post_details&amp;f=$forum_id&amp;p=" . $row['post_id'], true, $user->session_id) : '',
'U_DELETE' => ($delete_allowed) ? append_sid("{$phpbb_root_path}posting.$phpEx", "mode=delete&amp;f=$forum_id&amp;p={$row['post_id']}") : '',

View File

@@ -1,33 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<phpunit backupGlobals="true"
backupStaticAttributes="true"
colors="true"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
processIsolation="false"
stopOnFailure="false"
syntaxCheck="false"
bootstrap="tests/bootstrap.php"
>
<testsuites>
<testsuite name="phpBB Test Suite">
<directory suffix="_test.php">./tests/</directory>
<exclude>./tests/functional</exclude>
<exclude>tests/lint_test.php</exclude>
</testsuite>
<testsuite name="phpBB Lint Test">
<file>tests/lint_test.php</file>
</testsuite>
<testsuite name="phpBB Functional Tests">
<directory suffix="_test.php" phpVersion="5.3.0" phpVersionOperator=">=">./tests/functional</directory>
</testsuite>
</testsuites>
<filter>
<blacklist>
<directory>./tests/</directory>
</blacklist>
</filter>
</phpunit>

View File

@@ -13,28 +13,27 @@
>
<testsuites>
<testsuite name="phpBB Test Suite">
<directory suffix="_test.php">./tests/</directory>
<directory suffix="_test.php">./tests</directory>
<exclude>./tests/functional</exclude>
<exclude>tests/lint_test.php</exclude>
</testsuite>
<testsuite name="phpBB Lint Test">
<file>tests/lint_test.php</file>
<exclude>./tests/lint_test.php</exclude>
</testsuite>
<testsuite name="phpBB Functional Tests">
<directory suffix="_test.php" phpVersion="5.3.0" phpVersionOperator=">=">./tests/functional</directory>
</testsuite>
<testsuite name="phpBB Lint Test">
<file>./tests/lint_test.php</file>
</testsuite>
</testsuites>
<groups>
<exclude>
<group>functional</group>
<group>slow</group>
</exclude>
</groups>
<filter>
<blacklist>
<directory>./tests/</directory>
</blacklist>
<whitelist>
<directory suffix=".php">./phpBB/includes/</directory>
</whitelist>
</filter>
</phpunit>

View File

@@ -1,39 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<phpunit backupGlobals="true"
backupStaticAttributes="true"
colors="true"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
processIsolation="false"
stopOnFailure="false"
syntaxCheck="false"
bootstrap="tests/bootstrap.php"
>
<testsuites>
<testsuite name="phpBB Test Suite">
<directory suffix="_test.php">./tests/</directory>
<exclude>./tests/functional</exclude>
<exclude>tests/lint_test.php</exclude>
</testsuite>
<testsuite name="phpBB Lint Test">
<file>tests/lint_test.php</file>
</testsuite>
<testsuite name="phpBB Functional Tests">
<directory suffix="_test.php" phpVersion="5.3.0" phpVersionOperator=">=">./tests/functional</directory>
</testsuite>
</testsuites>
<groups>
<include>
<group>functional</group>
</include>
</groups>
<filter>
<blacklist>
<directory>./tests/</directory>
</blacklist>
</filter>
</phpunit>

View File

@@ -110,12 +110,16 @@ Slow tests
--------------
Certain tests, such as the UTF-8 normalizer or the DNS tests tend to be slow.
Thus these tests are in the `slow` group, which is excluded by default. You can
enable slow tests by copying the phpunit.xml.all file to phpunit.xml. If you
Thus these tests are in the `slow` group, which is excluded by default. If you
only want the slow tests, run:
$ phpBB/vendor/bin/phpunit --group slow
If you want all tests, run:
$ phpBB/vendor/bin/phpunit --group __nogroup__,functional,slow
Functional tests
-----------------
@@ -136,10 +140,10 @@ on which to run tests.
$phpbb_functional_url = 'http://localhost/phpBB3/';
To then run the tests, you run PHPUnit, but use the phpunit.xml.functional
config file instead of the default one. Specify this through the "-c" option:
Functional tests are automatically run, if '$phpbb_functional_url' is configured.
If you only want the functional tests, run:
$ phpBB/vendor/bin/phpunit -c phpunit.xml.functional
$ phpBB/vendor/bin/phpunit --group functional
This will change your board's config.php file, but it makes a backup at
config_dev.php, so you can restore it after the test run is complete.

62
tests/cache/cache_memory.php vendored Normal file
View File

@@ -0,0 +1,62 @@
<?php
/**
*
* @package testing
* @copyright (c) 2014 phpBB Group
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
*
*/
require_once dirname(__FILE__) . '/../../phpBB/includes/acm/acm_memory.php';
class phpbb_cache_memory extends acm_memory
{
protected $data = array();
/**
* Set cache path
*/
function phpbb_cache_memory()
{
}
/**
* Fetch an item from the cache
*
* @access protected
* @param string $var Cache key
* @return mixed Cached data
*/
function _read($var)
{
return $this->data[$var];
}
/**
* Store data in the cache
*
* @access protected
* @param string $var Cache key
* @param mixed $data Data to store
* @param int $ttl Time-to-live of cached data
* @return bool True if the operation succeeded
*/
function _write($var, $data, $ttl = 2592000)
{
$this->data[$var] = $data;
return true;
}
/**
* Remove an item from the cache
*
* @access protected
* @param string $var Cache key
* @return bool True if the operation succeeded
*/
function _delete($var)
{
unset($this->data[$var]);
return true;
}
}

125
tests/cache/cache_memory_test.php vendored Normal file
View File

@@ -0,0 +1,125 @@
<?php
/**
*
* @package testing
* @copyright (c) 2014 phpBB Group
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
*
*/
require_once dirname(__FILE__) . '/cache_memory.php';
class phpbb_cache_memory_test extends phpbb_database_test_case
{
protected $cache;
public function getDataSet()
{
return $this->createXMLDataSet(dirname(__FILE__).'/fixtures/cache_memory.xml');
}
protected function setUp()
{
global $db;
parent::setUp();
$this->cache = new phpbb_cache_memory();
$db = $this->new_dbal();
}
static public function cache_single_query_data()
{
return array(
array(
array(
array(
'SELECT * FROM ' . POSTS_TABLE,
3,
),
),
POSTS_TABLE,
),
array(
array(
array(
'SELECT * FROM ' . POSTS_TABLE,
3,
),
array(
'SELECT * FROM ' . POSTS_TABLE . ' p
LEFT JOIN ' . TOPICS_TABLE . ' t ON p.topic_id = t.topic_id',
3,
),
),
POSTS_TABLE,
),
array(
array(
array(
'SELECT * FROM ' . POSTS_TABLE,
3,
),
array(
'SELECT * FROM ' . POSTS_TABLE . ' p
LEFT JOIN ' . TOPICS_TABLE . ' t ON p.topic_id = t.topic_id',
3,
),
array(
'SELECT * FROM ' . POSTS_TABLE . ' p
LEFT JOIN ' . TOPICS_TABLE . ' t ON p.topic_id = t.topic_id
LEFT JOIN ' . USERS_TABLE . ' u ON p.poster_id = u.user_id',
3,
),
),
POSTS_TABLE,
),
array(
array(
array(
'SELECT * FROM ' . POSTS_TABLE . ' p
LEFT JOIN ' . TOPICS_TABLE . ' t ON p.topic_id = t.topic_id',
3,
),
array(
'SELECT * FROM ' . POSTS_TABLE . ' p
LEFT JOIN ' . TOPICS_TABLE . ' t ON p.topic_id = t.topic_id
LEFT JOIN ' . USERS_TABLE . ' u ON p.poster_id = u.user_id',
3,
),
),
TOPICS_TABLE,
),
);
}
/**
* @dataProvider cache_single_query_data
*/
public function test_cache_single_query($sql_queries, $table)
{
global $db;
foreach ($sql_queries as $query)
{
$sql_request_res = $db->sql_query($query[0]);
$this->cache->sql_save($query[0], $sql_request_res, 1);
$results = array();
$query_id = $this->cache->sql_load($query[0]);
while ($row = $this->cache->sql_fetchrow($query_id))
{
$results[] = $row;
}
$this->cache->sql_freeresult($query_id);
$this->assertEquals($query[1], sizeof($results));
}
$this->cache->destroy('sql', $table);
foreach ($sql_queries as $query)
{
$this->assertNotEquals(false, $this->cache->sql_load($query[0]));
}
}
}

85
tests/cache/fixtures/cache_memory.xml vendored Normal file
View File

@@ -0,0 +1,85 @@
<?xml version="1.0" encoding="UTF-8" ?>
<dataset>
<table name="phpbb_topics">
<column>topic_id</column>
<column>forum_id</column>
<column>topic_title</column>
<column>topic_first_post_id</column>
<column>topic_last_post_id</column>
<row>
<value>1</value>
<value>1</value>
<value>Topic</value>
<value>2</value>
<value>2</value>
</row>
</table>
<table name="phpbb_posts">
<column>post_id</column>
<column>poster_id</column>
<column>topic_id</column>
<column>forum_id</column>
<column>post_text</column>
<row>
<value>1</value>
<value>1</value>
<value>1</value>
<value>1</value>
<value>Post 1</value>
</row>
<row>
<value>2</value>
<value>2</value>
<value>1</value>
<value>1</value>
<value>Post 2</value>
</row>
<row>
<value>3</value>
<value>3</value>
<value>1</value>
<value>1</value>
<value>Post 3</value>
</row>
</table>
<table name="phpbb_users">
<column>user_id</column>
<column>user_posts</column>
<column>username</column>
<column>username_clean</column>
<column>user_permissions</column>
<column>user_sig</column>
<column>user_occ</column>
<column>user_interests</column>
<row>
<value>1</value>
<value>1</value>
<value>user 1</value>
<value>user 1</value>
<value></value>
<value></value>
<value></value>
<value></value>
</row>
<row>
<value>2</value>
<value>1</value>
<value>user 2</value>
<value>user 2</value>
<value></value>
<value></value>
<value></value>
<value></value>
</row>
<row>
<value>3</value>
<value>1</value>
<value>user 3</value>
<value>user 3</value>
<value></value>
<value></value>
<value></value>
<value></value>
</row>
</table>
</dataset>

View File

@@ -0,0 +1,78 @@
<?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.
*
*/
/**
* @group functional
*/
class phpbb_functional_acp_attachments_test extends phpbb_functional_test_case
{
public function data_imagick_path_linux()
{
return array(
array('/usr/bin', 'Configuration updated successfully'),
array('/usr/foobar', 'The entered path “/usr/foobar” does not exist.'),
array('/usr/bin/which', 'The entered path “/usr/bin/which” is not a directory.'),
);
}
/**
* @dataProvider data_imagick_path_linux
*/
public function test_imagick_path_linux($imagick_path, $expected)
{
if (strtolower(substr(PHP_OS, 0, 5)) !== 'linux')
{
$this->markTestSkipped('Unable to test linux specific paths on other OS.');
}
$this->login();
$this->admin_login();
$crawler = self::request('GET', 'adm/index.php?i=attachments&mode=attach&sid=' . $this->sid);
$form = $crawler->selectButton('Submit')->form(array('config[img_imagick]' => $imagick_path));
$crawler = self::submit($form);
$this->assertContains($expected, $crawler->filter('#main')->text());
}
public function data_imagick_path_windows()
{
return array(
array('C:\Windows', 'Configuration updated successfully'),
array('C:\Windows\foobar1', 'The entered path “C:\Windows\foobar1” does not exist.'),
array('C:\Windows\explorer.exe', 'The entered path “C:\Windows\explorer.exe” is not a directory.'),
);
}
/**
* @dataProvider data_imagick_path_windows
*/
public function test_imagick_path_windows($imagick_path, $expected)
{
if (strtolower(substr(PHP_OS, 0, 3)) !== 'win')
{
$this->markTestSkipped('Unable to test windows specific paths on other OS.');
}
$this->login();
$this->admin_login();
$crawler = self::request('GET', 'adm/index.php?i=attachments&mode=attach&sid=' . $this->sid);
$form = $crawler->selectButton('Submit')->form(array('config[img_imagick]' => $imagick_path));
$crawler = self::submit($form);
$this->assertContains($expected, $crawler->filter('#main')->text());
}
}

View File

@@ -0,0 +1,45 @@
<?php
/**
*
* @package testing
* @copyright (c) 2014 phpBB Group
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
*
*/
/**
* @group functional
*/
class phpbb_functional_acp_users_test extends phpbb_functional_test_case
{
public function setUp()
{
parent::setUp();
$this->login();
$this->admin_login();
$this->add_lang('acp/users');
}
public function test_founder_deletion()
{
$username = 'founder-account';
$user_id = $this->create_user($username);
$this->make_founder($user_id);
$crawler = self::request('GET', "adm/index.php?i=users&mode=overview&u=$user_id&sid={$this->sid}");
$form = $crawler->filter('#user_delete')->selectButton($this->lang('SUBMIT'))->form();
$crawler = self::submit($form);
$this->assertContains($this->lang('CANNOT_REMOVE_FOUNDER'), $this->get_content());
}
protected function make_founder($user_id)
{
$crawler = self::request('GET', "adm/index.php?i=users&mode=overview&u=$user_id&sid={$this->sid}");
$form = $crawler->filter('#user_overview')->selectButton($this->lang('SUBMIT'))->form();
$data = array('user_founder' => '1');
$form->setValues($data);
$crawler = self::submit($form);
$this->assertContains($this->lang('USER_OVERVIEW_UPDATED'), $this->get_content());
}
}

View File

@@ -0,0 +1,65 @@
<?php
/**
*
* @package testing
* @copyright (c) 2014 phpBB Group
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
*
*/
/**
* @group functional
*/
class phpbb_functional_private_messages_test extends phpbb_functional_test_case
{
public function test_setup_config()
{
$this->login();
$this->admin_login();
$crawler = self::request('GET', "adm/index.php?sid={$this->sid}&i=board&mode=message");
$form = $crawler->selectButton('Submit')->form();
$values = $form->getValues();
// Set the maximum number of private messages per folder to 1
$values['config[pm_max_msgs]'] = 1;
$form->setValues($values);
$crawler = self::submit($form);
$this->assertContains($this->lang('CONFIG_UPDATED'), $crawler->filter('.successbox')->text());
}
public function test_inbox_full()
{
$this->login();
$message_id = $this->create_private_message('Test private message #1', 'This is a test private message sent by the testing framework.', array(2));
$crawler = self::request('GET', "ucp.php?i=pm&mode=view&sid{$this->sid}&p={$message_id}");
$this->assertContains($this->lang('UCP_PM_VIEW'), $crawler->filter('html')->text());
$message_id = $this->create_private_message('Test private message #2', 'This is a test private message sent by the testing framework.', array(2));
$crawler = self::request('GET', "ucp.php?i=pm&mode=view&sid{$this->sid}&p={$message_id}");
$this->assertContains($this->lang('NO_AUTH_READ_HOLD_MESSAGE'), $crawler->filter('html')->text());
}
public function test_restore_config()
{
$this->login();
$this->admin_login();
$crawler = self::request('GET', "adm/index.php?sid={$this->sid}&i=board&mode=message");
$form = $crawler->selectButton('Submit')->form();
$values = $form->getValues();
$values['config[pm_max_msgs]'] = 50;
$form->setValues($values);
$crawler = self::submit($form);
$this->assertContains($this->lang('CONFIG_UPDATED'), $crawler->filter('.successbox')->text());
}
}

View File

@@ -0,0 +1,103 @@
<?php
/**
*
* @package testing
* @copyright (c) 2014 phpBB Group
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
*
*/
require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php';
class phpbb_functions_parse_cfg_file extends phpbb_test_case
{
public function parse_cfg_file_data()
{
return array(
array(
array(
'#',
'# phpBB Style Configuration File',
'#',
'# @package phpBB3',
'# @copyright (c) 2005 phpBB Group',
'# @license http://opensource.org/licenses/gpl-license.php GNU Public License',
'#',
'#',
'# At the left is the name, please do not change this',
'# At the right the value is entered',
'# For on/off options the valid values are on, off, 1, 0, true and false',
'#',
'# Values get trimmed, if you want to add a space in front or at the end of',
'# the value, then enclose the value with single or double quotes.',
'# Single and double quotes do not need to be escaped.',
'#',
'',
'# General Information about this style',
'name = prosilver',
'copyright = © phpBB Group, 2007',
'version = 3.0.12',
),
array(
'name' => 'prosilver',
'copyright' => '© phpBB Group, 2007',
'version' => '3.0.12',
),
),
array(
array(
'name = subsilver2',
'copyright = © 2005 phpBB Group',
'version = 3.0.12',
),
array(
'name' => 'subsilver2',
'copyright' => '© 2005 phpBB Group',
'version' => '3.0.12',
),
),
array(
array(
'foo = on',
'foo1 = true',
'foo2 = 1',
'bar = off',
'bar1 = false',
'bar2 = 0',
'foobar =',
'foobar1 = "asdf"',
'foobar2 = \'qwer\'',
),
array(
'foo' => true,
'foo1' => true,
'foo2' => true,
'bar' => false,
'bar1' => false,
'bar2' => false,
'foobar' => '',
'foobar1' => 'asdf',
'foobar2' => 'qwer',
),
),
array(
array(
'foo = &amp; bar',
'bar = <a href="test">Test</a>',
),
array(
'foo' => '&amp;amp; bar',
'bar' => '&lt;a href=&quot;test&quot;&gt;Test&lt;/a&gt;',
),
),
);
}
/**
* @dataProvider parse_cfg_file_data
*/
public function test_parse_cfg_file($file_contents, $expected)
{
$this->assertEquals($expected, parse_cfg_file(false, $file_contents));
}
}

View File

@@ -0,0 +1,125 @@
<?php
/**
*
* @package testing
* @copyright (c) 2014 phpBB Group
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
*
*/
require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php';
require_once dirname(__FILE__) . '/../../phpBB/includes/functions_content.php';
class phpbb_functions_content_get_username_string_test extends phpbb_test_case
{
public function setUp()
{
parent::setUp();
global $auth, $user;
$auth = $this->getMock('auth');
$auth->expects($this->any())
->method('acl_get')
->with($this->stringContains('_'), $this->anything())
->will($this->returnValueMap(array(
array('u_viewprofile', true),
)));
$user->data['user_id'] = ANONYMOUS;
$user->lang['GUEST'] = 'Guest';
}
public function get_username_string_profile_data()
{
global $phpbb_root_path, $phpEx;
return array(
array(ANONYMOUS, 'Anonymous', '', false, false, ''),
array(2, 'Administrator', 'FF0000', false, false, "{$phpbb_root_path}memberlist.$phpEx?mode=viewprofile&amp;u=2"),
array(42, 'User42', '', false, 'http://www.example.org/user.php?mode=show', 'http://www.example.org/user.php?mode=show&amp;u=42'),
);
}
/**
* @dataProvider get_username_string_profile_data
*/
public function test_get_username_string_profile($user_id, $username, $user_colour, $guest_username, $custom_profile_url, $expected)
{
$this->assertEquals($expected, get_username_string('profile', $user_id, $username, $user_colour, $guest_username, $custom_profile_url));
}
public function get_username_string_username_data()
{
return array(
array(ANONYMOUS, '', '', false, false, 'Guest'),
array(ANONYMOUS, '', '', 'CustomName', false, 'CustomName'),
array(2, 'User2', '', false, false, 'User2'),
array(5, 'User5', '', 'Anonymous', false, 'User5'),
array(128, 'User128', '', false, false, 'User128'),
);
}
/**
* @dataProvider get_username_string_username_data
*/
public function test_get_username_string_username($user_id, $username, $user_colour, $guest_username, $custom_profile_url, $expected)
{
$this->assertEquals($expected, get_username_string('username', $user_id, $username, $user_colour, $guest_username, $custom_profile_url));
}
public function get_username_string_colour_data()
{
return array(
array(0, '', '', false, false, ''),
array(0, '', 'F0F0F0', false, false, '#F0F0F0'),
array(ANONYMOUS, 'Anonymous', '000000', false, false, '#000000'),
array(2, 'Administrator', '', false, false, ''),
);
}
/**
* @dataProvider get_username_string_colour_data
*/
public function test_get_username_string_colour($user_id, $username, $user_colour, $guest_username, $custom_profile_url, $expected)
{
$this->assertEquals($expected, get_username_string('colour', $user_id, $username, $user_colour, $guest_username, $custom_profile_url));
}
public function get_username_string_full_data()
{
global $phpbb_root_path, $phpEx;
return array(
array(0, '', '', false, false, 'Guest'),
array(ANONYMOUS, 'Anonymous', '', false, false, 'Anonymous'),
array(2, 'Administrator', 'FF0000', false, false, '<a href="' . $phpbb_root_path . 'memberlist.' . $phpEx . '?mode=viewprofile&amp;u=2" style="color: #FF0000;" class="username-coloured">Administrator</a>'),
array(5, 'User5', '', false, 'http://www.example.org/user.php?mode=show', '<a href="http://www.example.org/user.php?mode=show&amp;u=5">User5</a>'),
array(8, 'Eight', '', false, false, '<a href="' . $phpbb_root_path . 'memberlist.php?mode=viewprofile&amp;u=8">Eight</a>'),
);
}
/**
* @dataProvider get_username_string_full_data
*/
public function test_get_username_string_full($user_id, $username, $user_colour, $guest_username, $custom_profile_url, $expected)
{
$this->assertEquals($expected, get_username_string('full', $user_id, $username, $user_colour, $guest_username, $custom_profile_url));
}
public function get_username_string_no_profile_data()
{
return array(
array(ANONYMOUS, 'Anonymous', '', false, false, 'Anonymous'),
array(ANONYMOUS, 'Anonymous', '', '', false, 'Guest'),
array(2, 'Administrator', 'FF0000', false, false, '<span style="color: #FF0000;" class="username-coloured">Administrator</span>'),
array(8, 'Eight', '', false, false, 'Eight'),
);
}
/**
* @dataProvider get_username_string_no_profile_data
*/
public function test_get_username_string_no_profile($user_id, $username, $user_colour, $guest_username, $custom_profile_url, $expected)
{
$this->assertEquals($expected, get_username_string('no_profile', $user_id, $username, $user_colour, $guest_username, $custom_profile_url));
}
}

View File

@@ -0,0 +1,38 @@
<?php
/**
*
* @package testing
* @copyright (c) 2014 phpBB Group
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
*
*/
require_once dirname(__FILE__) . '/../../phpBB/includes/functions_content.php';
class phpbb_functions_content_phpbb_clean_search_string_test extends phpbb_test_case
{
public function phpbb_clean_search_string_data()
{
return array(
array('*', ''),
array('* *', ''),
array('test', 'test'),
array(' test ', 'test'),
array(' test * ', 'test'),
array('test* *', 'test*'),
array('* *test*', '*test*'),
array('test test * test', 'test test test'),
array(' some wild*cards * between wo*rds ', 'some wild*cards between wo*rds'),
array(' we * now have*** multiple wild***cards * ', 'we now have* multiple wild*cards'),
array('pi is *** . * **** * *****', 'pi is .'),
);
}
/**
* @dataProvider phpbb_clean_search_string_data
*/
public function test_phpbb_clean_search_string($search_string, $expected)
{
$this->assertEquals($expected, phpbb_clean_search_string($search_string));
}
}

View File

@@ -0,0 +1,436 @@
<?php
/**
*
* @package testing
* @copyright (c) 2014 phpBB Group
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
*
*/
require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php';
require_once dirname(__FILE__) . '/../../phpBB/includes/functions_user.php';
require_once dirname(__FILE__) . '/../../phpBB/includes/utf/utf_tools.php';
require_once dirname(__FILE__) . '/../mock/null_cache.php';
class phpbb_functions_user_delete_user_test extends phpbb_database_test_case
{
/** @var \dbal */
protected $db;
public function getDataSet()
{
return $this->createXMLDataSet(dirname(__FILE__).'/fixtures/delete_user.xml');
}
protected function setUp()
{
parent::setUp();
global $cache, $config, $db;
$db = $this->db = $this->new_dbal();
$config = array(
'load_online_time' => 5,
'search_type' => 'fulltext_mysql',
);
$cache = new phpbb_mock_null_cache();
}
public function first_last_post_data()
{
return array(
array(
'retain', false,
array(
array('post_id' => 1, 'poster_id' => ANONYMOUS, 'post_username' => ''),
array('post_id' => 2, 'poster_id' => ANONYMOUS, 'post_username' => 'Other'),
array('post_id' => 3, 'poster_id' => ANONYMOUS, 'post_username' => ''),
array('post_id' => 4, 'poster_id' => ANONYMOUS, 'post_username' => 'Other'),
),
array(
array(
'topic_id' => 1,
'topic_poster' => ANONYMOUS, 'topic_first_poster_name' => '', 'topic_first_poster_colour' => '',
'topic_last_poster_id' => ANONYMOUS, 'topic_last_poster_name' => '', 'topic_last_poster_colour' => '',
),
array(
'topic_id' => 2,
'topic_poster' => ANONYMOUS, 'topic_first_poster_name' => 'Other', 'topic_first_poster_colour' => '',
'topic_last_poster_id' => ANONYMOUS, 'topic_last_poster_name' => 'Other', 'topic_last_poster_colour' => '',
),
array(
'topic_id' => 3,
'topic_poster' => ANONYMOUS, 'topic_first_poster_name' => '', 'topic_first_poster_colour' => '',
'topic_last_poster_id' => ANONYMOUS, 'topic_last_poster_name' => '', 'topic_last_poster_colour' => '',
),
array(
'topic_id' => 4,
'topic_poster' => ANONYMOUS, 'topic_first_poster_name' => 'Other', 'topic_first_poster_colour' => '',
'topic_last_poster_id' => ANONYMOUS, 'topic_last_poster_name' => 'Other', 'topic_last_poster_colour' => '',
),
),
array(
array('forum_id' => 1, 'forum_last_poster_id' => ANONYMOUS, 'forum_last_poster_name' => '', 'forum_last_poster_colour' => ''),
array('forum_id' => 2, 'forum_last_poster_id' => ANONYMOUS, 'forum_last_poster_name' => 'Other', 'forum_last_poster_colour' => ''),
array('forum_id' => 3, 'forum_last_poster_id' => ANONYMOUS, 'forum_last_poster_name' => '', 'forum_last_poster_colour' => ''),
array('forum_id' => 4, 'forum_last_poster_id' => ANONYMOUS, 'forum_last_poster_name' => 'Other', 'forum_last_poster_colour' => ''),
),
),
array(
'remove', false,
array(
array('post_id' => 2, 'poster_id' => ANONYMOUS, 'post_username' => 'Other'),
array('post_id' => 4, 'poster_id' => ANONYMOUS, 'post_username' => 'Other'),
),
array(
array(
'topic_id' => 2,
'topic_poster' => ANONYMOUS, 'topic_first_poster_name' => 'Other', 'topic_first_poster_colour' => '',
'topic_last_poster_id' => ANONYMOUS, 'topic_last_poster_name' => 'Other', 'topic_last_poster_colour' => '',
),
array(
'topic_id' => 4,
'topic_poster' => ANONYMOUS, 'topic_first_poster_name' => 'Other', 'topic_first_poster_colour' => '',
'topic_last_poster_id' => ANONYMOUS, 'topic_last_poster_name' => 'Other', 'topic_last_poster_colour' => '',
),
),
array(
array('forum_id' => 1, 'forum_last_poster_id' => 0, 'forum_last_poster_name' => '', 'forum_last_poster_colour' => ''),
array('forum_id' => 2, 'forum_last_poster_id' => ANONYMOUS, 'forum_last_poster_name' => 'Other', 'forum_last_poster_colour' => ''),
array('forum_id' => 3, 'forum_last_poster_id' => 0, 'forum_last_poster_name' => '', 'forum_last_poster_colour' => ''),
array('forum_id' => 4, 'forum_last_poster_id' => ANONYMOUS, 'forum_last_poster_name' => 'Other', 'forum_last_poster_colour' => ''),
),
),
array(
'retain', 'Bertie',
array(
array('post_id' => 1, 'poster_id' => ANONYMOUS, 'post_username' => 'Bertie'),
array('post_id' => 2, 'poster_id' => ANONYMOUS, 'post_username' => 'Other'),
array('post_id' => 3, 'poster_id' => ANONYMOUS, 'post_username' => 'Bertie'),
array('post_id' => 4, 'poster_id' => ANONYMOUS, 'post_username' => 'Other'),
),
array(
array(
'topic_id' => 1,
'topic_poster' => ANONYMOUS, 'topic_first_poster_name' => 'Bertie', 'topic_first_poster_colour' => '',
'topic_last_poster_id' => ANONYMOUS, 'topic_last_poster_name' => 'Bertie', 'topic_last_poster_colour' => '',
),
array(
'topic_id' => 2,
'topic_poster' => ANONYMOUS, 'topic_first_poster_name' => 'Other', 'topic_first_poster_colour' => '',
'topic_last_poster_id' => ANONYMOUS, 'topic_last_poster_name' => 'Other', 'topic_last_poster_colour' => '',
),
array(
'topic_id' => 3,
'topic_poster' => ANONYMOUS, 'topic_first_poster_name' => 'Bertie', 'topic_first_poster_colour' => '',
'topic_last_poster_id' => ANONYMOUS, 'topic_last_poster_name' => 'Bertie', 'topic_last_poster_colour' => '',
),
array(
'topic_id' => 4,
'topic_poster' => ANONYMOUS, 'topic_first_poster_name' => 'Other', 'topic_first_poster_colour' => '',
'topic_last_poster_id' => ANONYMOUS, 'topic_last_poster_name' => 'Other', 'topic_last_poster_colour' => '',
),
),
array(
array('forum_id' => 1, 'forum_last_poster_id' => ANONYMOUS, 'forum_last_poster_name' => 'Bertie', 'forum_last_poster_colour' => ''),
array('forum_id' => 2, 'forum_last_poster_id' => ANONYMOUS, 'forum_last_poster_name' => 'Other', 'forum_last_poster_colour' => ''),
array('forum_id' => 3, 'forum_last_poster_id' => ANONYMOUS, 'forum_last_poster_name' => 'Bertie', 'forum_last_poster_colour' => ''),
array('forum_id' => 4, 'forum_last_poster_id' => ANONYMOUS, 'forum_last_poster_name' => 'Other', 'forum_last_poster_colour' => ''),
),
),
array(
'remove', 'Bertie',
array(
array('post_id' => 2, 'poster_id' => ANONYMOUS, 'post_username' => 'Other'),
array('post_id' => 4, 'poster_id' => ANONYMOUS, 'post_username' => 'Other'),
),
array(
array(
'topic_id' => 2,
'topic_poster' => ANONYMOUS, 'topic_first_poster_name' => 'Other', 'topic_first_poster_colour' => '',
'topic_last_poster_id' => ANONYMOUS, 'topic_last_poster_name' => 'Other', 'topic_last_poster_colour' => '',
),
array(
'topic_id' => 4,
'topic_poster' => ANONYMOUS, 'topic_first_poster_name' => 'Other', 'topic_first_poster_colour' => '',
'topic_last_poster_id' => ANONYMOUS, 'topic_last_poster_name' => 'Other', 'topic_last_poster_colour' => '',
),
),
array(
array('forum_id' => 1, 'forum_last_poster_id' => 0, 'forum_last_poster_name' => '', 'forum_last_poster_colour' => ''),
array('forum_id' => 2, 'forum_last_poster_id' => ANONYMOUS, 'forum_last_poster_name' => 'Other', 'forum_last_poster_colour' => ''),
array('forum_id' => 3, 'forum_last_poster_id' => 0, 'forum_last_poster_name' => '', 'forum_last_poster_colour' => ''),
array('forum_id' => 4, 'forum_last_poster_id' => ANONYMOUS, 'forum_last_poster_name' => 'Other', 'forum_last_poster_colour' => ''),
),
),
);
}
/**
* @dataProvider first_last_post_data
*/
public function test_first_last_post_info($mode, $post_username, $expected_posts, $expected_topics, $expected_forums)
{
$this->assertFalse(user_delete($mode, 2, $post_username));
$sql = 'SELECT post_id, poster_id, post_username
FROM ' . POSTS_TABLE . '
ORDER BY post_id ASC';
$result = $this->db->sql_query($sql);
$this->assertEquals($expected_posts, $this->db->sql_fetchrowset($result), 'Post table poster info is mismatching after deleting a user.');
$this->db->sql_freeresult($result);
$sql = 'SELECT topic_id, topic_poster, topic_first_poster_name, topic_first_poster_colour, topic_last_poster_id, topic_last_poster_name, topic_last_poster_colour
FROM ' . TOPICS_TABLE . '
ORDER BY topic_id ASC';
$result = $this->db->sql_query($sql);
$this->assertEquals($expected_topics, $this->db->sql_fetchrowset($result), 'Topic table first/last poster info is mismatching after deleting a user.');
$this->db->sql_freeresult($result);
$sql = 'SELECT forum_id, forum_last_poster_id, forum_last_poster_name, forum_last_poster_colour
FROM ' . FORUMS_TABLE . '
ORDER BY forum_id ASC';
$result = $this->db->sql_query($sql);
$this->assertEquals($expected_forums, $this->db->sql_fetchrowset($result), 'Forum table last poster info is mismatching after deleting a user.');
$this->db->sql_freeresult($result);
}
public function report_attachment_data()
{
return array(
array(
'retain',
array(
array('post_id' => 1, 'post_reported' => 1, 'post_edit_user' => 1),
array('post_id' => 2, 'post_reported' => 1, 'post_edit_user' => 1),
array('post_id' => 3, 'post_reported' => 0, 'post_edit_user' => 1),
array('post_id' => 4, 'post_reported' => 0, 'post_edit_user' => 1),
),
array(
array('report_id' => 1, 'post_id' => 1, 'user_id' => 1),
array('report_id' => 3, 'post_id' => 2, 'user_id' => 1),
),
array(
array('topic_id' => 1, 'topic_reported' => 1),
array('topic_id' => 2, 'topic_reported' => 1),
array('topic_id' => 3, 'topic_reported' => 0),
array('topic_id' => 4, 'topic_reported' => 0),
),
array(
array('attach_id' => 1, 'post_msg_id' => 1, 'poster_id' => 1),
array('attach_id' => 2, 'post_msg_id' => 2, 'poster_id' => 1),
array('attach_id' => 3, 'post_msg_id' => 0, 'poster_id' => 1), // TODO should be deleted: PHPBB3-13089
),
),
array(
'remove',
array(
array('post_id' => 2, 'post_reported' => 1, 'post_edit_user' => 1),
array('post_id' => 4, 'post_reported' => 0, 'post_edit_user' => 1),
),
array(
array('report_id' => 3, 'post_id' => 2, 'user_id' => 1),
),
array(
array('topic_id' => 2, 'topic_reported' => 1),
array('topic_id' => 4, 'topic_reported' => 0),
),
array(
array('attach_id' => 2, 'post_msg_id' => 2, 'poster_id' => 1),
array('attach_id' => 3, 'post_msg_id' => 0, 'poster_id' => 2), // TODO should be deleted: PHPBB3-13089
),
),
);
}
/**
* @dataProvider report_attachment_data
*/
public function test_report_attachment_info($mode, $expected_posts, $expected_reports, $expected_topics, $expected_attach)
{
$this->assertFalse(user_delete($mode, 2));
$sql = 'SELECT post_id, post_reported, post_edit_user
FROM ' . POSTS_TABLE . '
ORDER BY post_id ASC';
$result = $this->db->sql_query($sql);
$this->assertEquals($expected_posts, $this->db->sql_fetchrowset($result), 'Post report status content is mismatching after deleting a user.');
$this->db->sql_freeresult($result);
$sql = 'SELECT report_id, post_id, user_id
FROM ' . REPORTS_TABLE . '
ORDER BY report_id ASC';
$result = $this->db->sql_query($sql);
$this->assertEquals($expected_reports, $this->db->sql_fetchrowset($result), 'Report table content is mismatching after deleting a user.');
$this->db->sql_freeresult($result);
$sql = 'SELECT topic_id, topic_reported
FROM ' . TOPICS_TABLE . '
ORDER BY topic_id ASC';
$result = $this->db->sql_query($sql);
$this->assertEquals($expected_topics, $this->db->sql_fetchrowset($result), 'Topic report status is mismatching after deleting a user.');
$this->db->sql_freeresult($result);
$sql = 'SELECT attach_id, post_msg_id, poster_id
FROM ' . ATTACHMENTS_TABLE . '
ORDER BY attach_id ASC';
$result = $this->db->sql_query($sql);
$this->assertEquals($expected_attach, $this->db->sql_fetchrowset($result), 'Attachment table content is mismatching after deleting a user.');
$this->db->sql_freeresult($result);
}
public function delete_data()
{
return array(
array(
'retain',
array(array('user_id' => 1, 'user_posts' => 4)),
array(array('user_id' => 1, 'zebra_id' => 3)),
array(array('ban_id' => 2), array('ban_id' => 3)),
array(array('session_id' => '12345678901234567890123456789013')),
array(
array('log_id' => 2, 'user_id' => 1, 'reportee_id' => 1),
array('log_id' => 3, 'user_id' => 1, 'reportee_id' => 1),
),
array(
array('msg_id' => 1, 'author_id' => 3, 'message_edit_user' => 3),
array('msg_id' => 2, 'author_id' => 1, 'message_edit_user' => 1),
),
),
array(
'remove',
array(array('user_id' => 1, 'user_posts' => 2)),
array(array('user_id' => 1, 'zebra_id' => 3)),
array(array('ban_id' => 2), array('ban_id' => 3)),
array(array('session_id' => '12345678901234567890123456789013')),
array(
array('log_id' => 2, 'user_id' => 1, 'reportee_id' => 1),
array('log_id' => 3, 'user_id' => 1, 'reportee_id' => 1),
),
array(
array('msg_id' => 1, 'author_id' => 3, 'message_edit_user' => 3),
array('msg_id' => 2, 'author_id' => 1, 'message_edit_user' => 1),
),
),
);
}
/**
* @dataProvider delete_data
*/
public function test_delete_data($mode, $expected_users, $expected_zebra, $expected_ban, $expected_sessions, $expected_logs, $expected_pms)
{
$this->assertFalse(user_delete($mode, 2));
$sql = 'SELECT user_id, user_posts
FROM ' . USERS_TABLE . '
ORDER BY user_id ASC';
$result = $this->db->sql_query($sql);
$this->assertEquals($expected_users, $this->db->sql_fetchrowset($result), 'User table content is mismatching after deleting a user.');
$this->db->sql_freeresult($result);
$sql = 'SELECT user_id, zebra_id
FROM ' . ZEBRA_TABLE . '
ORDER BY user_id ASC, zebra_id ASC';
$result = $this->db->sql_query($sql);
$this->assertEquals($expected_zebra, $this->db->sql_fetchrowset($result), 'Zebra table content is mismatching after deleting a user.');
$this->db->sql_freeresult($result);
$sql = 'SELECT ban_id
FROM ' . BANLIST_TABLE . '
ORDER BY ban_id ASC';
$result = $this->db->sql_query($sql);
$this->assertEquals($expected_ban, $this->db->sql_fetchrowset($result), 'Ban table content is mismatching after deleting a user.');
$this->db->sql_freeresult($result);
$sql = 'SELECT session_id
FROM ' . SESSIONS_TABLE . '
ORDER BY session_id ASC';
$result = $this->db->sql_query($sql);
$this->assertEquals($expected_sessions, $this->db->sql_fetchrowset($result), 'Session table content is mismatching after deleting a user.');
$this->db->sql_freeresult($result);
$sql = 'SELECT log_id, user_id, reportee_id
FROM ' . LOG_TABLE . '
ORDER BY log_id ASC';
$result = $this->db->sql_query($sql);
$this->assertEquals($expected_logs, $this->db->sql_fetchrowset($result), 'Log table content is mismatching after deleting a user.');
$this->db->sql_freeresult($result);
$sql = 'SELECT msg_id, author_id, message_edit_user
FROM ' . PRIVMSGS_TABLE . '
ORDER BY msg_id ASC';
$result = $this->db->sql_query($sql);
$this->assertEquals($expected_pms, $this->db->sql_fetchrowset($result), 'Private messages table content is mismatching after deleting a user.');
$this->db->sql_freeresult($result);
}
public function delete_user_id_data()
{
return array(
array(
'retain',
array(
USER_GROUP_TABLE,
TOPICS_WATCH_TABLE,
FORUMS_WATCH_TABLE,
ACL_USERS_TABLE,
TOPICS_TRACK_TABLE,
TOPICS_POSTED_TABLE,
FORUMS_TRACK_TABLE,
PROFILE_FIELDS_DATA_TABLE,
MODERATOR_CACHE_TABLE,
DRAFTS_TABLE,
BOOKMARKS_TABLE,
SESSIONS_KEYS_TABLE,
PRIVMSGS_FOLDER_TABLE,
PRIVMSGS_RULES_TABLE,
),
),
array(
'remove',
array(
USER_GROUP_TABLE,
TOPICS_WATCH_TABLE,
FORUMS_WATCH_TABLE,
ACL_USERS_TABLE,
TOPICS_TRACK_TABLE,
TOPICS_POSTED_TABLE,
FORUMS_TRACK_TABLE,
PROFILE_FIELDS_DATA_TABLE,
MODERATOR_CACHE_TABLE,
DRAFTS_TABLE,
BOOKMARKS_TABLE,
SESSIONS_KEYS_TABLE,
PRIVMSGS_FOLDER_TABLE,
PRIVMSGS_RULES_TABLE,
),
),
);
}
/**
* @dataProvider delete_user_id_data
*/
public function test_delete_user_id_data($mode, $cleaned_tables)
{
$this->assertFalse(user_delete($mode, 2));
foreach ($cleaned_tables as $table)
{
$sql = 'SELECT user_id
FROM ' . $table . '
WHERE user_id = 2';
$result = $this->db->sql_query($sql);
$this->assertFalse($this->db->sql_fetchfield('user_id'), 'Found data for deleted user in table: ' . $table);
$this->db->sql_freeresult($result);
$sql = 'SELECT user_id
FROM ' . $table . '
WHERE user_id = 3';
$result = $this->db->sql_query($sql);
$this->assertEquals(3, $this->db->sql_fetchfield('user_id'), 'Missing data for user in table: ' . $table);
$this->db->sql_freeresult($result);
}
}
}

View File

@@ -0,0 +1,531 @@
<?xml version="1.0" encoding="UTF-8" ?>
<dataset>
<table name="phpbb_attachments">
<column>attach_id</column>
<column>post_msg_id</column>
<column>topic_id</column>
<column>in_message</column>
<column>poster_id</column>
<column>is_orphan</column>
<column>attach_comment</column>
<row>
<value>1</value>
<value>1</value>
<value>1</value>
<value>0</value>
<value>2</value>
<value>0</value>
<value></value>
</row>
<row>
<value>2</value>
<value>2</value>
<value>2</value>
<value>0</value>
<value>1</value>
<value>0</value>
<value></value>
</row>
<row>
<value>3</value>
<value>0</value>
<value>0</value>
<value>0</value>
<value>2</value>
<value>1</value>
<value></value>
</row>
</table>
<table name="phpbb_banlist">
<column>ban_id</column>
<column>ban_userid</column>
<column>ban_email</column>
<column>ban_reason</column>
<column>ban_give_reason</column>
<row>
<value>1</value>
<value>2</value>
<value></value>
<value></value>
<value></value>
</row>
<row>
<value>2</value>
<value>3</value>
<value></value>
<value></value>
<value></value>
</row>
<row>
<value>3</value>
<value>0</value>
<value></value>
<value></value>
<value></value>
</row>
</table>
<table name="phpbb_forums">
<column>forum_id</column>
<column>forum_last_poster_id</column>
<column>forum_last_poster_name</column>
<column>forum_last_poster_colour</column>
<column>forum_parents</column>
<column>forum_desc</column>
<column>forum_rules</column>
<row>
<value>1</value>
<value>2</value>
<value></value>
<value>00AA00</value>
<value></value>
<value></value>
<value></value>
</row>
<row>
<value>2</value>
<value>1</value>
<value>Other</value>
<value></value>
<value></value>
<value></value>
<value></value>
</row>
<row>
<value>3</value>
<value>2</value>
<value></value>
<value>00AA00</value>
<value></value>
<value></value>
<value></value>
</row>
<row>
<value>4</value>
<value>1</value>
<value>Other</value>
<value></value>
<value></value>
<value></value>
<value></value>
</row>
</table>
<table name="phpbb_log">
<column>log_id</column>
<column>user_id</column>
<column>reportee_id</column>
<column>log_operation</column>
<column>log_data</column>
<row>
<value>1</value>
<value>1</value>
<value>2</value>
<value></value>
<value></value>
</row>
<row>
<value>2</value>
<value>2</value>
<value>1</value>
<value></value>
<value></value>
</row>
<row>
<value>3</value>
<value>1</value>
<value>1</value>
<value></value>
<value></value>
</row>
<row>
<value>4</value>
<value>2</value>
<value>2</value>
<value></value>
<value></value>
</row>
</table>
<table name="phpbb_posts">
<column>post_id</column>
<column>poster_id</column>
<column>post_edit_user</column>
<column>post_username</column>
<column>topic_id</column>
<column>forum_id</column>
<column>post_approved</column>
<column>post_time</column>
<column>post_text</column>
<column>post_reported</column>
<row>
<value>1</value>
<value>2</value>
<value>2</value>
<value></value>
<value>1</value>
<value>1</value>
<value>1</value>
<value>1</value>
<value></value>
<value>1</value>
</row>
<row>
<value>2</value>
<value>1</value>
<value>1</value>
<value>Other</value>
<value>2</value>
<value>2</value>
<value>1</value>
<value>1</value>
<value></value>
<value>1</value>
</row>
<row>
<value>3</value>
<value>2</value>
<value>2</value>
<value></value>
<value>3</value>
<value>3</value>
<value>1</value>
<value>1</value>
<value></value>
<value>1</value>
</row>
<row>
<value>4</value>
<value>1</value>
<value>1</value>
<value>Other</value>
<value>4</value>
<value>4</value>
<value>1</value>
<value>1</value>
<value></value>
<value>1</value>
</row>
</table>
<table name="phpbb_privmsgs">
<column>msg_id</column>
<column>author_id</column>
<column>message_edit_user</column>
<column>message_text</column>
<column>to_address</column>
<column>bcc_address</column>
<row>
<value>1</value>
<value>3</value>
<value>3</value>
<value></value>
<value></value>
<value></value>
</row>
<row>
<value>2</value>
<value>2</value>
<value>2</value>
<value></value>
<value></value>
<value></value>
</row>
</table>
<table name="phpbb_privmsgs_to">
<column>msg_id</column>
<column>user_id</column>
<column>author_id</column>
<row>
<value>1</value>
<value>3</value>
<value>3</value>
</row>
<row>
<value>1</value>
<value>2</value>
<value>3</value>
</row>
<row>
<value>2</value>
<value>3</value>
<value>2</value>
</row>
<row>
<value>2</value>
<value>2</value>
<value>2</value>
</row>
</table>
<table name="phpbb_reports">
<column>report_id</column>
<column>post_id</column>
<column>user_id</column>
<column>report_text</column>
<row>
<value>1</value>
<value>1</value>
<value>1</value>
<value>Post Removed?</value>
</row>
<row>
<value>2</value>
<value>3</value>
<value>2</value>
<value>Post Removed?</value>
</row>
<row>
<value>3</value>
<value>2</value>
<value>1</value>
<value>Keep</value>
</row>
<row>
<value>4</value>
<value>4</value>
<value>2</value>
<value>Remove Report</value>
</row>
</table>
<table name="phpbb_sessions">
<column>session_id</column>
<column>session_user_id</column>
<column>session_page</column>
<row>
<value>12345678901234567890123456789012</value>
<value>2</value>
<value></value>
</row>
<row>
<value>12345678901234567890123456789013</value>
<value>3</value>
<value></value>
</row>
</table>
<table name="phpbb_topics">
<column>topic_id</column>
<column>forum_id</column>
<column>topic_reported</column>
<column>topic_poster</column>
<column>topic_first_poster_name</column>
<column>topic_first_poster_colour</column>
<column>topic_last_poster_id</column>
<column>topic_last_poster_name</column>
<column>topic_last_poster_colour</column>
<row>
<value>1</value>
<value>1</value>
<value>1</value>
<value>2</value>
<value></value>
<value>00AA00</value>
<value>2</value>
<value></value>
<value>00AA00</value>
</row>
<row>
<value>2</value>
<value>2</value>
<value>1</value>
<value>1</value>
<value>Other</value>
<value></value>
<value>1</value>
<value>Other</value>
<value></value>
</row>
<row>
<value>3</value>
<value>3</value>
<value>1</value>
<value>2</value>
<value></value>
<value>00AA00</value>
<value>2</value>
<value></value>
<value>00AA00</value>
</row>
<row>
<value>4</value>
<value>4</value>
<value>1</value>
<value>1</value>
<value>Other</value>
<value></value>
<value>1</value>
<value>Other</value>
<value></value>
</row>
</table>
<table name="phpbb_users">
<column>user_id</column>
<column>username_clean</column>
<column>user_permissions</column>
<column>user_sig</column>
<column>user_occ</column>
<column>user_interests</column>
<column>user_posts</column>
<row>
<value>1</value>
<value>Anonymous</value>
<value></value>
<value></value>
<value></value>
<value></value>
<value>2</value>
</row>
<row>
<value>2</value>
<value>Foobar</value>
<value></value>
<value></value>
<value></value>
<value></value>
<value>2</value>
</row>
</table>
<table name="phpbb_zebra">
<column>user_id</column>
<column>zebra_id</column>
<row>
<value>1</value>
<value>2</value>
</row>
<row>
<value>1</value>
<value>3</value>
</row>
<row>
<value>2</value>
<value>1</value>
</row>
</table>
<table name="phpbb_user_group">
<column>user_id</column>
<row>
<value>2</value>
</row>
<row>
<value>3</value>
</row>
</table>
<table name="phpbb_topics_watch">
<column>user_id</column>
<row>
<value>2</value>
</row>
<row>
<value>3</value>
</row>
</table>
<table name="phpbb_forums_watch">
<column>user_id</column>
<row>
<value>2</value>
</row>
<row>
<value>3</value>
</row>
</table>
<table name="phpbb_acl_users">
<column>user_id</column>
<row>
<value>2</value>
</row>
<row>
<value>3</value>
</row>
</table>
<table name="phpbb_topics_track">
<column>user_id</column>
<row>
<value>2</value>
</row>
<row>
<value>3</value>
</row>
</table>
<table name="phpbb_forums_track">
<column>user_id</column>
<row>
<value>2</value>
</row>
<row>
<value>3</value>
</row>
</table>
<table name="phpbb_topics_posted">
<column>user_id</column>
<row>
<value>2</value>
</row>
<row>
<value>3</value>
</row>
</table>
<table name="phpbb_profile_fields_data">
<column>user_id</column>
<row>
<value>2</value>
</row>
<row>
<value>3</value>
</row>
</table>
<table name="phpbb_moderator_cache">
<column>user_id</column>
<row>
<value>2</value>
</row>
<row>
<value>3</value>
</row>
</table>
<table name="phpbb_bookmarks">
<column>user_id</column>
<row>
<value>2</value>
</row>
<row>
<value>3</value>
</row>
</table>
<table name="phpbb_sessions_keys">
<column>user_id</column>
<row>
<value>2</value>
</row>
<row>
<value>3</value>
</row>
</table>
<table name="phpbb_privmsgs_folder">
<column>user_id</column>
<row>
<value>2</value>
</row>
<row>
<value>3</value>
</row>
</table>
<table name="phpbb_privmsgs_rules">
<column>user_id</column>
<column>rule_string</column>
<row>
<value>2</value>
<value></value>
</row>
<row>
<value>3</value>
<value></value>
</row>
</table>
<table name="phpbb_drafts">
<column>user_id</column>
<column>draft_message</column>
<row>
<value>2</value>
<value></value>
</row>
<row>
<value>3</value>
<value></value>
</row>
</table>
</dataset>

View File

@@ -0,0 +1,42 @@
<?php
/**
*
* @package testing
* @copyright (c) 2014 phpBB Group
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
*
*/
require_once dirname(__FILE__) . '/../../phpBB/includes/functions_profile_fields.php';
class phpbb_profile_get_profile_value_test extends phpbb_test_case
{
static public function get_profile_value_int_data()
{
return array(
array(FIELD_INT, '10', true, 10),
array(FIELD_INT, '0', true, 0),
array(FIELD_INT, '', true, 0),
array(FIELD_INT, null, true, 0),
array(FIELD_INT, '10', false, 10),
array(FIELD_INT, '0', false, 0),
array(FIELD_INT, '', false, null),
array(FIELD_INT, null, false, null),
);
}
/**
* @dataProvider get_profile_value_int_data
*/
public function test_get_profile_value_int($type, $value, $show_novalue, $expected)
{
$cp = new custom_profile;
$this->assertSame($expected, $cp->get_profile_value(array(
'value' => $value,
'data' => array(
'field_type' => $type,
'field_show_novalue' => $show_novalue,
),
)));
}
}

View File

@@ -18,12 +18,17 @@ class phpbb_security_redirect_test extends phpbb_security_test_base
{
// array(Input -> redirect(), expected triggered error (else false), expected returned result url (else false))
return array(
array('data://x', false, 'http://localhost/phpBB'),
array('data://x', 'Tried to redirect to potentially insecure url.', false),
array('bad://localhost/phpBB/index.php', 'Tried to redirect to potentially insecure url.', false),
array('http://www.otherdomain.com/somescript.php', false, 'http://localhost/phpBB'),
array('http://www.otherdomain.com/somescript.php', 'Tried to redirect to potentially insecure url.', false),
array("http://localhost/phpBB/memberlist.php\n\rConnection: close", 'Tried to redirect to potentially insecure url.', false),
array('javascript:test', false, 'http://localhost/phpBB/../javascript:test'),
array('http://localhost/phpBB/index.php;url=', 'Tried to redirect to potentially insecure url.', false),
array('https://foobar.com\@http://localhost/phpBB', 'Tried to redirect to potentially insecure url.', false),
array('https://foobar.com\@localhost/troll/http://localhost/', 'Tried to redirect to potentially insecure url.', false),
array('http://localhost.foobar.com\@localhost/troll/http://localhost/', 'Tried to redirect to potentially insecure url.', false),
array('http://localhost/phpBB', false, 'http://localhost/phpBB'),
array('http://localhost/phpBB/', false, 'http://localhost/phpBB/'),
);
}

Some files were not shown because too many files have changed in this diff Show More