Commit Graph

2375 Commits

Author SHA1 Message Date
Linty 1be0527523 issue #2405 update smarty
and made Piwigo compatible with smarty 5.x
2025-09-17 12:05:48 +02:00
plegall b167a327e3 issue #2409 add search engine filter : expert mode
* new access system not implemented yet
* dark mode handled but needs review
2025-09-15 15:10:17 +02:00
plegall 124ac245a7 next release is 16.0.0beta2 2025-09-05 14:27:39 +02:00
plegall cd8c9b7db3 issue #2405 increase PHP required version from 7.1 to 7.4 for the upcoming Smarty update 2025-09-05 14:23:53 +02:00
Renarde-dev 21e77002bc Detect if piwigo is running in a container
Append info on PHP_OS in the template of `admin/maintenance_env.php` and in `include/functions.inc.php` -> `send_piwigo_infos()`

Detection works by checking if PHP is running on Linux then check if PID2 is kthreadd
Kthreadd is useless in a container so PID2 should not exist of be another process
If unable to read /proc/2/sched for some reason, assume a SELinux restriction and that PHP is not running in a container

`is_in_container()` doesn't differentiate between VMs or bare metal, it only check if PHP is running in a containerized environement via tools like docker or podman
2025-09-05 13:32:34 +02:00
Linty dbec498287 fixes #2404 notify users of impending API key expiration
Adds logic to detect when an API key is about to expire and sends a notification email to the user if the key expires within 7 days and no recent notification was sent. Introduces a new 'last_notified_on' column to the user_auth_keys table to track notification timing.
2025-09-04 17:21:53 +02:00
Linty c078cffb8b fixes #263 add i18n support to date formatting with IntlDateFormatter
Introduced a new format_date function that uses IntlDateFormatter for proper internationalization when available, falling back to the legacy implementation otherwise. The previous format_date function was renamed to format_date_legacy.
2025-09-04 14:10:12 +02:00
Linty 613dd410e5 issue #2364 fix guest author name and language key
Added support for bulk comment validation and deletion with updated confirmation messages and translations. Improved modal dialog behavior, including keyboard accessibility and button visibility. Updated CSS for consistent button styling across themes. Fixed author name display for guest comments.
2025-08-26 16:38:11 +02:00
Linty 57042cc475 fixes #2364 redesign admin comments management
Replaces legacy PHP comment management with a new interface for listing, filtering, selecting, validating, and deleting user comments. Updates templates and CSS for a modern, interactive experience, adds advanced filters, selection mode, and modal comment viewing. Removes obsolete server-side logic from comments.php and introduces new api methods for comment actions.
2025-08-26 14:35:31 +02:00
plegall 09a03d9818 issue #2386 optimize pwg.activity.getList
* fetch block of 10k rows from activity table instead of 500. It's not much slower and may avoid many loops to generate 100 lines of output aggregated lines.

* no need to perform a slow query to count the total number of filtered rows, we can just detect if there are more rows to aggregate to know if we have reached the last page.

* parse details only if we're on a new output key (which is discutable, but we use details only on new output line creation)
2025-08-12 16:03:49 +02:00
plegall 818233cd5e bug fixed: getActivityList, use the same SQL where clause to calculate max_line and fetch lines 2025-08-11 14:39:00 +02:00
Perrom 4dc2fc9f8d fixes #2386 update filters in users activity logs (#2399)
* Add an action filter and a date filter. 

* Additional filters on a specific object (photo/album/group) are available from their dedicated administration page.

* Performances of the page was improved : instead of loading 100k lines in activity table, we loop on 500 activity lines until 100 aggregated lines are found for the current page.
2025-08-08 15:17:50 +02:00
Perrom 2465654752 fixes #2362 add gallery filters options in admin (#2395)
Add a config page in admin for the search filters in the gallery. Privacy and default filters can be selected. Needs a database update.
2025-08-08 15:07:02 +02:00
Perrom d0ac05d951 fixes #2353 update images with upload form (#2385)
Add a mode to update photos with the upload form. Modify the upload formats form, so that it will update the photo with the same file extension.
2025-07-31 10:41:01 +02:00
Linty eec9a919a5 issue #2355 enforce ui context for API key management
...and improve profile JS. Replaces can_manage_api_key() with connected_with_pwg_ui() to ensure API key management is only allowed from UI logins, and sets 'connected_with' in session during auto-login. Refactors profile.js to respect canUpdatePreferences and canUpdatePassword, moves user state initialization to template, and improves preference reset/default logic. Also adjusts script loading and minor UI details in profile.tpl.
2025-07-07 08:58:27 +02:00
Perrom cd09c76c0c fixes #2380 favicon now visible from access warning page 2025-06-30 11:31:47 +02:00
HWFord b825f45537 fixes #2377 add 3XL and 4XL derivatives 2025-06-26 12:35:03 +02:00
Linty ae740ba3af fixes #2355 implement API key management system
- Added API key get, creation, editing, and revocation methods.

- Updated the profile template to include API key management features.

