an old membership is also valid for discussion
[fsfdrupalauth.git] / lib / Auth / Source / FSFDrupalAuth.php
index b9b808af2bd3c1beb2813b814b990a8344770ce6..4f365ca625a6b2e4c294c1c6975cde2597b5d399 100644 (file)
@@ -49,6 +49,7 @@ class FSFDrupalAuth extends \SimpleSAML\Module\core\Auth\UserPassBase
     private $query_nomination_process_gift_receipt;
     private $query_nomination_process_adhoc;
 
+    private $query_discussion_process_old_membership;
     private $query_discussion_process_donations;
     private $query_discussion_process_gift_receipt;
     private $query_discussion_process_adhoc;
@@ -110,6 +111,7 @@ class FSFDrupalAuth extends \SimpleSAML\Module\core\Auth\UserPassBase
                'membership_monthly_rate',
                'student_membership_monthly_rate',
 
+               'query_discussion_process_old_membership',
                'query_discussion_process_donations',
                'query_discussion_process_gift_receipt',
                'query_discussion_process_adhoc',
@@ -340,6 +342,8 @@ class FSFDrupalAuth extends \SimpleSAML\Module\core\Auth\UserPassBase
                return $this->query_db($query_name, $parameters);
        };
 
+       $old_membership_query = $donation_query;
+
        $compare_res = function ($result, $amount) {
                foreach ($result[0] as $key => $value) {
                        if (intval($value) >= $amount) {
@@ -468,6 +472,7 @@ class FSFDrupalAuth extends \SimpleSAML\Module\core\Auth\UserPassBase
        //
 
        $donation_params    = ['start_date' => $discussion_process_start_date, 'end_date' => $discussion_process_end_date];
+       $old_member_params  = $donation_params;
        $gift_member_params = ['start_date' => $discussion_process_start_date, 'end_date' => $discussion_process_end_date, 'gift_redeem_page_id' => intval($this->gift_redeem_page_id)];
        $adhoc_params       = ['adhoc_access_group_id' => intval($this->discussion_process_adhoc_access_group_id)];
        $adhoc_params_no    = ['adhoc_access_group_id' => intval($this->discussion_process_adhoc_no_access_group_id)];
@@ -488,7 +493,8 @@ class FSFDrupalAuth extends \SimpleSAML\Module\core\Auth\UserPassBase
                        ': Not eligible for board nominee discussion process.');
                $attributes['discussion_process'] = ['false'];
 
-       } elseif ($discussion_process_analyze_history($donation_query('query_discussion_process_donations', $donation_params))
+       } elseif ($compare_res($old_membership_query('query_discussion_process_old_membership', $old_member_params), 1)
+               || $discussion_process_analyze_history($donation_query('query_discussion_process_donations', $donation_params))
                || $compare_res($donation_query('query_discussion_process_gift_receipt', $gift_member_params), 1)) {
 
                $attributes['discussion_process'] = ['true'];