Mercurial > hg > isophonics-drupal-site
diff core/lib/Drupal/Core/Flood/FloodInterface.php @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/lib/Drupal/Core/Flood/FloodInterface.php Wed Nov 29 16:09:58 2017 +0000 @@ -0,0 +1,71 @@ +<?php + +namespace Drupal\Core\Flood; + +/** + * Defines an interface for flood controllers. + */ +interface FloodInterface { + + /** + * Registers an event for the current visitor to the flood control mechanism. + * + * @param string $name + * The name of an event. To prevent unintended name clashes, it is recommended + * to use the module name first in the event name, optionally followed by + * a dot and the actual event name (e.g. "mymodule.my_event"). + * @param int $window + * (optional) Number of seconds before this event expires. Defaults to 3600 + * (1 hour). Typically uses the same value as the isAllowed() $window + * parameter. Expired events are purged on cron run to prevent the flood + * table from growing indefinitely. + * @param string $identifier + * (optional) Unique identifier of the current user. Defaults to the current + * user's IP address). + */ + public function register($name, $window = 3600, $identifier = NULL); + + /** + * Makes the flood control mechanism forget an event for the current visitor. + * + * @param string $name + * The name of an event. + * @param string $identifier + * (optional) Unique identifier of the current user. Defaults to the current + * user's IP address). + */ + public function clear($name, $identifier = NULL); + + /** + * Checks whether a user is allowed to proceed with the specified event. + * + * Events can have thresholds saying that each user can only do that event + * a certain number of times in a time window. This function verifies that + * the current user has not exceeded this threshold. + * + * @param string $name + * The name of an event. + * @param int $threshold + * The maximum number of times each user can do this event per time window. + * @param int $window + * (optional) Number of seconds in the time window for this event (default is 3600 + * seconds, or 1 hour). + * @param string $identifier + * (optional) Unique identifier of the current user. Defaults to the current + * user's IP address). + * + * @return + * TRUE if the user is allowed to proceed. FALSE if they have exceeded the + * threshold and should not be allowed to proceed. + */ + public function isAllowed($name, $threshold, $window = 3600, $identifier = NULL); + + /** + * Cleans up expired flood events. This method is called automatically on + * cron run. + * + * @see system_cron() + */ + public function garbageCollection(); + +}