[ Index ] |
PHP Cross Reference of phpBB-3.3.12-deutsch |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * 4 * This file is part of the phpBB Forum Software package. 5 * 6 * @copyright (c) phpBB Limited <https://www.phpbb.com> 7 * @license GNU General Public License, version 2 (GPL-2.0) 8 * 9 * For full copyright and license information, please see 10 * the docs/CREDITS.txt file. 11 * 12 */ 13 14 namespace phpbb\lock; 15 16 use phpbb\cache\driver\driver_interface as cache_interface; 17 use phpbb\config\config; 18 19 class posting 20 { 21 /** @var cache_interface */ 22 private $cache; 23 24 /** @var config */ 25 private $config; 26 27 /** @var string */ 28 private $lock_name = ''; 29 30 /** 31 * Constructor for posting lock 32 * 33 * @param cache_interface $cache 34 * @param config $config 35 */ 36 public function __construct(cache_interface $cache, config $config) 37 { 38 $this->cache = $cache; 39 $this->config = $config; 40 } 41 42 /** 43 * Set lock name 44 * 45 * @param int $creation_time Creation time of form, must be checked already 46 * @param string $form_token Form token used for form, must be checked already 47 * 48 * @return void 49 */ 50 private function set_lock_name(int $creation_time, string $form_token): void 51 { 52 $this->lock_name = sha1(((string) $creation_time) . $form_token) . '_posting_lock'; 53 } 54 55 /** 56 * Acquire lock for current posting form submission 57 * 58 * @param int $creation_time Creation time of form, must be checked already 59 * @param string $form_token Form token used for form, must be checked already 60 * 61 * @return bool True if lock could be acquired, false if not 62 */ 63 public function acquire(int $creation_time, string $form_token): bool 64 { 65 $this->set_lock_name($creation_time, $form_token); 66 67 // Lock is held for session, cannot acquire it unless special flag for testing is set 68 if ($this->cache->_exists($this->lock_name) && !$this->config->offsetExists('ci_tests_no_lock_posting')) 69 { 70 return false; 71 } 72 73 $this->cache->put($this->lock_name, true, $this->config['flood_interval']); 74 75 return true; 76 } 77 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Sun Jun 23 12:25:44 2024 | Cross-referenced by PHPXref 0.7.1 |