Changeset 17887


Ignore:
Timestamp:
Sep 13, 2012, 5:36:56 PM (8 years ago)
Author:
Eric
Message:

UAM_UsrReg_Verif() function refactory - Step 1. problem still remains when $confguest_access = false;

Location:
extensions/UserAdvManager/trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • extensions/UserAdvManager/trunk/changelog.txt.php

    r17846 r17887  
    340340            Update it_IT, thanks to : Ericnet and virgigiole
    341341
    342 -- 2.40.6 : Bug 2744 fixed - User connexion rejection does not work if no group/status/privacy is set
     342-- 2.41.0 : Bug 2744 fixed - User connexion rejection does not work if no group/status/privacy is set
    343343*/
    344344?>
  • extensions/UserAdvManager/trunk/include/functions.inc.php

    r17886 r17887  
    6868
    6969      $userid = get_userid($user['username']);
    70        
     70         
    7171      // Looking for existing entry in last visit table
    7272      // ----------------------------------------------
     
    102102      }
    103103    }
    104     // Perform user logout after registration if not validated
    105     if ((isset($conf_UAM[39]) and $conf_UAM[39] == 'true') and !UAM_UsrReg_Verif($user['id']) )
    106     {
    107       invalidate_user_cache();
    108       logout_user();
    109       redirect(UAM_PATH.'rejected.php');
    110     }
    111   }
    112 
     104  }
     105
     106  // Perform user logout after registration if not validated
     107  if ((isset($conf_UAM[39]) and $conf_UAM[39] == 'true') and !UAM_UsrReg_Verif($user['id']))
     108  {
     109    invalidate_user_cache();
     110    logout_user();
     111    redirect(UAM_PATH.'rejected.php');
     112  }
    113113}
    114114
     
    456456    }
    457457  }
    458   elseif ((isset($conf_UAM[39]) and $conf_UAM[39] == 'true') and !UAM_UsrReg_Verif($user['id']))
     458  elseif ((isset($conf_UAM[39]) and $conf_UAM[39] == 'true') and UAM_UsrReg_Verif($user['id']) == false and is_admin()==false and is_webmaster() == false)
    459459  {
    460460    // Logged-in user cleanup, session destruction and redirected to custom page
    461461    // -------------------------------------------------------------------------
    462     invalidate_user_cache();
    463     logout_user();
    464     redirect(UAM_PATH.'rejected.php');
     462    if (UAM_UsrReg_Verif($user['id']))
     463    {
     464      $var2 = "UAM_UsrReg_Verif = True";
     465    }
     466    else
     467    {
     468      $var2 = "UAM_UsrReg_Verif = False";
     469    }
     470   
     471    if (is_admin())
     472    {
     473      $var3 = "is_admin = True";
     474    }
     475    else
     476    {
     477      $var3 = "is_admin = False";
     478    }
     479
     480    if (is_webmaster())
     481    {
     482      $var4 = "is_webmaster = True";
     483    }
     484    else
     485    {
     486      $var4 = "is_webmaster = False";
     487    }
     488    UAMLog($conf_UAM[39],$var2,$var3,$var4);
     489    //invalidate_user_cache();
     490    //logout_user();
     491    //redirect(UAM_PATH.'rejected.php');
    465492  }
    466493}
     
    518545  {
    519546    if (count($collection) > 0)
    520     {
     547        {
    521548      // Process if a non-admin nor webmaster user is logged
    522549      // ---------------------------------------------------
    523550      if (in_array($user['id'], $collection))
    524       {
     551        {
    525552        // Check lastvisit reminder state
    526553        // ------------------------------
     
    555582          redirect(UAM_PATH.'GT_del_account.php');
    556583        }
    557       }
     584        }
    558585      else // Process if an admin or webmaster user is logged
    559586      {
     
    586613            list($dbnow) = pwg_db_fetch_row(pwg_query('SELECT NOW();'));
    587614
    588             $query = "
     615                        $query = "
    589616UPDATE ".USER_LASTVISIT_TABLE."
    590617SET lastvisit='".$dbnow."'
     
    660687              // Reset confirmed user status to unvalidated
    661688              // ------------------------------------------
    662               $query = '
     689                                                  $query = '
    663690UPDATE '.USER_CONFIRM_MAIL_TABLE.'
    664691SET date_check = NULL
    665692WHERE user_id = "'.$user_id.'"
    666693;';
    667               pwg_query($query);
     694                                                  pwg_query($query);
    668695
    669696              // Get users information for email notification
    670697              // --------------------------------------------
    671               $query = '
     698                                                  $query = '
    672699SELECT id, username, mail_address
    673700FROM '.USERS_TABLE.'
    674701WHERE id = '.$user_id.'
    675702;';
    676               $data = pwg_db_fetch_assoc(pwg_query($query));
     703                                                  $data = pwg_db_fetch_assoc(pwg_query($query));
    677704           
    678705              demotion_mail($user_id, $data['username'], $data['mail_address']);
     
    726753  {
    727754    if (count($collection) > 0)
    728     {
     755        {
    729756      // Process if a non-admin nor webmaster user is logged
    730757      // ---------------------------------------------------
    731758      if (in_array($user['id'], $collection))
    732       {
     759        {
    733760        // Check ConfirmMail reminder state
    734761        // --------------------------------
     
    753780        if (!$reminder and isset($conf_UAM[32]) and $conf_UAM[32] == 'true')
    754781        {
    755           $typemail = 1;
     782                  $typemail = 1;
    756783         
    757784          // Get current user informations
     
    780807          redirect(UAM_PATH.'USR_del_account.php');
    781808        }
    782       }
     809        }
    783810      else // Process if an admin or webmaster user is logged
    784811      {
     
    908935  $conf_UAM = unserialize($conf['UserAdvManager']);
    909936 
    910   include_once(PHPWG_ROOT_PATH.'include/functions_mail.inc.php');
    911  
    912   $infos1_perso = "";
     937        include_once(PHPWG_ROOT_PATH.'include/functions_mail.inc.php');
     938 
     939        $infos1_perso = "";
    913940  $infos2_perso = "";
    914941  $subject = "";
     
    11491176  $conf_UAM_ConfirmMail = unserialize($conf['UserAdvManager_ConfirmMail']);
    11501177 
    1151   include_once(PHPWG_ROOT_PATH.'include/functions_mail.inc.php');
     1178        include_once(PHPWG_ROOT_PATH.'include/functions_mail.inc.php');
    11521179 
    11531180// We have to get the user's language in database
     
    12071234          $infos1 = get_user_language_desc(preg_replace($patterns, $replacements, $conf_UAM_ConfirmMail[2]))."\n\n";
    12081235        }
    1209         else $infos1 = l10n(preg_replace($patterns, $replacements, $conf_UAM_ConfirmMail[2]))."\n\n";
     1236                                else $infos1 = l10n(preg_replace($patterns, $replacements, $conf_UAM_ConfirmMail[2]))."\n\n";
    12101237
    12111238        $infos2 = array
     
    12141241          get_l10n_args('', ''),
    12151242        );       
    1216       }
     1243                        }
    12171244
    12181245// Set reminder true
     
    12251252      pwg_query($query);
    12261253     
    1227     break;
     1254                break;
    12281255     
    12291256    case 2: //Generating email content for remind without a new key
     
    12781305     
    12791306    break;
    1280   }
     1307        }
    12811308 
    12821309  pwg_mail($email, array(
     
    13041331  $subject = "";
    13051332 
    1306   include_once(PHPWG_ROOT_PATH.'include/functions_mail.inc.php');
     1333        include_once(PHPWG_ROOT_PATH.'include/functions_mail.inc.php');
    13071334
    13081335// We have to get the user's language in database
     
    13861413  $conf_UAM = unserialize($conf['UserAdvManager']);
    13871414 
    1388   include_once(PHPWG_ROOT_PATH.'include/functions_mail.inc.php');
    1389  
    1390   $custom_txt = "";
     1415        include_once(PHPWG_ROOT_PATH.'include/functions_mail.inc.php');
     1416 
     1417        $custom_txt = "";
    13911418  $subject = "";
    13921419
     
    14911518  $conf_UAM = unserialize($conf['UserAdvManager']);
    14921519 
    1493   include_once(PHPWG_ROOT_PATH.'include/functions_mail.inc.php');
    1494  
    1495   $custom_txt = "";
     1520        include_once(PHPWG_ROOT_PATH.'include/functions_mail.inc.php');
     1521 
     1522        $custom_txt = "";
    14961523  $subject = "";
    14971524
     
    17831810    pwg_query($query);
    17841811
    1785     $query = "
     1812                $query = "
    17861813UPDATE ".USER_INFOS_TABLE."
    17871814SET registration_date = '".$dbnow."'
    17881815WHERE user_id = '".$user_id."'
    17891816;";
    1790     pwg_query($query);
     1817                pwg_query($query);
    17911818   
    17921819    return get_absolute_root_url().UAM_PATH.'ConfirmMail.php?key='.$Confirm_Mail_ID.'&userid='.$user_id;
     
    19221949      if (!empty($registration_date))
    19231950      {
    1924         // Verify Confirmmail with time limit ON
     1951                                // Verify Confirmmail with time limit ON
    19251952        // -------------------------------------
    1926         if (isset ($conf_UAM_ConfirmMail[1]))
    1927         {
    1928           // Dates formating and compare
     1953                                if (isset ($conf_UAM_ConfirmMail[1]))
     1954                                {
     1955                                        // Dates formating and compare
    19291956          // ---------------------------
    1930           $today = date("d-m-Y"); // Get today's date
    1931           list($day, $month, $year) = explode('-', $today); // explode date of today           
    1932           $daytimestamp = mktime(0, 0, 0, $month, $day, $year);// Generate UNIX timestamp
    1933        
    1934           list($regdate, $regtime) = explode(' ', $registration_date); // Explode date and time from registration date
    1935           list($regyear, $regmonth, $regday) = explode('-', $regdate); // Explode date from registration date
    1936           $regtimestamp = mktime(0, 0, 0, $regmonth, $regday, $regyear);// Generate UNIX timestamp
    1937      
    1938           $deltasecs = $daytimestamp - $regtimestamp;// Compare the 2 UNIX timestamps
    1939           $deltadays = floor($deltasecs / 86400);// Convert result from seconds to days
    1940 
    1941           // Condition with the value set for time limit
     1957                                        $today = date("d-m-Y"); // Get today's date
     1958                                        list($day, $month, $year) = explode('-', $today); // explode date of today                                             
     1959                                        $daytimestamp = mktime(0, 0, 0, $month, $day, $year);// Generate UNIX timestamp
     1960                       
     1961                                list($regdate, $regtime) = explode(' ', $registration_date); // Explode date and time from registration date
     1962                                        list($regyear, $regmonth, $regday) = explode('-', $regdate); // Explode date from registration date
     1963                                        $regtimestamp = mktime(0, 0, 0, $regmonth, $regday, $regyear);// Generate UNIX timestamp
     1964                       
     1965                                        $deltasecs = $daytimestamp - $regtimestamp;// Compare the 2 UNIX timestamps     
     1966                                        $deltadays = floor($deltasecs / 86400);// Convert result from seconds to days
     1967
     1968                                        // Condition with the value set for time limit
    19421969          // -------------------------------------------
    1943           if ($deltadays <= $conf_UAM_ConfirmMail[1]) // If Nb of days is less than the limit set
    1944           {
    1945             list($dbnow) = pwg_db_fetch_row(pwg_query('SELECT NOW();'));
     1970                                        if ($deltadays <= $conf_UAM_ConfirmMail[1]) // If Nb of days is less than the limit set
     1971                                        {
     1972                                                list($dbnow) = pwg_db_fetch_row(pwg_query('SELECT NOW();'));
    19461973
    19471974            // Update ConfirmMail table
    19481975            // ------------------------
    1949             $query = '
     1976                                                $query = '
    19501977UPDATE '.USER_CONFIRM_MAIL_TABLE.'
    19511978SET date_check="'.$dbnow.'", reminder="false"
    19521979WHERE id = "'.$id.'"
    19531980;';
    1954             pwg_query($query);
     1981                                                pwg_query($query);
    19551982
    19561983            // Update LastVisit table - Force reminder field to false
    19571984            // Usefull when a user has been automatically downgraded and revalidate its registration
    19581985            // -------------------------------------------------------------------------------------
    1959             $query = '
     1986                                                $query = '
    19601987UPDATE '.USER_LASTVISIT_TABLE.'
    19611988SET reminder="false"
    19621989WHERE user_id = "'.$data['user_id'].'"
    19631990;';
    1964             pwg_query($query);
     1991                                                pwg_query($query);
    19651992     
    1966             if ($conf_UAM[2] <> -1) // Delete user from unvalidated users group
    1967             {
    1968               $query = "
     1993                                                if ($conf_UAM[2] <> -1) // Delete user from unvalidated users group
     1994                                                {
     1995                                                        $query = "
    19691996DELETE FROM ".USER_GROUP_TABLE."
    19701997WHERE user_id = '".$data['user_id']."'
    19711998  AND group_id = '".$conf_UAM[2]."'
    19721999;";
    1973               pwg_query($query);
    1974             }
    1975      
    1976             if ($conf_UAM[3] <> -1) // Add user to validated users group
    1977             {
    1978               $query = "
     2000                                                        pwg_query($query);
     2001                                                }
     2002           
     2003                                                if ($conf_UAM[3] <> -1) // Add user to validated users group
     2004                                                {
     2005                                                        $query = "
    19792006INSERT INTO ".USER_GROUP_TABLE."
    19802007  (user_id, group_id)
     
    19822009  ('".$data['user_id']."', '".$conf_UAM[3]."')
    19832010;";
    1984               pwg_query($query);
    1985             }
    1986 
    1987             if (($conf_UAM[4] <> -1 or isset($data['status']))) // Change user's status
    1988             {
    1989               $query = "
     2011                                                        pwg_query($query);
     2012                                                }
     2013
     2014                                                if (($conf_UAM[4] <> -1 or isset($data['status']))) // Change user's status
     2015                                                {
     2016                                                        $query = "
    19902017UPDATE ".USER_INFOS_TABLE."
    19912018SET status = '".(isset($data['status']) ? $data['status'] : $conf_UAM[4])."'
    19922019WHERE user_id = '".$data['user_id']."'
    19932020;";
    1994               pwg_query($query);
    1995             }
    1996 
    1997             if (($conf_UAM[36] <> -1 or isset($data['level']))) // Change user's privacy level
    1998             {
    1999               $query = "
     2021                                                        pwg_query($query);
     2022                                                }
     2023
     2024                                                if (($conf_UAM[36] <> -1 or isset($data['level']))) // Change user's privacy level
     2025                                                {
     2026                                                        $query = "
    20002027UPDATE ".USER_INFOS_TABLE."
    20012028SET level = '".(isset($data['level']) ? $data['level'] : $conf_UAM[36])."'
    20022029WHERE user_id = '".$data['user_id']."'
    20032030;";
    2004               pwg_query($query);
    2005             }
    2006 
    2007             // Refresh user's category cache
     2031                                                        pwg_query($query);
     2032                                                }
     2033
     2034                                                // Refresh user's category cache
    20082035            // -----------------------------
    2009             invalidate_user_cache();
    2010  
    2011             return true;
    2012           }
    2013           elseif ($deltadays > $conf_UAM_ConfirmMail[1]) // If timelimit exeeds
    2014           {
    2015             return false;
    2016           }
    2017         }
    2018         // Verify Confirmmail with time limit OFF
     2036                                                invalidate_user_cache();
     2037 
     2038                                                return true;
     2039                                        }
     2040                                        elseif ($deltadays > $conf_UAM_ConfirmMail[1]) // If timelimit exeeds
     2041                                        {
     2042                                                return false;
     2043                                        }
     2044                                }
     2045                                // Verify Confirmmail with time limit OFF
    20192046        // --------------------------------------
    2020         else
    2021         {
    2022           list($dbnow) = pwg_db_fetch_row(pwg_query('SELECT NOW();'));
     2047                                else
     2048                                {
     2049                                        list($dbnow) = pwg_db_fetch_row(pwg_query('SELECT NOW();'));
    20232050
    20242051          // Update ConfirmMail table
    20252052          // ------------------------
    2026           $query = '
     2053                                        $query = '
    20272054UPDATE '.USER_CONFIRM_MAIL_TABLE.'
    20282055SET date_check="'.$dbnow.'"
    20292056WHERE id = "'.$id.'"
    20302057;';
    2031           pwg_query($query);
     2058                                        pwg_query($query);
    20322059
    20332060          // Update LastVisit table - Force reminder field to false
    20342061          // Usefull when a user has been automatically downgraded and revalidate its registration
    20352062          // -------------------------------------------------------------------------------------
    2036           $query = '
     2063                                        $query = '
    20372064UPDATE '.USER_LASTVISIT_TABLE.'
    20382065SET reminder="false"
     
    20412068          pwg_query($query);
    20422069     
    2043           if ($conf_UAM[2] <> -1) // Delete user from unvalidated users group
    2044           {
    2045             $query = "
     2070                                        if ($conf_UAM[2] <> -1) // Delete user from unvalidated users group
     2071                                        {
     2072                                                $query = "
    20462073DELETE FROM ".USER_GROUP_TABLE."
    20472074WHERE user_id = '".$data['user_id']."'
    20482075AND group_id = '".$conf_UAM[2]."'
    20492076;";
    2050             pwg_query($query);
    2051           }
     2077                                                pwg_query($query);
     2078                                        }
    20522079   
    2053           if ($conf_UAM[3] <> -1)
    2054           {
    2055             $query = "
     2080                                        if ($conf_UAM[3] <> -1)
     2081                                        {
     2082                                                $query = "
    20562083DELETE FROM ".USER_GROUP_TABLE."
    20572084WHERE user_id = '".$data['user_id']."'
    20582085AND group_id = '".$conf_UAM[3]."'
    20592086;";
    2060             pwg_query($query);
    2061 
    2062             $query = "
     2087                                                pwg_query($query);
     2088
     2089                                                $query = "
    20632090INSERT INTO ".USER_GROUP_TABLE."
    20642091  (user_id, group_id)
     
    20662093  ('".$data['user_id']."', '".$conf_UAM[3]."')
    20672094;";
    2068             pwg_query($query);
    2069           }
    2070 
    2071           if (($conf_UAM[4] <> -1 or isset($data['status']))) // Change user's status
    2072           {
    2073             $query = "
     2095                                                pwg_query($query);
     2096                                        }
     2097
     2098                                        if (($conf_UAM[4] <> -1 or isset($data['status']))) // Change user's status
     2099                                        {
     2100                                                $query = "
    20742101UPDATE ".USER_INFOS_TABLE."
    20752102SET status = '".(isset($data['status']) ? $data['status'] : $conf_UAM[4])."'
    20762103WHERE user_id = '".$data['user_id']."'
    20772104;";
    2078             pwg_query($query);
    2079           }
    2080 
    2081           if (($conf_UAM[36] <> -1 or isset($data['level']))) // Change user's privacy level
    2082           {
    2083             $query = "
     2105                                                pwg_query($query);
     2106                                        }
     2107
     2108                                        if (($conf_UAM[36] <> -1 or isset($data['level']))) // Change user's privacy level
     2109                                        {
     2110                                                $query = "
    20842111UPDATE ".USER_INFOS_TABLE."
    20852112SET level = '".(isset($data['level']) ? $data['level'] : $conf_UAM[36])."'
    20862113WHERE user_id = '".$data['user_id']."'
    20872114;";
    2088             pwg_query($query);
    2089           }
    2090 
    2091           // Refresh user's category cache
     2115                                                pwg_query($query);
     2116                                        }
     2117
     2118                                        // Refresh user's category cache
    20922119          // -----------------------------
    2093           invalidate_user_cache();
    2094  
    2095           return true;
    2096         }
    2097       }
    2098     }
     2120                                        invalidate_user_cache();
     2121 
     2122                                        return true;
     2123                                }
     2124                        }
     2125                }
    20992126    else if (!empty($data) and !is_null($data['date_check']))
    21002127    {
    21012128      return false;
    21022129    }
    2103   }
     2130        }
    21042131  else
    21052132    return false;
     
    21232150    list($dbnow) = pwg_db_fetch_row(pwg_query('SELECT NOW();'));
    21242151
    2125     $query = "
     2152                $query = "
    21262153UPDATE ".USER_CONFIRM_MAIL_TABLE."
    21272154SET date_check='".$dbnow."'
     
    21322159
    21332160  if ($conf_UAM[2] <> -1) // Delete user from waiting group
    2134   {
     2161        {
    21352162    $query = "
    21362163DELETE FROM ".USER_GROUP_TABLE."
     
    21382165  AND group_id = '".$conf_UAM[2]."'
    21392166;";
    2140     pwg_query($query);
    2141   }
    2142  
    2143   if ($conf_UAM[3] <> -1) // Set user's valid group
    2144   {
     2167                pwg_query($query);
     2168  }
     2169 
     2170        if ($conf_UAM[3] <> -1) // Set user's valid group
     2171        {
    21452172    $query = "
    21462173DELETE FROM ".USER_GROUP_TABLE."
     
    21492176;";
    21502177    pwg_query($query);
    2151  
    2152     $query = "
     2178       
     2179                $query = "
    21532180INSERT INTO ".USER_GROUP_TABLE."
    21542181  (user_id, group_id)
     
    21562183  ('".$id."', '".$conf_UAM[3]."')
    21572184;";
    2158     pwg_query($query);
    2159   }
    2160 
    2161   if ($conf_UAM[4] <> -1) // Set user's valid status
    2162   {
     2185                pwg_query($query);
     2186  }
     2187
     2188        if ($conf_UAM[4] <> -1) // Set user's valid status
     2189        {
    21632190    $query = "
    21642191UPDATE ".USER_INFOS_TABLE."
     
    21662193WHERE user_id = '".$id."'
    21672194;";
    2168     pwg_query($query);
    2169   }
    2170 
    2171   if ($conf_UAM[36] <> -1) // Set user's valid privacy level
    2172   {
     2195                pwg_query($query);
     2196  }
     2197
     2198        if ($conf_UAM[36] <> -1) // Set user's valid privacy level
     2199        {
    21732200    $query = "
    21742201UPDATE ".USER_INFOS_TABLE."
     
    21762203WHERE user_id = '".$id."'
    21772204;";
    2178     pwg_query($query);
     2205                pwg_query($query);
    21792206  }
    21802207}
     
    22292256  $conf_UAM = unserialize($conf['UserAdvManager']);
    22302257 
    2231   if (isset($email) and isset($conf_UAM[11]) and $conf_UAM[11] <> '')
    2232   {
    2233     $conf_MailExclusion = preg_split("/[\s,]+/",$conf_UAM[11]);
    2234     for ($i = 0 ; $i < count($conf_MailExclusion) ; $i++)
    2235     {
    2236       $pattern = '/'.$conf_MailExclusion[$i].'/i';
    2237       if (preg_match($pattern, $email))
    2238       {
    2239             return true;
    2240       }
    2241     }
    2242   }
     2258        if (isset($email) and isset($conf_UAM[11]) and $conf_UAM[11] <> '')
     2259        {
     2260                $conf_MailExclusion = preg_split("/[\s,]+/",$conf_UAM[11]);
     2261                for ($i = 0 ; $i < count($conf_MailExclusion) ; $i++)
     2262                {
     2263                        $pattern = '/'.$conf_MailExclusion[$i].'/i';
     2264                        if (preg_match($pattern, $email))
     2265      {
     2266                        return true;
     2267      }
     2268                }
     2269        }
    22432270  else
    22442271  {
     
    22562283function get_unvalid_user_list()
    22572284{
    2258   global $conf, $page;
     2285        global $conf, $page;
    22592286         
    2260   // Get ConfirmMail configuration
     2287        // Get ConfirmMail configuration
    22612288  // -----------------------------
    22622289  $conf_UAM_ConfirmMail = unserialize($conf['UserAdvManager_ConfirmMail']);
     
    22672294  $users = array();
    22682295
    2269   // Search users depending expiration date
     2296        // Search users depending expiration date
    22702297  // --------------------------------------
    22712298  $query = '
     
    22862313  OR TO_DAYS(NOW()) - TO_DAYS(ui.registration_date) < "'.$conf_UAM_ConfirmMail[1].'")';
    22872314
    2288   if ($conf_UAM[2] <> '-1' and $conf_UAM[7] == '-1')
     2315        if ($conf_UAM[2] <> '-1' and $conf_UAM[7] == '-1')
    22892316  {
    22902317    $query.= '
     
    23052332;';
    23062333
    2307   $result = pwg_query($query);
     2334        $result = pwg_query($query);
    23082335     
    23092336  while ($row = pwg_db_fetch_assoc($result))
    23102337  {
    2311     $user = $row;
     2338        $user = $row;
    23122339    $user['groups'] = array();
    23132340
    23142341    array_push($users, $user);
    2315   }
    2316 
    2317   // Add groups list
     2342        }
     2343
     2344        // Add groups list
    23182345  // ---------------
    23192346  $user_ids = array();
    23202347  foreach ($users as $i => $user)
    23212348  {
    2322     $user_ids[$i] = $user['id'];
    2323   }
    2324  
    2325   $user_nums = array_flip($user_ids);
     2349        $user_ids[$i] = $user['id'];
     2350        }
     2351       
     2352        $user_nums = array_flip($user_ids);
    23262353
    23272354  if (count($user_ids) > 0)
    23282355  {
    2329     $query = '
     2356        $query = '
    23302357SELECT user_id, group_id
    23312358  FROM '.USER_GROUP_TABLE.'
     
    23332360;';
    23342361       
    2335     $result = pwg_query($query);
     2362                $result = pwg_query($query);
    23362363       
    23372364    while ($row = pwg_db_fetch_assoc($result))
    23382365    {
    2339       array_push(
    2340         $users[$user_nums[$row['user_id']]]['groups'],
     2366        array_push(
     2367        $users[$user_nums[$row['user_id']]]['groups'],
    23412368        $row['group_id']
    2342       );
    2343     }
    2344   }
    2345 
    2346   return $users;
     2369                        );
     2370                }
     2371        }
     2372
     2373        return $users;
    23472374}
    23482375
     
    23572384function get_unvalid_user_autotasks()
    23582385{
    2359   global $conf, $page;
     2386        global $conf, $page;
    23602387         
    2361   // Get ConfirmMail configuration
     2388        // Get ConfirmMail configuration
    23622389  // -----------------------------
    23632390  $conf_UAM_ConfirmMail = unserialize($conf['UserAdvManager_ConfirmMail']);
     
    23652392  $users = array();
    23662393
    2367   // search users depending expiration date
     2394        // search users depending expiration date
    23682395  // --------------------------------------
    23692396  $query = '
     
    23772404ORDER BY ui.registration_date ASC;';
    23782405
    2379   $result = pwg_query($query);
     2406        $result = pwg_query($query);
    23802407     
    23812408  while ($row = pwg_db_fetch_assoc($result))
    23822409  {
    23832410    array_push($users, $row);
    2384   }
    2385 
    2386   return $users;
     2411        }
     2412
     2413        return $users;
    23872414}
    23882415
     
    23962423function get_ghost_user_list()
    23972424{
    2398   global $conf, $page;
     2425        global $conf, $page;
    23992426
    24002427  $conf_UAM = unserialize($conf['UserAdvManager']);
     
    24022429  $users = array();
    24032430
    2404   // Search users depending expiration date
     2431        // Search users depending expiration date
    24052432  // --------------------------------------
    24062433  $query = '
     
    24162443ORDER BY lv.lastvisit ASC;';
    24172444
    2418   $result = pwg_query($query);
     2445        $result = pwg_query($query);
    24192446     
    24202447  while ($row = pwg_db_fetch_assoc($result))
    24212448  {
    2422     $user = $row;
     2449        $user = $row;
    24232450    $user['groups'] = array();
    24242451
    24252452    array_push($users, $user);
    2426   }
    2427 
    2428   // Add groups list
     2453        }
     2454
     2455        // Add groups list
    24292456  // ---------------
    24302457  $user_ids = array();
    24312458  foreach ($users as $i => $user)
    24322459  {
    2433     $user_ids[$i] = $user['id'];
    2434   }
    2435 
    2436   return $users;
     2460        $user_ids[$i] = $user['id'];
     2461        }
     2462
     2463        return $users;
    24372464}
    24382465
     
    24462473function get_ghosts_autotasks()
    24472474{
    2448   global $conf, $page;
     2475        global $conf, $page;
    24492476
    24502477  $conf_UAM = unserialize($conf['UserAdvManager']);
     
    24522479  $users = array();
    24532480 
    2454   // Search users depending expiration date and reminder sent
     2481        // Search users depending expiration date and reminder sent
    24552482  // --------------------------------------------------------
    24562483  $query = '
     
    24632490ORDER BY lv.lastvisit ASC;';
    24642491
    2465   $result = pwg_query($query);
     2492        $result = pwg_query($query);
    24662493     
    24672494  while ($row = pwg_db_fetch_assoc($result))
    24682495  {
    24692496    array_push($users, $row);
    2470   }
    2471  
    2472   return $users;
     2497        }
     2498 
     2499        return $users;
    24732500}
    24742501
     
    24822509function get_user_list()
    24832510{
    2484   global $conf, $page;
     2511        global $conf, $page;
    24852512 
    24862513  $users = array();
    24872514
    2488   // Search users depending expiration date with exclusion of Adult_Content generic users
     2515        // Search users depending expiration date with exclusion of Adult_Content generic users
    24892516  // ------------------------------------------------------------------------------------
    24902517  $query = '
     
    25022529;';
    25032530
    2504   $result = pwg_query($query);
     2531        $result = pwg_query($query);
    25052532     
    25062533  while ($row = pwg_db_fetch_assoc($result))
    25072534  {
    2508     $user = $row;
     2535        $user = $row;
    25092536    $user['groups'] = array();
    25102537
    25112538    array_push($users, $user);
    2512   }
    2513 
    2514   // Add groups list
     2539        }
     2540
     2541        // Add groups list
    25152542  // ---------------
    25162543  $user_ids = array();
    25172544  foreach ($users as $i => $user)
    25182545  {
    2519     $user_ids[$i] = $user['id'];
    2520   }
    2521 
    2522   return $users;
     2546        $user_ids[$i] = $user['id'];
     2547        }
     2548
     2549        return $users;
    25232550}
    25242551
     
    25342561function expiration($id)
    25352562{
    2536   global $conf, $page;
     2563        global $conf, $page;
    25372564         
    2538   // Get ConfirmMail configuration
     2565        // Get ConfirmMail configuration
    25392566  // -----------------------------
    25402567  $conf_UAM_ConfirmMail = unserialize($conf['UserAdvManager_ConfirmMail']);
    25412568         
    2542   // Get UAM configuration
     2569        // Get UAM configuration
    25432570  // ---------------------
    25442571  $conf_UAM = unserialize($conf['UserAdvManager']);
    2545  
    2546   $query = "
     2572       
     2573        $query = "
    25472574SELECT registration_date
    25482575  FROM ".USER_INFOS_TABLE."
    25492576WHERE user_id = '".$id."'
    25502577;";
    2551   list($registration_date) = pwg_db_fetch_row(pwg_query($query));
     2578        list($registration_date) = pwg_db_fetch_row(pwg_query($query));
    25522579
    25532580//              Time limit process             
    25542581// ******************************************** 
    2555   if (!empty($registration_date))
    2556   {
    2557     // Dates formating and compare
     2582        if (!empty($registration_date))
     2583  {
     2584                // Dates formating and compare
    25582585    // ---------------------------
    2559     $today = date("d-m-Y"); // Get today's date
    2560     list($day, $month, $year) = explode('-', $today); // explode date of today           
    2561     $daytimestamp = mktime(0, 0, 0, $month, $day, $year);// Generate UNIX timestamp
    2562      
    2563     list($regdate, $regtime) = explode(' ', $registration_date); // Explode date and time from registration date
    2564     list($regyear, $regmonth, $regday) = explode('-', $regdate); // Explode date from registration date
    2565     $regtimestamp = mktime(0, 0, 0, $regmonth, $regday, $regyear);// Generate UNIX timestamp
    2566      
    2567     $deltasecs = $daytimestamp - $regtimestamp;// Compare the 2 UNIX timestamps
    2568     $deltadays = floor($deltasecs / 86400);// Convert result from seconds to days
    2569 
    2570     // Condition with the value set for time limit
     2586                $today = date("d-m-Y"); // Get today's date
     2587                list($day, $month, $year) = explode('-', $today); // explode date of today                                             
     2588                $daytimestamp = mktime(0, 0, 0, $month, $day, $year);// Generate UNIX timestamp
     2589               
     2590          list($regdate, $regtime) = explode(' ', $registration_date); // Explode date and time from registration date
     2591                list($regyear, $regmonth, $regday) = explode('-', $regdate); // Explode date from registration date
     2592                $regtimestamp = mktime(0, 0, 0, $regmonth, $regday, $regyear);// Generate UNIX timestamp
     2593                       
     2594                $deltasecs = $daytimestamp - $regtimestamp;// Compare the 2 UNIX timestamps     
     2595                $deltadays = floor($deltasecs / 86400);// Convert result from seconds to days
     2596
     2597                // Condition with the value set for time limit
    25712598    // -------------------------------------------
    2572     if ($deltadays <= $conf_UAM_ConfirmMail[1]) // If Nb of days is less than the limit set
    2573     {
    2574       return false;
    2575     }
    2576     else
    2577     {
    2578       return true;
    2579     }
    2580   }
     2599                if ($deltadays <= $conf_UAM_ConfirmMail[1]) // If Nb of days is less than the limit set
     2600                {
     2601                        return false;
     2602                }
     2603                else
     2604                {
     2605                        return true;
     2606                }
     2607        }
    25812608}
    25822609
     
    26182645      // On ajoute 1 point pour une minuscule - Adding 1 point to score for a lowercase
    26192646      // ------------------------------------------------------------------------------
    2620       $points = $points + 1;
    2621 
    2622       // On rajoute le bonus pour une minuscule - Adding bonus points for lowercase
     2647                  $points = $points + 1;
     2648
     2649                  // On rajoute le bonus pour une minuscule - Adding bonus points for lowercase
    26232650      // --------------------------------------------------------------------------
    2624       $point_lowercase = 1;
     2651                  $point_lowercase = 1;
    26252652    }
    26262653    else if ($letters>='A' && $letters <='Z')
     
    26292656      // ------------------------------------------------------------------------------
    26302657      $points = $points + 2;
    2631    
     2658               
    26322659      // On rajoute le bonus pour une majuscule - Adding bonus points for uppercase
    26332660      // --------------------------------------------------------------------------
     
    26392666      // -------------------------------------------------------------------------
    26402667      $points = $points + 3;
    2641    
     2668               
    26422669      // On rajoute le bonus pour un chiffre - Adding bonus points for numbers
    26432670      // ---------------------------------------------------------------------
     
    26492676      // --------------------------------------------------------------------------------------------
    26502677      $points = $points + 5;
    2651    
     2678               
    26522679      // On rajoute le bonus pour un caractère autre - Adding bonus points for special characters
    26532680      // ----------------------------------------------------------------------------------------
     
    27482775  global $conf;
    27492776
    2750   // Get UAM configuration
    2751   // ---------------------
    2752   $conf_UAM = unserialize($conf['UserAdvManager']);
    2753 
    2754   // Check for user groups
    27552777  $query = '
    2756 SELECT group_id
    2757   FROM '.USER_GROUP_TABLE.'
    2758 WHERE user_id = '.$user_id.'
    2759   AND group_id = '.$conf_UAM[2].'
     2778SELECT UAM_validated
     2779FROM '.USERS_TABLE.'
     2780WHERE id='.$user_id.'
    27602781;';
    27612782
    2762   $count1 = pwg_db_num_rows(pwg_query($query));
    2763 
    2764   // Check for user status
    2765   $query = '
    2766 SELECT status
    2767   FROM '.USER_INFOS_TABLE.'
    2768 WHERE user_id = '.$user_id.'
    2769   AND status in (\''.$conf_UAM[7].'\')
    2770 ;';
    2771 
    2772   $count2 = pwg_db_num_rows(pwg_query($query));
    2773 
    2774   // Check for user privacy level
    2775   $query = '
    2776 SELECT level
    2777   FROM '.USER_INFOS_TABLE.'
    2778 WHERE user_id = '.$user_id.'
    2779   AND level = '.$conf_UAM[35].'
    2780 ;';
    2781 
    2782   $count3 = pwg_db_num_rows(pwg_query($query));
    2783 
    2784   $count = $count1 + $count2 + $count3; // Summary of counts
    2785 
    2786   if ($count == 0)
    2787   {
    2788     return true; // User has validated his registration
    2789   }
    2790   else
    2791   {
    2792     return false; // User has not validated his registration
    2793   }
     2783  $result = pwg_db_fetch_assoc(pwg_query($query));
     2784
     2785  if($result['UAM_validated'] == 'true')
     2786  {
     2787    return true;
     2788  }
     2789  else return false;
    27942790}
    27952791
     
    28552851      else $pwdreset = l10n('UAM_PwdReset_NA');
    28562852     
    2857       $visible_user_list[$user_nums[$row['id']]]['plugin_columns'][] = $pwdreset; // Shows users password state in user_list
     2853                  $visible_user_list[$user_nums[$row['id']]]['plugin_columns'][] = $pwdreset; // Shows users password state in user_list
    28582854    }
    28592855  }
  • extensions/UserAdvManager/trunk/include/upgradedb.inc.php

    r14729 r17887  
    623623  conf_update_param('UserAdvManager', pwg_db_real_escape_string($update_conf));
    624624}
     625
     626
     627/* upgrade from 2.40.x to 2.41.0 */
     628/* ***************************** */
     629function upgrade_2400_2410()
     630{
     631  global $conf;
     632  $conf_UAM = unserialize($conf['UserAdvManager']);
     633 
     634  // Piwigo's native tables modifications for validation status - Add UAM_validated column
     635  // -------------------------------------------------------------------------------------
     636  $query = '
     637SHOW COLUMNS FROM '.USERS_TABLE.'
     638LIKE "UAM_validated"
     639;';
     640 
     641  $result = pwg_query($query);
     642
     643  if(!pwg_db_fetch_row($result))
     644  {
     645    $q = '
     646ALTER TABLE '.USERS_TABLE.'
     647ADD UAM_validated enum("true","false")
     648;';
     649    pwg_query($q);
     650  }
     651
     652  // Fill UAM_validated column with correct information for registered and validated  users
     653  // --------------------------------------------------------------------------------------
     654  $query = '
     655SELECT DISTINCT u.id AS id
     656FROM '.USERS_TABLE.' AS u
     657  INNER JOIN '.USER_INFOS_TABLE.' AS ui
     658    ON u.id = ui.user_id
     659  LEFT JOIN '.USER_GROUP_TABLE.' AS ug
     660    ON u.id = ug.user_id
     661WHERE u.id <> 2';
     662
     663        if ($conf_UAM[3] <> '-1' and $conf_UAM[4] == '-1')
     664  {
     665    $query.= '
     666  AND ug.group_id = \''.$conf_UAM[3]."'";
     667  }
     668  if ($conf_UAM[3] == '-1' and $conf_UAM[4] <> '-1')
     669  {
     670    $query.= '
     671  AND ui.status = \''.$conf_UAM[4]."'";
     672  }
     673  if ($conf_UAM[3] <> '-1' and $conf_UAM[4] <> '-1')
     674  {
     675    $query.= '
     676  AND ug.group_id = \''.$conf_UAM[3]."'";
     677  }
     678  $query.= ';';
     679
     680        $result = pwg_query($query);
     681
     682  while($row = mysql_fetch_array($result))
     683  {
     684    $query = '
     685UPDATE '.USERS_TABLE.'
     686SET UAM_validated=true
     687WHERE id = "'.$row['id'].'"
     688;';
     689    pwg_query($query);
     690  }
     691}
    625692?>
  • extensions/UserAdvManager/trunk/maintain.inc.php

    r14729 r17887  
    214214  }
    215215
     216  // Piwigo's native tables modifications for validation status
     217  // ----------------------------------------------------------
     218  $query = '
     219SHOW COLUMNS FROM '.USERS_TABLE.'
     220LIKE "UAM_validated"
     221;';
     222 
     223  $result = pwg_query($query);
     224
     225  if(!pwg_db_fetch_row($result))
     226  {
     227    $q = '
     228ALTER TABLE '.USERS_TABLE.'
     229ADD UAM_validated enum("true","false")
     230;';
     231    pwg_query($q);
     232  }
     233
    216234/* *************************************************************************** */
    217235/* **************** END - Database actions and initialization **************** */
     
    379397      upgrade_2300_2400();
    380398    }
     399
     400    if (version_compare($conf['UserAdvManager_Version'], '2.41.0') < 0)
     401    {
     402    /* upgrade from version 2.40.x to 2.41.0 */
     403    /* ************************************* */
     404      upgrade_2400_2410();
     405    }
    381406  }
    382407
     
    448473;';
    449474  pwg_query($q);
     475
     476  $q = '
     477ALTER TABLE '.USERS_TABLE.'
     478DROP UAM_validated
     479;';
     480  pwg_query($q);
    450481}
    451482?>
Note: See TracChangeset for help on using the changeset viewer.