aboutsummaryrefslogtreecommitdiff
path: root/app/views/user/manage.phtml
AgeCommit message (Collapse)Author
2025-12-08Minor refactor `<img class="icon">` -> `_i('...')` (#8297)Gravatar Inverle
2025-12-08Keep scroll state of page when closing the slider (#8295)Gravatar Inverle
2025-12-04Scaling of user statistics (#8277)Gravatar Alexandre Alapetite
Fix https://github.com/FreshRSS/FreshRSS/issues/8268 To better support user management on FreshRSS instance with many users. SQL speed improved. On a reduced test with 5 users, including some large accounts (PostgreSQL on a very tiny and slow server), improving from ~2.3s to ~1.8s, which gives ~20% speed improvement. Then tested with 1000 users, with only the default feed (on my old desktop computer): ```sh for i in {1..1000}; do ./cli/create-user.php --user=freshrss$i --password=freshrss; done app/actualize_script.php cli/access-permissions.sh ``` SQLite: ```console $ time cli/user-info.php | wc -l 1001 real 0m1.366s user 0m0.908s sys 0m0.475s ``` PostgreSQL: ```console $ time cli/user-info.php | wc -l 1001 real 0m28.498s user 0m12.137s sys 0m2.217s ``` MariaDB: ```console # time ./cli/user-info.php | wc -l 1001 real 0m49.485s user 0m1.276s sys 0m2.258s ``` Yes, SQLite is much faster - not a surprise for such use-cases, where the TCP connection is not re-used. I have added some CLI options to disable some statistics: ```sh cli/user-info.php --no-db-size --no-db-counts ``` For the Web UI, I have disabled detailed user statistics if it takes too long, and retrieve missing user statistics asynchronously via JavaScript. Lazy loading of the user details based on IntersectionObserver, with maximum 10 requests in parallel. Web UI tested on 1000 users as well. Checked with SeaMonkey.
2025-11-03Update manage.phtml (#8185)Gravatar maTh
I think that the placeholder for new user names should not be "demo". An empty field is good enough IMHO <img width="825" height="533" alt="grafik" src="https://github.com/user-attachments/assets/e2bde73b-4472-4bf7-ac4e-81138f3d9a3f" /> <img width="866" height="516" alt="grafik" src="https://github.com/user-attachments/assets/f7586470-d0e8-4962-9e5f-5aa6912670d3" />
2025-09-15Fix another user self-delete regression (#7877)Gravatar Inverle
Regression from #7763 Earlier regression which was fixed before #7626 In addition: * get rid of `data-toggle` (refactor) * show invalid login message if deleting account and entered incorrect password instead of redirect to 403 * remove unused reference to `r` parameter * `forgetOpenCategories()` on login not on any crypto form
2025-08-08New JS attribute: `data-auto-leave-validation` (#7785)Gravatar Inverle
Instead of a repeating pattern like: `<input type="text" value="something" data-leave-validation="something">`, you can now put a `data-auto-leave-validation="1"` attribute on a `<form>` for example, and it will automatically set the `data-leave-validation` attributes inside the form elements. `data_auto_leave_validation(parent)` from `extra.js` is called on slider open and page load. --------- Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr> Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>
2024-12-29templates and i18n: link back to rss feeds (#7162)Gravatar maTh
2024-08-01Minor update whitespace PHPCS rules (#6666)Gravatar Alexandre Alapetite
* Minor update whitespace PHPCS rules To simplify our configuration, apply more rules, and be clearer about what is added or removed compared with PSR12. Does not change our current conventions, but just a bit more consistent. * Forgotten *.phtml * Sort exclusion patterns + add a few for Extensions repo * Relaxed some rules
2023-12-18Pass PHPStan level 8 (#5946)Gravatar Alexandre Alapetite
* Pass PHPStan level 8 And prepare for PHPStan level 9 https://phpstan.org/user-guide/rule-levels * Revert wrong replace in comment * Fix PHPStan level 8 * Update PHPStan and other dev dependencies * Remove obsolete comment * noVariableVariables and towards bleedingEdge https://github.com/phpstan/phpstan-strict-rules https://phpstan.org/blog/what-is-bleeding-edge * More bleedingEdge * A bit more PHPStan level 9 * More PHPStan level 9 * Prepare for booleansInConditions Ignore int and null * Revert wrong line * More fixes * Fix keep_max_n_unread * Stricter attribute functions * Stricter callHooks and more PHPStan level 9 * More typing * A tiny more
2023-11-16Use strict_types (#5830)Gravatar Luc SANCHEZ
* Little's optimisations and booleans in conditions * Apply strict type * Apply strict type * Apply strict type * Fix multiple bugs with PHP 8.2 and 8.3 * Many declares missing, more errors fixed * Apply strict type * Another approach * Stronger typing for Minz_Session * Fix case of SQLite --------- Co-authored-by: Luc <sanchezluc+freshrss@gmail.com> Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2023-10-29Improve table scrolling (#5774)Gravatar maTh
* class table-wrapper added * class scrolbar-thin added --------- Co-authored-by: math-gh <>
2023-04-11config user settings in slider (#5094)Gravatar maTh
2023-01-19Safer timezone set (#5021)Gravatar Alexandre Alapetite
* Safer timezone set Add missing tzdata in Docker :newest Fallback to UTC if no timezone is defined at all #fix https://github.com/FreshRSS/FreshRSS/pull/4906#issuecomment-1386747169 * Better refactoring Show fallback timezone everywhere
2022-11-29User-defined time zone (#4906)Gravatar Alexandre Alapetite
* User-defined time zone #fix https://github.com/FreshRSS/FreshRSS/issues/2754 * Update app/i18n/nl/conf.php Co-authored-by: Frans de Jonge <fransdejonge@gmail.com> * Timezone when creating a new user Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>
2021-12-31Add PHPStan (#4021)Gravatar Alexandre Alapetite
* Add PHPStan #fix https://github.com/FreshRSS/FreshRSS/issues/4016 https://phpstan.org/ ```sh composer run-script phpstan ``` * More fixes * Fix global variables * Add .phtml * Fix merge https://github.com/FreshRSS/FreshRSS/pull/4090 * Fix more warnings * Fix view errors and enable in CI * ReturnTypeWillChange * Dynamic view type * Fix Minz static/self bug
2021-12-03Fix: double main tags (#4014)Gravatar maTh
* replace div with main * include the slider into main * format source * add close icon for the extension slider * replace div with main * Update shortcut.phtml * fixed the nits
2021-11-11a to button (#3969)Gravatar maTh
2021-09-11Headline structure improvement (#3830)Gravatar maTh
* header: h1 deleted - full logo included * template: config - display * WIP * shortcut configs. added fieldset. do not display the border by default * system.phtml * subscription: add feed or category * wip * wip * Update bookmarklet.phtml * Update archiving.phtml * Update queries.phtml * Update profile.phtml * Update manage.phtml * auth+update * Update template.rtl.css * fixed FreshRSS logo (Theme: Mapco) * Update mapco.rtl.css * Update _layout.scss * fixed FreshRSS logo (theme: Dark) * fix: FreshRSS logo (Theme: BlueLagoon) * fix: FreshRSS logo (Theme: Ansum) * fixed: FreshRSS logo (Theme: Alternative Dark) * fix: FreshRSS logo (Theme: Pafat) * fix: FreshRSS logo (Theme: Screwdriver) * fix: FreshRSS logo (theme: Swage) * Minor lint * little fix: FreshRSS logo (Theme: Origine) * Fix: FreshRSS logo (Theme: Origine Compact) Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2021-09-03Fixed: overflowing tables on small screens (#3819)Gravatar maTh
* fix * overflow-x * a better fix, that fix all tables * Revert "a better fix, that fix all tables" This reverts commit 3bc94473474607415e30e2056899975421fb8a01. * user list table with wrapper * scrolling table: extension table
2021-08-20Improve the link "back to RSS feeds": set a CSS class (#3761)Gravatar maTh
* templates * improved CSS class names
2021-06-01Fix user creation form redirection (#3656)Gravatar Alexis Degrugillier
Before, when there was an error during the user creation process, the user was always redirected to the same page no matter where the creation process was initiated (registration or creation by an admin). Thus, there were no error messages displayed when something went bad during the creation process by an admin. Now, the origin of the user creation has been added to the form to be able to redirect the user to the proper page.
2021-05-08Minor uniform stricter HTML (#3616)Gravatar Alexandre Alapetite
2021-02-28Travis: Enforce phpcs line length + whitespace (#3488)Gravatar Alexandre Alapetite
* Update Travis line length * Also check whitespace in CSS files * Fix line length ext.php * More syntax, string templates * Fix exclude-pattern * Test JS files as well
2020-06-14Add a way to disable/enable users (#3056)Gravatar Alexis Degrugillier
If you want to block users without deleting their account, you can now disable them from the interface.
2020-05-092914 show last login date (#2936)Gravatar equinoxmatt
* Add new last_login param to default user config * Add English translation strings for last login feature * Update last_login when user successfully logs in. * Add last_login column to manage users screen * Add last_login to user details screen * Remove accidental docker-compose.yml * Fix whitespace * Use last modified time for config file * Remove last_login field from default user config * Touch user configuration file upon succesful login * Add translations with todos * Fix whitespace * Use last_user_activity * Semi-colomn Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2020-04-20Enhance the way help elements are displayed (#2911)Gravatar Julien-Pierre Avérous
* - Always display help under the targeted element. - Use same help place for HTTP authentication in 'add' feed view than in 'update' feed view. - Move help under input field in register view, as all other places (homogeneity). * - Don't use "!important" as suggested by @Alkarex.
2020-01-06Add an admin flag on users (#2709)Gravatar Alexis Degrugillier
Now FRSS supports more than one admin. Admins have the same rights as the default user. Admins can promote or demote other users. The default user is considered as an admin even if it does not have the admin flag enabled. See #2096
2019-12-07Add user language displayGravatar Alexis Degrugillier
When managing users, I've added the language they selected to be able to communicate with them with the selected language (if I know it). It could be useful when managing a community or a paid service.
2019-12-03Upgrade user management page (#2417)Gravatar Alexis Degrugillier
Before, the use of the user management page was a little bit tedious when there was many users. One must select a user to view some metrics, to update it, or to delete it. Now, the view is clearer because it shows all users at once with their metrics. I introduced a detail page that repeats the metrics but also allow to purge the user's feeds, to update or delete the user. This is the first step to make that page more useful and user-friendly. I have in mind to add a pager for when there is a lot of users, a metric to know when was the last time the user was using the application, and a flag to know if the user has admin rights. See #2096 and #2504 for ideas and inspiration
2019-10-23Take advantage of PHP 5.4+ short echo (#2585)Gravatar Alexandre Alapetite
* Take advantage of PHP 5.4+ short echo https://php.net/migration54.new-features thanks to https://github.com/FreshRSS/FreshRSS/pull/2495 Use `<?= ?>` instead of `<?php echo; ?>` 10kB of code saved :-) Done with regular expression: ``` <\?php echo (.+?);? *\?> <?= \1 ?> ``` * Try Travis fix https://github.com/squizlabs/PHP_CodeSniffer/issues/2045#issuecomment-395238272
2019-08-29Provide email address verification feature (#2481)Gravatar Marien Fressinaud
* Add an email field to the profile page I reuse the `mail_login` from the configuration. I'm not sure if it's useful today (I would say it was used when Persona login was available). A good improvement would be to rename `mail_login` into `email` so it would be more intuitive to use. * Add boolean to the conf to force email validation This commit only adds a configuration item. * Add email during registration if email must be validated * Set email token to validate when email changes * Block access to FreshRSS if email is not validated * Send email when address is changed * Allow to resend the validation email * Allow the user to change its email while blocked * Document the email validation feature * fixup! Allow the user to change its email while blocked * tec: Autoload PHPMailer lib * Validate email address format * Add feedback on validation email resend action * Allow to logout when user is blocked * fix: Change default email "from" * Reorganize i18n keys * Complete all the locales with default english * Hide sidebar (profile page) if email is not validated * Check email requirements on registration * Allow admin to specify email when creating users * Don't check email format if value is empty * Remove trailing comma in userController Co-Authored-By: Alexandre Alapetite <alexandre@alapetite.fr> * Set PHPMailer validator to html5 before sending email * fixup! Remove trailing comma in userController
2019-02-23JavaScript fixes + new navigation loop behaviour (#2255)Gravatar Alexandre Alapetite
* Fixed user configuration 404 https://github.com/FreshRSS/FreshRSS/pull/2234#issuecomment-466561555 * Fixed "SPACE" shortcut bug https://github.com/FreshRSS/FreshRSS/pull/2234#issuecomment-466626412 * Use next feed / previous feed when reaching last / first article instead of looping * Jump to next / previous category when reaching last / first feed instead of looping
2018-05-01Use HTML autocomplete new-password (#1877)Gravatar Alexandre Alapetite
* Use HTML autocomplete new-password https://github.com/FreshRSS/FreshRSS/issues/1841#issuecomment-376551901 autocomplete="new-password" for user management pages https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion * autocomplete username https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#attr-fe-autocomplete-username
2018-02-14Allow admin user to reset passwords (#1765)Gravatar Alexis Degrugillier
See #960
2017-02-25Remove maxlength for usernamesGravatar Alexandre Alapetite
pattern is already used
2017-02-25Missing checkUsername and const pattenGravatar Alexandre Alapetite
https://github.com/FreshRSS/FreshRSS/pull/1423 https://github.com/YunoHost-Apps/freshrss_ynh/issues/27#issuecomment-279792363
2017-02-16delete - and . from accepted charGravatar Clément
2017-02-16Possibility to register user having a '-', a '_' or a '.' in usernameGravatar Clément
2016-10-04Fix bug language option for new userGravatar Alexandre Alapetite
https://github.com/FreshRSS/FreshRSS/issues/1273
2016-08-13CSRF token, update HTTP Referrer policy to same-originGravatar Alexandre Alapetite
https://www.w3.org/TR/referrer-policy/#referrer-policy-no-referrer https://github.com/FreshRSS/FreshRSS/issues/570 https://github.com/FreshRSS/FreshRSS/issues/955 https://github.com/FreshRSS/FreshRSS/issues/1198 https://github.com/FreshRSS/FreshRSS/issues/565 https://github.com/FreshRSS/FreshRSS/issues/554
2016-07-31Remove Mozilla Persona loginGravatar Alexandre Alapetite
https://github.com/FreshRSS/FreshRSS/issues/1052
2015-01-26Password format on profile and manage user pagesGravatar Marien Fressinaud
Related to https://github.com/FreshRSS/FreshRSS/commit/ec75139939780810f43f4e85fbf37de2409fe584 See https://github.com/FreshRSS/FreshRSS/issues/769
2015-01-13Fix user interaction with showing password featureGravatar Marien Fressinaud
Before, the password was hidden again after 2 seconds. Now, the password is hidden when the mouse is released Fix https://github.com/FreshRSS/FreshRSS/issues/734
2015-01-08Fix bug with Minz_TranslateGravatar Marien Fressinaud
When a path was registered before initialization, it was not considered unless by calling reset() method. This is fixed now.
2015-01-06Fix i18n loading and availableLanguages callsGravatar Marien Fressinaud
- Change the way to init i18n - Add a availableLanguages() method to Minz_Translate See https://github.com/FreshRSS/FreshRSS/issues/730
2015-01-05Change name of user configuration var in ContextGravatar Marien Fressinaud
- FreshRSS_Context::$conf is replaced by FreshRSS_Context::$user_conf - Introduce FreshRSS_Context::$system_conf - Remove FreshRSS_Configuration object See https://github.com/FreshRSS/FreshRSS/issues/730
2014-12-11Fix french i18n for last viewsGravatar Marien Fressinaud
2014-10-30Fix coding style formatNumber and formatBytesGravatar Marien Fressinaud
2014-10-20Use FreshRSS_Context::$conf onlyGravatar Marien Fressinaud
- Replace $this->view->conf in controllers - Replace $this->conf in views
2014-10-17Fix i18nGravatar Marien Fressinaud