Pydio 5.2.0
This is a major stable release, upgrade is recommended. Please read below the detail of the changes.
Date: 21st, January 2014
License: Affero GPL
Copyright: Charles du Jeu 2014
Download: pydio-core-5.2.0.zip
Demo: https://demo.pyd.io/
Upgrade: For linux packages, please manually upgrade your database.
Contributors: cdujeu, echampet, chusopr, joubertredrat, BlackLionPT, warhawk3407, andypmuc, Afterster, Ellega, TheLexus, terminal-addict, cfoellman, millsdude, bitstrings, thomasfrivold
Bridges: we also release a new version of the CMS bridges, see http://pyd.io/cms-bridges-4-0-2/
Upgrading
For archive-based installation, just use the in-app upgrade mechanism. Make sure to backup your database. For Linux packages installs (RPM / DEB), please follow the procedure below:
Update using YUM or APT-GET
If your install is not serial-based, manually upgrade your database schema, using this script for MySQL or this one for SQlite.
Clear the language files cache by remove files located in /var/lib/pydio/data/i18n/*.ser
Reload the GUI and verify you have the correct version.
Main new features
Tab-based editors: open editors in tabbed navigation, to work on many files at once.
New user Dashboard: displaying all personal parameters and custom data.
Faceted search: search files and folders by date, extension, date range, metadata, etc.
Sharing & emails
Update ShareCenter to create multiple links on a given file and associate an arbitrary tag data. (details)
Add QRCode on shared links (details)
Add an HTML layout for the emails, and pass a « main link » either by argument or from the main node of the notification (details)
Ability to create personal contacts lists (« teams ») (details)
Add ENABLE_FOLDER_SHARING option in action.share, defaulting to true (details)
Optional limit for number of shared users creation (details)
Expand the Shared User creation form to fill user email, full name, send an email, etc. (details)
Add a parameter to force old-school external email (details)
Add a parameter to allow new users creation while sharing (true by default). Use AutoCompleter for AjxpMailer Send users_only in list_authorized_users to avoid retrieving groups. (details)
GUI Performances
Quicker start Customize dialogbox with a className. (details)
Use CSS animation when possible to make it lighter (details)
Fix ResourcesManager : was loading css multiple times (details)
Performance Hunting: divided by 3,5 the display of long list of files. Todo: monitor for side-effects (details)
Plugins
Comments feed (details)
Rework metadata modifiers and Meta.user plugin. Implement a custom SelectBox choice. Should replace and close #255. (details)
Selection cart and save search advanced. (details)
Add avatar plugins (Gravatar and Libravatar) (details)
Relayout admin dashboard (details)
Simple implementation of WebODF viewer. Only as viewer for the moment, we have to get a way to send back the modif in a standard manner, probably by replacing the Runtime implementation. (details)
Add plugin auth.radius (details)
Add YOURLS shortener, with optional IDN support (details)
Rework AJXP_Logger - expose all log levels – accept a variable number of argument (details)
Add PostgreSQL database support (details)
Improvements and API Changes
Make sure to show controls on video when opened in editor. (details)
Shared users: inherit parent personalRole if the parameter is marked as inherit. (details)
Allow administrators to disable WebDAV on individual repositories. This is necessary for repositories that depend on session credentials because clients such as Windows default WebDAV do not use sessions. (details)
FS: Pass __AJXP_ZIP_FLAT__ to makeZip function to force all files to be at level 0 Fix tabulator et splitter resizing issues Download Cart. (details)
Use FeedStore instead of MetaStore to have recursive meta. Could be expanded to a more generic SQL-based metastore. (details)
Impl #259 : if windows OS , alternative unoconv call. (details)
Add office templates to Imagick support. (details)
Rework « regexp » in listUsersPaginated / getUsersCount in class.sqlAuthDriver.php Now « ^a » matches everything that start with a « a$ » matches everything that end with a « ^a$ » matches exactly a (wasn’t working) « a » matches everything that contains a (was matching exactly a) (details)
Use HTML base tag instead of the previous complicated « travel_path_to_root » mechanism… (details)
New access point for managing users self-service operations (currently reset password) (details)
Make custom sort function to make sure users are sorted (fix #279) (details)
New variable AJXP_SANITIZE_FILENAME, to be less restrictive on the allowed characters than AJXP_SANITIZE_HTML_STRICT. Particularly, allow commas in filename. (details)
Login: trim username and password to avoid trailing and ending white space problems (details)
Better API for get_my_feed. Ability to force recycle_bin creation in workspace share (details)
Add node.share.create hooks (details)
Add user.before_disconnect and user.after_disconnect hooks (details)
Optionally attach a link to LogoWidget or RepositorySimpleLabel via ajxpOptions. (details)
Fix minisite: > Display workspace description > Do not display label/description if no user logged. (details)
API CHANGE: switch to nodes[] query parameters instead of file_0, file_1, file_2, etc. Unique « file » is still allowed though. Fix dblclick on IE10 and IE11, tested on WIN7 and 8 (details)
Add a stat_hash action to extend standard stat with the file hash. (details)
Repository switch and loading optimization: avoid loading all available repository when we already know the repository ID. Should have a great impact on REST-based access, typically WebDAV. (details)
New meta.syncable plugin keep tracks of all changes with a global revision number (inspired by couchdb mechanism) (details)
Meta.filehasher: Add an optional caching mechanism to the full XML tree (details)
Change how uploader.html depends on uploader.flex, should impact plugins ordering, but not activation. (details)
Move copy operations into AbstractAccessDriver to factorize normal and cross-repository copies. Enable cross-repository copy for folders. To be tested extensively. (details)
Strengthen again the security level of zoho plugin. Could be circumvented if people did not change their secret key. (details)
Add two new parameters to the ls action, only playing for recursive case: max_depth and max_nodes. If activated ( = recursion is cut before the end), the folder nodes have a new property ajxp_has_children = true|false to decide whether client must recurse again or not. (details)
Add an optional parameter for ZIP filenames encoding at creation. CP437 is a working value for Windows, but then archive is incorrect on mac… The best we can do to fix #10 (details)
LDAP: use ldap_sort instead of a custom sorter Fix filter differing in count and list users Fix groups listing – user object update when filter is empty (details)
Add a parameter in LDAP to search users by another attribute (details)
Check regexp on userId or userLabel ConfCenter: New parameter: get users from all groups (search them), and display whole list. ShareCenter: Sticking to userExists(« write ») is creating a local user instead of getting it from master auth. (details)
Revert previous commit disabling users creation: add a parameter instead CACHE_MASTER_USERS_TO_SLAVE, set to true by default for backward compat. (details)
In DEBUG mode, display stack trace in errors (details)
Bugfixes
Correct editor.openlayer i18n files (details)
Correct access.wms i18n files (details)
Allow log plugins to handle variable number of \t (details)
Add logging functions to AJXP_Plugin class / put plugin id as log prefix (details)
Avoid fatal error if a meta plugin does not implement the initMeta method. (details)
Move metadata along. (details)
Remove exit() instruction (details)
Declare new attribute (details)
Last compile (details)
IE fixes (details)
Rebranding (details)
fix shortcut for open_with (details)
Fix applied hooks in FTP driver, were sending « file deleted » instead of « file created »… (details)
Fix code style (details)
Fix #293 (details)
Fix size after full screen (details)
Save tabulator state and Cart Manager state. Reloading is not totally working. (details)
Fix editors (details)
Do no reinvent dibi (use (%s)) (details)
Delete from [ajxp_user_rights] only for the current user (add [login] in where clause) Also use more dibi (use (%s)) (details)
Change serial_role type to bytea for PostgreSQL (table ajxp_roles) (details)
Force an archive name for downloading multiple nodes. (details)
Pipe search and download actions by using nodes selections to download a whole search result at once. (details)
Hook to correct resize event (details)
Fix new node not removed correctly. Do not set node selected if current context is not its parent. (details)
Serialized data can contain null bytes, store them in blob (details)
New functions in to be implemented by conf plugins (save/load/clearTemporaryKey, pruneTemporaryKeys) (details)
Override GUI parameters by setting session key. (details)
Fix wrong initialization of splitter (details)
Add « pydio » as default identifier for log.syslog (details)
Don’t limit log messages size (use TEXT for params column) (details)
Fix in_array() error in ldap driver (details)
Fix #310, missing short form tpl for rename notification (details)
Correct insertion_date in conf.sql/create.pgsql (details)
Update class.SvnManager.php (details)
Fix sharing / Mailer / autocomplete (details)
Fix json_data case for the create_repository action (details)
Fix #309 (details)
Implement #291 (details)
Fix #331 (details)
Should fix #308 – We now use index_path dedicated column (details)
Fix IE10/11 problems (close #318), plus IE8 problems. Fix close modal by ESC key that was broken. (details)
Replace default_repository parameter by a real role/group/user parameter. (details)
Fix old-school uploader for IE (Send button did not appear) (details)
Fix #332: Error when renaming on Windows. (details)
Fix #249, #250, #252 – @Ellega can you verify ? (details)
Test also for X_ACCELREDIRECT parameter to disable the zip automatic deletion. (details)
Auth.remote cms_functions: when looking for the hidden files, make sure to use « .// » to search only below the current node. (details)
ajxp_users.login must be in GROUP BY clause (Correct PostgreSQL error) (details)
Auth.remote: test if ajxp_gluecode_updateRole function exists to avoid errors if the glueCode is inserted many times. (details)
Remove compat.php (details)
Fix #285 again (details)
Editor.browser: go through the various mime detectors while the result is octet-stream. Office docs should have the correct mimetype. (details)
New invisibleBar, and autoFoldOnEvent options on Splitter New tabsTips option on Tabulator Fix simpleTooltip positioning and style Rework layout here and there, implements the new behaviours, still to be tested and validated. (details)
Fix destroy and various components glitches. Move Search box to the global toolbar in admin mode. (details)
Clean destroy() of ActionsToolbar (details)
Don’t use More in admin – Small button for list and bookmarks (details)
Missing CHMOD application on directories when applying recursive copy. (details)
Update auth.remote plugin, seems wp can create problems with wordpress_test_cookie missing. (details)
Do not use UserSelection->initFromHttpVars() without arguments, otherwise it breaks while in the CLI context. (details)
Add log when sharing file (in writePubliclet) (details)
Don’t check for date_default_timezone_*, we’re using php 5.3+ (details)
Don’t check for filter_var, we’re using php 5.3+ (details)
Remove SystemTextEncoding::magicDequote, magic_quotes are deprecated in php 5.3 and removed in 5.4 (details)
Adapt buttons to appear only in scheduler zone (details)
MCRYPT_MODE_ECB doesn’t require an IV (details)
Repository Editor (details)
Adapt showSimpleModal for legacy IE (details)
Display users as list to keep hierarchy (details)
Indexation: do not use set_time_limit if already CLI context (details)
Do not set transparency on left tab. Close notifications after opening. (details)
Make sure we don’t have false positive for old user migrations, otherwise it can end up overriding the role (details)
To be retested extensively, use ConfService::switchUserToActiveRepository() in the cmd.php scripts to replace old code. (details)
Notifications: make the goto button more accessible. (details)
Display teams at the right place Separate comments only by one BR Unnecessary return instruction. (details)
Don’t trigger upload if drop does not have « files ». (details)
Fix various refresh / focus problems, TAB navigation was broken. (details)
Define InfoPanelExtension for « ajxp_root_node » mime, used only on the root node. If none is define, we use « no_selection » instead. (details)
Use fontawesome for overlay icons Switch icon-star to icon-bookmark Search Engine Advanced panel i18n – Fix result positioning (details)
Disable focus on form edition. Fix textarea and image input styling Change various default settings (details)
Add format=json parameter to the Share action for backward compatibility (details)
Fix serverUrl detection (details)
Lower the poller frequency value from 5 to 15 (details)
Fix default share folder for RPM install (cherry picked from commit 3243d70) (details)
Performances: do not trigger load() in storageExists() if not necessary filterUsersByGroup: is_array() security check Typo when catching exception in logger (details)
Wrong notification sent during copy (details)
Fix #358, #359, #360 (details)
Fix #354 (details)
pgsql: IF NOT EXISTS is only supported since PostgreSQL 9.1 (details)
try/cactch on repository switch (details)
Update XSD (details)
Fix rename just after creation, detect where to « switchCurrentLabelToEdition » (details)
Correct typo in AbstractLogDriver (details)
Small typo in class.phpmailer-lite.php (details)
Correct typo in class.cmsmsAuthDriver.php (details)
Typo in test.ServerEncoding.php (details)
session_unset() doesn’t take arguments (details)
AJXP_Utils::getRemoteContent take only 1 argument (details)
encoding is a parameter of Zend_Search_Lucene_Field::Keyword, not $privateDoc->addField (details)
listUsers() doesn’t take parameters in remoteAuthDriver (details)
Replace $HTTP_HOST with $_SERVER["SERVER_NAME"] (details)
Fix post-upload hooks: make sure to send node UPDATED instead of CREATED if was already there. (details)
Make sure the rest API point is working on root. (details)
Name sdk methods for search and searchByKeyword (details)
return AJXP_Utils::saveSerialFile is misleading and useless (details)
$error isn’t defined and used (details)
Replace $REMOTE_HOST with $_SERVER["REMOTE_ADDR"] (details)
Fix some specific installs problems with libxml and « external entity load » erros. (details)
getUniqueFile() doesn’t take args (details)
Small typos in phpCAS lib (details)
typo in websocket.server.php (details)
typos in phpCAS lib (details)
Declare restParams for move and rename (details)
Close #371 (details)
Switch to scrutinizer-ci.com (details)
Manually define columns list to avoid NULL node_id (nulled by the left join) (details)
porting rhs/centos script to gluster/debian (details)
Fix copy permission: can copy from one ro ws to another but not inside it. (details)
Sanitize user name at creation in user_create_user (details)
Updated access.sftp_psl (details)
Fix sorting problems when not in list mode. (details)
Close #363 Add parameter for sendmail path (details)
Fix #356 (details)
Fix typo access.sftp_psl (details)
Fix #355 Fix #356 (details)
Mq manager was breaking the « guest » access. (details)
Other usersDisabled() tracking (details)
Do not override the _isRoot property in replaceBy. Do not filter out rootNode from selection, but explicitely enableRoot on actions, download only for the moment. (details)
Fix #370 (5.1.0 regression) Avoid checking MetaWatch on parent if node is already root Avoid unnecessary DB calls to get repository by Id (details)
Optionaly set the unique button to ‘close’ when opening modal (details)
Should fix #376 : catch exception instead of testing result (details)
Fix #377 (details)
Fix #374 (details)
Fix #342 Source editor was broken in modal mode + detect BASE tag if defined to recompute correct URLS in minisite. (details)
Missing log when opening a file via the Editor (FileMimeSender) Fix #341 : force init core.log plugin if self::$loggerInstance is not yet defined. (details)
Fix tabs and scrolling issues in RepositoryEditor Make sure to disableShortcutsOnForm when replicating rows (details)
Fix #260 manually: put full Imagick options in the Parameters, for both Thumbs and Image (details)
Should fix #384 (details)
Remove deprecated notify.phpmail-lite (details)
Updated access.sftp_psl (phpseclib build-524) (details)
Make sure file or folder exists before sharing. Short hash with numbers only can be interpreted as integer and checkHash send false negative. (details)
Fix IE11 XPath not working correctly, probably because node is stored in a property in-between. (details)
Fix #386 make sure to encode filename in VideoPreviewer (details)
Fix #261 (details)
Make sure to type the session_timeout and client_timeout correctly (details)
Make sure to send the correct image header, even for 0-length file. (details)
Fix #60 – Replace # and ? before calling parse_url() (details)
Make sure CREATE is defined, otherwise it make a DB error on workspace creation. Use AJXP_Utils::safeParseUrl() (details)
Change dependencies parsing to allow access.AJXP_STREAM_PROVIDER|something.else (details)
Fix #390 Dropbox plugin. Missing one item each time Remove user name / password, it’s useless. Store tokens in a per-user file. (details)
Conf.sql:make sure to transform repository create options to integer, to avoid DB error Ajxp_conf: resplit create ws and create tpl as two separate buttons, not a menu. (details)
Remove console.log Fix the checkboxes when editing templates (details)
Fix how UID is extracted for FTP driver (details)
Use | in active plugin dependency (details)
Auto switch to list tab on context change, thus do not trigger reloadDataNode() to avoid auto switch to list tab. (details)
Prefix an icon to the PluginEditor (details)
Fix typo in SSL indication (details)
Escape user label before sending in XML (details)
Ignore set_magic_quotes_runtime (deprecated) (details)
Replace EncodeQ function by the latest phpmailer version. We should probably totally switch to this mailer. Optionally pass images to be attached in the layout. (details)
Make sure textareas are readonly Add PostgreSQL to install choices (details)
Handle multiple line SQL requests for tables creation. (details)
Styling harmonization Readapt for mobile tablets (details)
Update core plugins HTML documentation (details)
Do not « autoFoldOnEvent » if unfolded from main button, just when unfolded from the tabs. (details)
Fix Dropbox plugin in sharing cases, retrieve the correct oauth tokens (details)
Let the editor.zoho be active in access.ajxp_user, to be sure the img_library is loaded. (details)
For the moment, disable users autocompleter for existing private minisite. (details)
Fix #398 has_password wrongly reported (details)
Fix #407, openssl_pkey_new may fail if openssl.cnf is not correctly setup (particularly on Windows). (details)
Update log.sql (details)
Update create.pgsql (details)
Fix strpos empty in checkPassword (details)
Add role_update_right for API access (details)
Add ShareCenter::isShared($ajxpNode) to test if a node is shared (details)
Add PURGE_AFTER_SOFT option (details)
preg_replace(): The /e modifier is deprecated in PHP5.5 (details)
Fix #404 (details)
Fix #392, by adding PRE and POST callbacks to PclZip (details)
skipSecureToken actions were not taken into accounts in external files. (details)
Disable at last native autocompletion on share dialog, by removing name attribute. Styling of the Minisite, customize Logo Always sanitize user names as AJXP_SANITIZE_EMAILCHARS Users dashboard, revert styling of FetchedResultPane, was ugly. To be improved still. (details)
Detect if minisite logo is a binary or a real filepath (details)
Fix log.sql for ipv6 logging (details)
Add a paddingBottom when FilesList is in gridMode, to avoid hiding last line with scrollbar, fix #172 (details)
Fix #394 (details)
Fix #411 (details)
Make sure to search include path before requiring Yubico.php Exclude radius from php_hhvm (details)
Rework global toolbar menus (details)
Should Fix #412 (details)
Email : $from field not correctly passed to inner implementation (details)
Installer internationalization. (details)
scrutinizer: exclude what we can (details)
IE8 Debugging (details)
Update UPLOAD_ERR constants, there were new values introduced since 5.1 (details)
Remove the « on » AJXP_DATE as AJXP_DATE is a relative date and must contain the correct word. Also should fix #250 and fix #252 @Ellega I let you check (details)
File sharing: check not only repository options, but META_SOURCES as well to detect if we need to store credentials. Should fix #265 (details)
Access.smb: do not escape password if replaced in UNC_PATH (necessary for MacOS) (details)
AuthRemote: Disable the local copy of the user when doing master/slave, should fix #382 and fix #40 (details)
Add an option to send error to error_log, close #402 (details)
Avoid loading Dropbox library if PEAR is not detected (details)
Files Metastore / S3 Metastore confusion. Fix #383 (details)
Fix #164 switching between two SFTP repositories implies some caching. (details)
Fix #419 (details)
Fix embeddable link if the publiclet_link already has a ?lang=… extension. (details)
Update change password size (details)
Connexion : Remove messageNode from XML response once displayed, otherwise it goes twice through displayMessage Fix parsedJSONCache, Display message in console if a console is detected, Fix IE8 problem with items beginning with a number (breaking CSS selector by ID). Editor.eml button, editor.codemirror left border (details)
Ignore Exif errors, otherwise it can break folder listing. (details)
Fix stack trace (details)
IE8 Mailer message box width (details)
A little mistake in language fr (details)
Always make sure the owner_id is not empty (details)
Show error details only if SERVER_DEBUG, otherwise group administrators see detail as well. (details)
DisableKeyBindings in change password modal Update « About » action style & content In Auth.multi, if there is a $regexp, search in all drivers Recursive search: search with regexp (details)
WP seems to send updateUser event BEFORE addUser … triggering an error on check password, so check if user exists before. (details)
checking fr.php (details)
Search repositories in default repositories as well. (details)
Set Dashboard as default repository in ROOT_ROLE Fix Dashboard tweaks: « welcome, userID » , password focus in webdav pane Fix Mobile template and Media queries CSS User Wiget: add a « down arrow » to make more visible the access to the user menu (details)
Mysql and Sqlite upgrade scripts for stable branch (5.2.0) (details)
Php update script (details)