Skip to content
This repository was archived by the owner on Nov 25, 2020. It is now read-only.

Commit a2f8db9

Browse files
committed
Merge develop into master
2 parents 07a6943 + 77702c9 commit a2f8db9

File tree

201 files changed

+14604
-2855
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

201 files changed

+14604
-2855
lines changed

core/src/.htaccess

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,13 @@ RewriteRule (.*) index.php [L]
2222

2323
#RewriteCond %{HTTP:Authorization} ^(.*)
2424
#RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]
25+
26+
#Following lines may be necessary for a PHP-FPM setup
27+
# to make sure that authorization is transmitted.
28+
# Just remove the # at the beginning of the line
29+
30+
#SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
31+
2532
</IfModule>
2633

2734
AddType application/json .json

core/src/conf/RELEASE_NOTE

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,105 @@
11
Pydio ##VERSION_NUMBER## Release Note
22

3+
Pydio 6.0.3 - Important Bugfix release
4+
5+
Probably found the root cause of "Ooops your language file is empty..." (details)
6+
Admin Delegation: fix various criteria filtering and workspace listing conditions that were breaking template-created workspaces for group Admin, as well as returning wrong users count (although correct users list). (details)
7+
Fix various customization options: logo height/width + add a class to the main element observing the current workspace slug, can be used for specific welcome, settings, etc styling. (details)
8+
Changed action name (details)
9+
Changed action name (details)
10+
Added Plugin Parameters (details)
11+
Added configuration parameters (details)
12+
meta.user plugin translation into Czech (details)
13+
meta.comments plugin translation into Czech (details)
14+
core.ajaxplorer Czech translation update, as there was already something available (details)
15+
FIX: Changed some translations to convert accented letters (details)
16+
FIX: Some other little changes in Italian translations (details)
17+
Fixed some little translation error (details)
18+
FIX: Italian little fixes (details)
19+
Italian translation for plugin 'editor.imagick' (details)
20+
Italian translation for plugin 'editor.openlayer' (details)
21+
Italian translation for plugin 'editor.other' (details)
22+
Italian transtaltion for plugin 'editor.pixlr' (details)
23+
Make sure to use the dirDefault attribute when overriding the ls action, or it can be lost by XML merging. Was breaking folder opening in guest user mode. (details)
24+
Fix video player overlap with menu in FF and IE (details)
25+
Fix wrong typing for settings leftpane initA value, was making the right pane disappear if folded. (details)
26+
Fix positioning problems that could lead to the right panel totally disappearing (details)
27+
Stop observing click after clicking on a workspace to avoid multiple loading Replace margin-top by top positioning to use window height instead of window with as reference. z-index and width fix in gui.ios (details)
28+
Faster Loading GUI (details)
29+
conf.sql plugin Czech translation (details)
30+
Update ru.php (details)
31+
access.mysql Czech translation (details)
32+
missing "," character in access.mysql en.php file causing missing string via php2po transition (details)
33+
Fix cpane_container positioning for minisites (details)
34+
Update ru.php (details)
35+
Create ru.php (details)
36+
Update ru.php (details)
37+
Update ru.php (details)
38+
Update french translation (details)
39+
Expand a simple diagnostic tool to test REST API on a given workspace. Call runTests.php?api=true to trigger. (details)
40+
Filter the for(var k in ...) entries with hasOwnProperty() call in RoleEditor. Fixes #789 (details)
41+
Do not include shared repositories in updateAdminRights or it can end up filing the role with tons of repos. (details)
42+
Fix sqlite deleteRepository case - Use better error message and log SQL error. Fix #779 (details)
43+
The return of the QRCode - Fix #783 (details)
44+
Add an optional parameter to use a specific header value (e.g. X-Forwarder-For) instead of local detected IP in the logs. Fix #763 (details)
45+
Do not trigger error on fopen (it is catched later). (details)
46+
Experimental feature to monitor underlying storage changes. To be tested. (details)
47+
access.fs: Sort filenames case insensitive (details)
48+
Index new detected items recursively (details)
49+
Move folder operation for s3: get all keys with prefix, copy objects to new key and delete old ones. (details)
50+
Make sure to catch exception on S3Client->headObject calls. Could lead to NoSuchKeyException in some cases (minisites). (details)
51+
Make sure to use minisite_session parameter in plUploader (details)
52+
Plupload Fix Minisite-Problem (details)
53+
Italian translation for plugin 'editor.soundmanager' (details)
54+
Italian translation for plugin 'editor.text' (details)
55+
Italian translation for plugin 'editor.video' (details)
56+
Italian translation for plugin 'editor.webodf' (details)
57+
Italian translation for plugin 'editor.zoho' (details)
58+
Fix videos tutorial zIndex issue (details)
59+
Fix #807 - Change language on Public minisite Error (details)
60+
In some case it's possible to hit save on non-writeable workspace, which creates duplicates. Fix #806 (details)
61+
UI bug, fix #796 (details)
62+
Issue in static repository id was creating a bug in updateAdminRights, inflating admin role until DB error. (details)
63+
Disable guest user detection for minisite. UpdateAdminRights : do not call method in foreach loop (details)
64+
Display a new panel in My Account to manage api keys. Let this plugin active for all protocols otherwise it will not appear in web interface. Ability to manually revoke one or all keys. Hook to the new user.after_password_change event to revoke all keys automatically. New osFromUserAgent function for prettier display. Minor tweaks in core js/css (details)
65+
Fix guest login screen (details)
66+
Drop IE6 support (png hack, useless) Clean parameters passed to bootstrap using exposed plugin configs instead. Create aliases in window: pydio and pydioBootstrap objects: (details)
67+
fix typo (details)
68+
Clean legacy hard-coded gui preferences, and use get/setUserPreference method in classes. Make sure display pref is loaded at init time for FilesList, shoud fix #777 (details)
69+
Fix "Share folder as workspaces only" parameter (details)
70+
Re fix #777 : hidden columns were broken (details)
71+
Little Charset bug in User Feed (details)
72+
Italian translation for plugin 'gui.ajax' (details)
73+
Italian translation for plugin 'gui.ios' (details)
74+
Italian translation for plugin 'gui.light' (details)
75+
Italian translation for plugin 'gui.mobile' (details)
76+
Italian translation for plugin 'gui.user' (details)
77+
Replace dibi minified by latest head to fix #610 Add autoloader for dibi and remove requires (details)
78+
Display issue in non-writeable workspaces (details)
79+
Performance issues with innerText usage (details)
80+
Make sure to re-display the authorization URL in case of step 2 error. (details)
81+
getFilteredOption() : pass an optional userObject to be used as mergeRole resolver (details)
82+
Quota filtered Option: grab values from parent repository owner, not current user. (details)
83+
Better response for update_user_group - Fix #725 (details)
84+
Add IPTC support, inspired by and close #577 (details)
85+
ZIP with SMB Access don't work (details)
86+
Fix tree issue when domain name contains 'plus'. Manual merge & close #681 (details)
87+
Fix #819 (missing log refresh button) and fix #820 (restore old "Copy as Text" button) (details)
88+
Fix the way scheduler handle the "*" users to make it less consuming (not necessary to load whole user objects, jst their ID.). Always use queue mechanism. (details)
89+
Perf issues with massive ldap directories: divide listing time by 2 (details)
90+
Add an option to disable the bruteForce test (and thus the Captcha) (details)
91+
New option "leavesOpenOnSelect" on search engine used in the admin panel, to avoid never-ending searching on the correct user page. Fix #814 (details)
92+
Catch handle erros on purge operations (details)
93+
Use background-size: cover when possible (fix #821) (details)
94+
Fix login header in multi mode. Remove login_patch.xml that was not used anymore (details)
95+
Fix api test script (details)
96+
Make sure db is connected for serial-based setup that would use the DB only for indexation. (details)
97+
Fix API Auth form some server+php configs (details)
98+
Add the comment SetEnvIf instruction for PHP-FPM setups. (details)
99+
When fake MemberOf enabled, depend ldap system, the member/memberUid value (attribute of group) is cn (short) or dn (full name). In general, this value is dn but in ldap of Apple, he use cn (details)
100+
Do not set write persmission on stat_hash, or it prevents the sync of readonly workspaces (details)
101+
102+
3103
Pydio 6.0.2 - Microfix for install screen
4104

5105
Previous release fixed XML problems by xml-encoding some messages, which breaks the HTML display of the install wizard.

core/src/conf/bootstrap_context.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,9 @@
9494

9595
function AjaXplorer_autoload($className)
9696
{
97+
if($className == "dibi"){
98+
require_once(AJXP_BIN_FOLDER."/dibi/dibi.php");
99+
}
97100
$fileName = AJXP_BIN_FOLDER."/"."class.".$className.".php";
98101
if (file_exists($fileName)) {
99102
require_once($fileName);

core/src/core/classes/class.AJXP_Plugin.php

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -135,12 +135,15 @@ public function init($options)
135135
$this->options = array_merge($this->loadOptionsDefaults(), $options);
136136
}
137137

138-
protected function getFilteredOption($optionName, $repositoryScope = AJXP_REPO_SCOPE_ALL)
138+
protected function getFilteredOption($optionName, $repositoryScope = AJXP_REPO_SCOPE_ALL, $userObject = null)
139139
{
140140
if(!is_array($this->options)) $this->options = array();
141141
$merged = $this->options;
142142
if(is_array($this->pluginConf)) $merged = array_merge($merged, $this->pluginConf);
143-
$loggedUser = AuthService::getLoggedUser();
143+
$loggedUser = $userObject;
144+
if($loggedUser == null){
145+
$loggedUser = AuthService::getLoggedUser();
146+
}
144147
if ($loggedUser != null) {
145148
if ($repositoryScope == AJXP_REPO_SCOPE_ALL) {
146149
$repo = ConfService::getRepository();

core/src/core/classes/class.AJXP_Utils.php

Lines changed: 71 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -871,7 +871,13 @@ public static function detectServerURL($withURI = false)
871871
if (!$withURI) {
872872
return "$protocol://$name$port";
873873
} else {
874-
return "$protocol://$name$port".dirname($_SERVER["REQUEST_URI"]);
874+
$uri = dirname($_SERVER["REQUEST_URI"]);
875+
$api = ConfService::currentContextIsRestAPI();
876+
if(!empty($api)){
877+
// Keep only before api base
878+
$uri = array_shift(explode("/".$api."/", $uri));
879+
}
880+
return "$protocol://$name$port".$uri;
875881
}
876882
}
877883

@@ -1490,6 +1496,67 @@ public static function userAgentIsNativePydioApp(){
14901496
);
14911497
}
14921498

1499+
public static function osFromUserAgent($useragent = null) {
1500+
1501+
$osList = array
1502+
(
1503+
'Windows 10' => 'windows nt 10.0',
1504+
'Windows 8.1' => 'windows nt 6.3',
1505+
'Windows 8' => 'windows nt 6.2',
1506+
'Windows 7' => 'windows nt 6.1',
1507+
'Windows Vista' => 'windows nt 6.0',
1508+
'Windows Server 2003' => 'windows nt 5.2',
1509+
'Windows XP' => 'windows nt 5.1',
1510+
'Windows 2000 sp1' => 'windows nt 5.01',
1511+
'Windows 2000' => 'windows nt 5.0',
1512+
'Windows NT 4.0' => 'windows nt 4.0',
1513+
'Windows Me' => 'win 9x 4.9',
1514+
'Windows 98' => 'windows 98',
1515+
'Windows 95' => 'windows 95',
1516+
'Windows CE' => 'windows ce',
1517+
'Windows (version unknown)' => 'windows',
1518+
'OpenBSD' => 'openbsd',
1519+
'SunOS' => 'sunos',
1520+
'Ubuntu' => 'ubuntu',
1521+
'Linux' => '(linux)|(x11)',
1522+
'Mac OSX Beta (Kodiak)' => 'mac os x beta',
1523+
'Mac OSX Cheetah' => 'mac os x 10.0',
1524+
'Mac OSX Puma' => 'mac os x 10.1',
1525+
'Mac OSX Jaguar' => 'mac os x 10.2',
1526+
'Mac OSX Panther' => 'mac os x 10.3',
1527+
'Mac OSX Tiger' => 'mac os x 10.4',
1528+
'Mac OSX Leopard' => 'mac os x 10.5',
1529+
'Mac OSX Snow Leopard' => 'mac os x 10.6',
1530+
'Mac OSX Lion' => 'mac os x 10.7',
1531+
'Mac OSX Mountain Lion' => 'mac os x 10.8',
1532+
'Mac OSX Mavericks' => 'mac os x 10.9',
1533+
'Mac OSX Yosemite' => 'mac os x 10.10',
1534+
'Mac OS (classic)' => '(mac_powerpc)|(macintosh)',
1535+
'QNX' => 'QNX',
1536+
'BeOS' => 'beos',
1537+
'OS2' => 'os/2',
1538+
'SearchBot'=>'(nuhk)|(googlebot)|(yammybot)|(openbot)|(slurp)|(msnbot)|(ask jeeves/teoma)|(ia_archiver)'
1539+
);
1540+
1541+
if($useragent == null){
1542+
$useragent = $_SERVER['HTTP_USER_AGENT'];
1543+
$useragent = strtolower($useragent);
1544+
}
1545+
1546+
$found = "Not automatically detected.$useragent";
1547+
foreach($osList as $os=>$match) {
1548+
if (preg_match('/' . $match . '/i', $useragent)) {
1549+
$found = $os;
1550+
break;
1551+
}
1552+
}
1553+
1554+
return $found;
1555+
1556+
1557+
}
1558+
1559+
14931560
/**
14941561
* Try to remove a file without errors
14951562
* @static
@@ -1677,7 +1744,6 @@ public static function cleanDibiDriverParameters($params)
16771744

16781745
public static function runCreateTablesQuery($p, $file)
16791746
{
1680-
require_once(AJXP_BIN_FOLDER."/dibi.compact.php");
16811747

16821748
switch ($p["driver"]) {
16831749
case "sqlite":
@@ -1694,7 +1760,7 @@ public static function runCreateTablesQuery($p, $file)
16941760
$ext = ".pgsql";
16951761
break;
16961762
default:
1697-
return "ERROR!, DB driver "+ $p["driver"] +" not supported yet in __FUNCTION__";
1763+
return "ERROR!, DB driver ". $p["driver"] ." not supported yet in __FUNCTION__";
16981764
}
16991765

17001766
$result = array();
@@ -1884,6 +1950,7 @@ public static function glob_recursive($pattern, $flags = 0)
18841950

18851951
public static function regexpToLike($regexp)
18861952
{
1953+
$regexp = trim($regexp, '/');
18871954
$left = "~";
18881955
$right = "~";
18891956
if ($regexp[0]=="^") {
@@ -1900,6 +1967,7 @@ public static function regexpToLike($regexp)
19001967

19011968
public static function cleanRegexp($regexp)
19021969
{
1970+
$regexp = str_replace("\/", "/", trim($regexp, '/'));
19031971
return ltrim(rtrim($regexp, "$"), "^");
19041972
}
19051973

0 commit comments

Comments
 (0)