PluginProbe ʕ •ᴥ•ʔ
Download Manager / trunk
Download Manager vtrunk
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 2 days ago FileList.php 4 years ago Hooks.php 3 years ago Package.php 1 year ago PackageController.php 6 months ago PackageLocks.php 5 months ago PackageTemplate.php 4 years ago RestAPI.php 3 years ago Shortcodes.php 2 days 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)];
102 }
103 wp_send_json($data);
104 }
105
106
107 }
108