Commit Graph

122 Commits

Author SHA1 Message Date
Lephe c59e844852
forum: count comments for all presented topics in a single request (#63)
It appears as though performing a lot of requests is the most costly
aspect of listing comment counts per topic; this change aims to address
that by reading all the counts in a single request.

On my computer, this changes loading times from an absolute 100-200 ms to
50-100 ms most of the time. The request impact is not easy to measure as a
couple ms is small enough to fall in the range of disk access and other
semi-random events.
2021-07-07 17:26:22 +02:00
Darks 8bdf3909ea
login_as: fixed some issues
See https://gitea.planet-casio.com/devs/PCv5/issues/90#issuecomment-1131
2021-03-06 11:36:35 +01:00
Darks 87ef91b9e3
login_as: add function to login as arbitrary account 2021-03-05 23:56:03 +01:00
Lephe 07a91c4663
admin: show group CSS on user editor 2021-02-27 11:50:40 +01:00
Lephe 1d63d05c1e
admin: show trophy icons on user editor 2021-02-27 11:42:29 +01:00
Lephe 6f98cba65e
review of privileges and forum permissions
* Sorted privileges into categories, similar to the v4.3 style

Added privilege check utilities:
* Forum: is_news(), is_default_accessible() and is_default_postable()
* Member: can_access_forum(), can_post_in_forum(), can_edit_post(),
  and can_delete_post()

Unfortunately current_user is not a Guest when logged out, so one
cannot usually write current_user.can_*() without checking for
authentication first, so the checks are still somewhat verbose.

Reviewed forum permissions; the following permission issues have been
fixed (I have tested most but not all of them prior to fixing):

* app/routes/forum/index.py: Users that were not meant to access a
  forum could still obtain a listing of the topics
* app/routes/forum/topic.py: Users that were not meant to see topics
  could still read them by browsing the URL
* app/routes/forum/topic.py: Authenticated users could post in any
  topic, including ones that they should not have access to
* app/routes/posts/edit.py: Users with edit.posts (eg. mods) could edit
  and delete messages in forums they can't access (eg. creativecalc)

* app/templates/account/user.html: Users with admin panel access would
  see account editing links they can't use (affects developers)
* app/templates/base/navbar/forum.html: The "Forum" tab would list all
  forums including ones the user doesn't have access to
* app/templates/forum/index.html: Users would see every single forum,
  including ones they can't access
* app/template/widgets/thread.html: Anyone would see Edit/Delete links
  on every message, even though most were unusable

Miscellaneous changes:
* app/routes/forum/topic.py: Ordered comments by date as intended,
  which I assume worked by chance until now
* Removed the old assets/privs.txt files which is now superseded by the
  list implemented in app/data/groups.yaml

This commit changes group and forum information, run master.py with:
@> forums update
@> groups update
2021-02-26 18:32:45 +01:00
Eldeberen 938516cb3f
polls: added admin panel and deletion form 2021-02-22 23:50:19 +01:00
Eldeberen d6512bb197
polls: added multi-choices polls 2021-02-22 22:49:11 +01:00
Eldeberen f10d5404c2
forum: fix #84 2021-02-21 20:17:48 +01:00
Eldeberen cd8efcced8
Merge branch 'dev' of gitea.planet-casio.com:devs/PCv5 into polls 2021-02-20 01:36:04 +01:00
Eldeberen fabad32955
polls: add a panel to manage own polls 2021-02-20 01:28:08 +01:00
Eldeberen 473448ab5b
poll: add ability to vote
Fixed some bugs too
2021-02-20 00:33:34 +01:00
Eldeberen d2c5ddd874
polls: added models 2021-02-19 22:07:31 +01:00
Eldeberen c0bb2f5448
misc: small fixes 2021-02-18 00:04:28 +01:00
Eragon 9273430f9a
#84 Configuration de la durée avant nécropost 2021-01-12 17:34:50 +01:00
Eragon 4ddf60353c
#84 Passage du dernier post en cas de nécropost 2021-01-12 17:30:54 +01:00
Eragon c0ae3cc8ab
#84 Confirmation anti-nécropost 2021-01-12 16:40:52 +01:00
Darks 243ae43783
dev: added support for local development test files 2020-11-13 01:45:55 +01:00
Lephe 13b2bd2671
admin/members: add a full member list
... which can someday be filtered for names, shared IPs, registration
dates, and other useful tools.
2020-11-01 16:12:15 +01:00
Lephe 0be0d5ab65
admin/groups: show only users with groups or special privileges 2020-11-01 15:59:38 +01:00
Darks 510b57c08c
posts: fix attachements deletion 2020-09-26 15:17:55 +02:00
Darks 3b188e3bab
posts: add deletion 2020-09-26 14:55:55 +02:00
Darks 0d8dd70956
security: add CSRF protection globally
The decorator @check_csrf can be used to check CSRF protection when 
using GET links (like delete a post or logout)
2020-09-26 14:48:30 +02:00
Darks 5253f8ec8f
post edition: added redirection to topic (#49)
Beware that the urlparse method may return unsafe results… IDK
2020-09-24 23:25:25 +02:00
Darks ed5367d46d
editor: added previews 2020-09-23 23:58:25 +02:00
Darks da78d0da70
admin: add a page to get configuration used 2020-08-27 23:12:31 +02:00
Darks c5e99807e3
fix a typo in many files 2020-08-25 22:57:45 +02:00
Darks 7395835e71
refact: models files are nom uniform (all singular) 2020-08-06 21:19:01 +02:00
Darks 3fb3ee40d2
fix: better PEP8
Flake8 returns less errors. I ignored lots of them though
2020-08-05 22:52:56 +02:00
Darks 3a35c26bd7
forum: add pagination to topic list (#64) 2020-08-02 17:28:43 +02:00
Darks 554898db87
attachments: merged attachments system into dev 2020-08-01 21:47:25 +02:00
Darks 56a584c535
attachments: added attachments system
Still need some work on it…
2020-08-01 21:26:06 +02:00
Lephe 7e11469183
forum: add basic comment edition with preview
Limitations:
* Works only for registered users
* Does not redirect to the proper MainPost page
* Does not check permissions
2020-08-01 17:30:44 +02:00
Lephe d3f137b92d
programs: add models for programs and topic promotions (#20)
Not tested yet since there is a lack of tools to manipulate comments,
topics and programs. The /programmes routes is used to display a list of
all programs, temporarily.
2020-08-01 15:11:19 +02:00
Darks a4efe29a7d
__init__.py: refactor registration of assets 2020-07-30 14:49:18 +02:00
Darks b108ce4cfe
titles: add displayed title (#65)
- with forms for user and admins
2020-07-29 00:57:06 +02:00
Darks e35910ee76
config: refactor configuration values
- System/host config values stay in `config.py`
- Application config values moves in corresponding models
- BREAK: AVATAR_FOLDER becomes DATA_FOLDER. Edit your local config if 
needed
2020-07-26 16:50:07 +02:00
Darks 0896a6b163
passwords: enhances passwords rules
- based on entropy (min 60 bits)
- adds a coloured progress bar if Js is enabled
2020-07-25 18:06:49 +02:00
Darks 889a091030
admin: ADD suivi des comptes inactifs, validation manuelle (#58) 2020-07-23 19:12:37 +02:00
Darks 77bcb99ea1
account: ADD mot de passe oublié 2020-07-21 22:12:18 +02:00
Darks 8bf825f9ea
registration: ADD email validation 2020-07-21 21:06:00 +02:00
Darks 1b17234623
trophies: ADD hidden parameter, FIX admin panel 2020-07-20 19:35:05 +02:00
Darks 4d3e1a14f3
profil: complétion de la page de profil (#9) 2020-07-19 21:14:34 +02:00
Darks ec73177f48
refactor: Un peu de nettoyage (debugging prints, routes, …) 2020-07-18 10:13:21 +02:00
Darks 34bc74b8e5
feat(forum): ajout du post invité sur les topics (#36)
- Encore une fois, penser à faire ces ACL… (#40)
2020-07-18 07:52:29 +02:00
Darks e6c1545031
feature: ajout du post en tant qu'invité
- Pour les commentaires seulement
- Ajout d'une option pour désactiver (antispam)
- Penser à faire les ACL rapidement…
- Un poil de CSS pour l'intégration du bouzin
2020-07-17 23:49:04 +02:00
Darks 1ef055f629
enhancement: added modularity to converters 2020-07-17 00:17:11 +02:00
Lephe 17c78204a6
update the route model for the forum to <id>/<page>/<slug>
This works by bundling the topic object and page number in a pair during
conversion to/from URL, so that the slug can be computed effortlessly
and put in all links.
2020-07-16 23:58:21 +02:00
Darks 19d09a71df
Passage des routes en français (#41) 2019-12-16 23:57:50 +01:00
Darks 255ce8ad60
Corrige un bug remonté par Lephe (#40) 2019-12-11 13:13:01 +01:00