- Updated the database schema to support the new API key system, including additional fields for key management.

- Added client-side JavaScript functionality to handle API key operations and display responses.

- Update tools/htm.ws with the new way to authenticate.

- Restriction of certain api methods when used with an api key

- Backward compatibility with older apps
2025-06-09 20:35:57 +02:00
Linty 9bcc2cfa02 fixes #2354 add profile standard page 2025-05-05 21:40:59 +02:00
Linty 7f850c2938 issue #2354 update pwg.users.setInfo
and add pwg.users.setMyInfo method
2025-05-05 20:24:05 +02:00
HWFord f88472fa9c fixes #2345 create piwigo standard pages
create new theme standard pages with tpl, css, js and images
update backend to handle pages
add config use_standard_pages
on update set config to false, on install set config to true
add standard pages to no be ingored in git
2025-03-18 16:46:41 +01:00
plegall d5431e9476 issue #2341 fatal error on first call to send_piwigo_infos() 2025-03-12 09:37:44 +01:00
plegall 43afd60d00 issue #2335 whatever the API method called from admin, do not rebuild user_cache 2025-03-10 16:05:14 +01:00
plegall 4488e9bf6c issue #2341 more logger 2025-03-07 15:04:40 +01:00
plegall c931118561 fixes #2341 force reload conf.send_piwigo_infos_last_notice to avoid double exec 2025-03-06 11:59:18 +01:00
plegall 789c062837 fixes #2336 more details in Logger (execution_uuid) 2025-03-01 14:20:11 +01:00
plegall daef1ed375 fixes #2335 do not rebuild user_cache for Batch Manager Unit Mode 2025-03-01 14:16:51 +01:00
plegall 33b57be509 fixes #2334 wait user_cache rebuild for 20 seconds instead of 10 2025-03-01 12:24:13 +01:00
plegall 5eacda0d76 fixes #2333 avoid deadlock while waiting for user_cache rebuild 2025-03-01 12:04:41 +01:00
Linty cc675b712b fixes #2327 standardize password masking length in emails 2025-02-24 13:48:38 +01:00
HWFord 7f24787b42 fixes #2322 set to 0 if null
some values being used in $result are null
2025-02-18 10:24:33 +01:00
Linty a0ea91695b fixes #2323 switch language before generating the link 2025-02-14 12:07:11 +01:00
plegall 28a676b2d9 fixes #2311 single instance of user_cache generation 2025-01-10 10:59:56 +01:00
HWFord 5b7fffe786 fixes #2308 remove html and use previous redirect
The previous way worked fine with the redirect, adding a html added an extra step for users. The access denied page was only supposed to be used for pages that we don't have access to once connected
2025-01-08 11:33:27 +01:00
Linty 8f721fcb8b fixes #2303 replace the password in clear text with asterisks 2025-01-06 16:21:41 +01:00
plegall a3833eab9b fixes #2300 search engine robots should not index/follow combined categories 2024-12-31 16:14:15 +01:00
plegall 547c8a9b94 issue #2296 for install.php, we always need class PwgSession defined 2024-12-20 11:05:46 +01:00
Linty 627aa045ed fixes #2296 include the correct class file depending on the version of php 2024-12-20 10:45:36 +01:00
Linty 0645372570 fixes #2287 add a new language key 2024-12-19 16:40:38 +01:00
plegall fc5bc47bc3 fixes #1960 custom pwg_nl2br to avoid warning on PHP 8.1+ 2024-12-18 12:29:31 +01:00
Linty 047a447585 issue #2294 compatibility with PHP 8.4+ for session handling
PHP7+ to PHP 9 compatibility
2024-12-17 12:16:11 +01:00
plegall 5081acda91 fixes #2295 send_piwigo_infos, add core updates 2024-12-16 16:47:09 +01:00
plegall ff5e8e6168 fixes #2292 distinguish auth methods 2024-12-06 16:18:04 +01:00
Linty bb8f3d5715 fixes #2287 switch language before sending the email 2024-12-04 15:07:06 +01:00
Linty 465e6eced4 fixes #2281 rewording set and reset mail content 2024-11-25 11:06:43 +01:00
Linty 6e45a8f426 fixes #2281 use template for reset/activation mail
and change is_first_connection to has_already_logged_in for better naming
2024-11-20 21:06:02 +01:00
Linty f6a3d0749f fixes #2281 rename function for better clarity
first_connexion to is_first_connection
2024-11-20 18:09:02 +01:00
Linty 34296598d4 fixes #2281 add two default conf for reset and activation link
When a password activation or reset link is generated, the link expiry time is now defined in two conf: $conf[’password_reset_duration‘] with a default time of one hour and $conf[’password_activation_duration‘] with a default time of 72 hours.
2024-11-20 17:09:26 +01:00
Linty 431cb4b7b4 fixes #1152 unset last_visit columns from default_user 2024-11-19 17:17:01 +01:00
HWFord 4124a858f6 fixes #2279 sort list of dates by array key
for creation and posted date
2024-11-15 15:26:55 +01:00