I'd like to create patches that factor out the rate limiting (avoid repeated votes) out of votingapi it's own own (sub-)module.

Reasons:

  • Rate limiting especially for anonymous users is a rather complicated issue - and VotingAPI is currently not doing a perfect job at dealing with it. At least I need it to do better.
  • It might be useful for other modules as well
  • Currently it's handled in a rather implicit sort of way. This is one of the main reasons that [#269614] has no good solution.
  • Separating sub-systems sounds like the right thing to do.

Issues touched by this:

#424050: Limit Votes Per Day
#359066: Don't log IPs of registered voters
#123916: Allow multiple votes from anonymous users on a shared IP address
#1104580: Limit vote to one per IP Address
#1154990: Window for anonymous votes / users deleting their own votes
#1235494: User already voted - how to detect it?
#733478: Anonymous vote rollover: "immediately" doesn't work?
#396820: Anonymous vote rollover set to "Never" doesn't work
#1285344: Allow voting every 24 hours for authenticated and anonymous users
#1353434: Anonymous rating collection - can not understand.
#1461008: Browser Fingerprinting
#1510154: Need to get old sum before new vote is set
#860886: Multiple votes by one user on one node
#1337426: Allow users to vote several times for some entities
#1741048: Check voter's IP

Comments

iStryker’s picture

Category: feature » support
Priority: Normal » Major

with #1269614: Add pre-save or pre-set hook before data is store to database, #1880550: Need: Pre vote or Pre cast Event & #1882116: Need Action to delete or reset the vote patches and the use of Voting Rules, you can create custom conditions that solve all of these problems.

Example of a custom condition is #1885498: New Condition: compare the difference between the new and previous value with an additional value

Now my question is, should we be focusing on extending this module, by hard coding everything, or leverage Rules and extend it?

What are the pros and cons?

If things are hard-cored vs Rules, as they more efficient however less flexible?

It would be good to get a discussion going before we move forward.

torotil’s picture

Rules is also a lot harder to test and above all adds a lot of complexity.

Even if rules is used for that the data that the rules are based on needs to be gathered and stored.

pifagor’s picture

Issue summary: View changes
Status: Active » Closed (outdated)