PluginProbe ʕ •ᴥ•ʔ
Download Manager / 3.3.62
Download Manager v3.3.62
3.3.62 3.3.61 3.3.60 3.3.59 3.3.58 3.3.57 3.3.56 trunk 2.1.3 2.3.0 2.5.96 2.5.97 2.6.2 2.6.96 2.8.3 2.9.99 3.0.4 3.1.05 3.1.07 3.1.08 3.1.11 3.1.12 3.1.14 3.1.17 3.1.18 3.1.22 3.1.23 3.1.24 3.1.25 3.1.26 3.1.27 3.1.28 3.2.04 3.2.13 3.2.14 3.2.16 3.2.18 3.2.19 3.2.21 3.2.22 3.2.23 3.2.24 3.2.25 3.2.27 3.2.28 3.2.29 3.2.30 3.2.31 3.2.32 3.2.33 3.2.34 3.2.35 3.2.37 3.2.38 3.2.39 3.2.40 3.2.41 3.2.42 3.2.43 3.2.44 3.2.45 3.2.46 3.2.47 3.2.48 3.2.49 3.2.50 3.2.51 3.2.52 3.2.53 3.2.54 3.2.55 3.2.56 3.2.57 3.2.58 3.2.59 3.2.60 3.2.61 3.2.63 3.2.64 3.2.65 3.2.66 3.2.67 3.2.68 3.2.69 3.2.70 3.2.71 3.2.72 3.2.73 3.2.74 3.2.75 3.2.76 3.2.77 3.2.78 3.2.79 3.2.80 3.2.81 3.2.82 3.2.83 3.2.84 3.2.85 3.2.86 3.2.87 3.2.88 3.2.89 3.2.90 3.2.91 3.2.92 3.2.93 3.2.94 3.2.95 3.2.96 3.2.97 3.2.98 3.2.99 3.3.00 3.3.01 3.3.02 3.3.03 3.3.04 3.3.05 3.3.06 3.3.07 3.3.08 3.3.09 3.3.10 3.3.11 3.3.12 3.3.13 3.3.14 3.3.15 3.3.16 3.3.17 3.3.18 3.3.19 3.3.20 3.3.21 3.3.22 3.3.23 3.3.24 3.3.25 3.3.26 3.3.27 3.3.28 3.3.29 3.3.30 3.3.31 3.3.32 3.3.33 3.3.34 3.3.35 3.3.36 3.3.37 3.3.38 3.3.39 3.3.40 3.3.41 3.3.42 3.3.43 3.3.44 3.3.45 3.3.46 3.3.47 3.3.48 3.3.49 3.3.50 3.3.51 3.3.52 3.3.53 3.3.54 3.3.55
download-manager / src / Package / PackageLocks.php
download-manager / src / Package Last commit date
views 1 week ago FileList.php 5 years ago Hooks.php 3 years ago Package.php 1 year ago PackageController.php 1 week ago PackageLocks.php 1 week ago PackageTemplate.php 5 years ago RestAPI.php 3 years ago Shortcodes.php 1 week ago
PackageLocks.php
108 lines
1 <?php
2
3 namespace WPDM\Package;
4
5 global $gp1c, $tbc;
6
7
8 use WPDM\__\__;
9 use WPDM\__\Crypt;
10 use WPDM\__\Session;
11 use WPDM\__\Template;
12
13
14 class PackageLocks
15 {
16
17 public function __construct(){
18
19 }
20
21 public static function askPassword($package){
22 ob_start();
23 $unqid = uniqid();
24 $field_id = $unqid.'_'.$package['ID'];
25 include Template::locate("lock-options/password-lock.php", __DIR__.'/views');
26 $data = ob_get_clean();
27 return $data;
28 }
29
30 public static function reCaptchaLock($package, $buttononly = false){
31 ob_start();
32 $force = str_replace("=", "", base64_encode("unlocked|" . date("Ymdh")));
33 include Template::locate("lock-options/recaptcha-lock.php", __DIR__.'/views');
34 return ob_get_clean();
35 }
36
37 function validateCaptcha()
38 {
39 $limit = get_option('__wpdm_private_link_usage_limit', 3);
40 $xpire_period = ((int)get_option('__wpdm_private_link_expiration_period', 3)) * ((int)get_option('__wpdm_private_link_expiration_period_unit', 60));
41 $xpire_period = $xpire_period > 0 ? $xpire_period : 3600;
42 $ret = wpdm_recaptcha_enterprise_verify(wpdm_query_var('reCaptchaVerify'), 'DOWNLOAD');
43 if ($ret['success']) {
44 $download_url = WPDM()->package->expirableDownloadLink(wpdm_query_var('__wpdm_ID', 'int'), $limit, $xpire_period);
45 $data['downloadurl'] = $download_url;
46 } else {
47 $data['error'] = __("Captcha Verification Failed!", "wpmdpro");
48 }
49
50 wp_send_json($data);
51 die();
52 }
53
54 function validatePassword()
55 {
56 $password = isset($_REQUEST['password']) ? sanitize_text_field($_REQUEST['password']) : null;
57 $packageID = wpdm_query_var('__wpdm_ID', ['validate' => 'int']);
58 $passwords = WPDM()->package->isPasswordProtected($packageID);
59 $passwordUsage = maybe_unserialize(get_post_meta($packageID, '__wpdm_password_usage', true));
60 $passwordUsageLimit = (int)get_post_meta($packageID, 'password_usage_limit', true);
61
62 if(!$password || !$packageID) wp_send_json(['msg' => __("Invalid request!", "download-manager"), 'success' => false]);
63
64 $limit = (int)get_option('__wpdm_private_link_usage_limit', 3);
65 if($limit < 1) $limit = 3;
66 $expirePeriod = ((int)get_option('__wpdm_private_link_expiration_period', 60)) * ((int)get_option('__wpdm_private_link_expiration_period_unit', 60));
67 $expirePeriod = $expirePeriod > 0 ? $expirePeriod : 3600;
68
69 $data = [ 'success' => false ];
70 $error = false;
71
72 //Check if given password lock is not active
73 if (!$passwords) {
74 $data['message'] = __("Invalid request!", "download-manager");
75 $file = array();
76 $error = true;
77 wp_send_json($data);
78 }
79
80 //Check if the given password is matched
81 if ($passwords && $password != $passwords && substr_count($passwords, "[$password]") < 1) {
82 $data['message'] = __("Wrong Password!", "download-manager") . " &nbsp; <span><i class='fas fa-redo'></i> " . __("Try Again", "download-manager") . " </span>";
83 $error = true;
84 }
85
86 //Check if given password is empty
87 if ($passwords && $password == '') {
88 $data['message'] = __("Wrong Password!", "download-manager") . " &nbsp; <span class='color-blue'><i class='fas fa-redo'></i> " . __("Try Again", "download-manager") . " </span>";
89 $file = array();
90 $error = true;
91 }
92
93 $passwordUsed = wpdm_valueof($passwordUsage, $password, ['validate' => 'int']);
94 if( $passwordUsageLimit > 0 && $passwordUsed >= $passwordUsageLimit)
95 $data['message'] = __("Password usages limit exceeded", "download-manager");
96 else if(!$error){
97 if(!is_array($passwordUsage)) $passwordUsage = [];
98 Session::set("pass_verified_" . $packageID, 1);
99 $passwordUsage[$password] = wpdm_valueof($passwordUsage, $password, ['validate' => 'int']) + 1;
100 update_post_meta($packageID, '__wpdm_password_usage', $passwordUsage);
101 $data = ['success' => true, 'downloadurl' => WPDM()->package->expirableDownloadLink($packageID, $limit, $expirePeriod)];
102 }
103 wp_send_json($data);
104 }
105
106
107 }
108