Changeset 22092


Ignore:
Timestamp:
04/09/13 18:46:57 (6 years ago)
Author:
Eric
Message:

Version 2.5.8:
Add accounts synchronization from FluxBB to Piwigo
Bug fixed : Missing function in audit

Location:
extensions/Register_FluxBB
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • extensions/Register_FluxBB/admin/admin.php

    r22091 r22092  
    876876 
    877877    $msg_error_FluxBB2PWG .= '><img src="'.REGFLUXBB_PATH.'/admin/template/icon/user_delete.png" alt="'.l10n('Del_User').stripslashes($row['username']).'" /></a>'; 
     878 
     879    $msg_error_FluxBB2PWG .= ' <a href="'; 
     880 
     881    $msg_error_FluxBB2PWG .= add_url_params($page_Register_FluxBB_admin, array( 
     882      'action' => 'add2pwg', 
     883      'id' => $row['id'], 
     884      'username' => $row['username'], 
     885      'email' => $row['email'], 
     886    )); 
     887 
     888    $msg_error_FluxBB2PWG .= '" title="'.l10n('Add_User2pwg').stripslashes($row['username']).'"'; 
     889 
     890    $msg_error_FluxBB2PWG .= $conf_Register_FluxBB['FLUXBB_CONFIRM']=='false' ?  ' onclick="return confirm(\''.l10n('Are you sure?').'\');" ' : ' '; 
     891 
     892    $msg_error_FluxBB2PWG .= '><img src="'.REGFLUXBB_PATH.'/admin/template/icon/user_add.png" alt="'.l10n('Add_User2pwg').stripslashes($row['username']).'" /></a>'; 
    878893  } 
    879894 
     
    9951010 
    9961011  Audit_PWG_FluxBB(); 
     1012} 
     1013else if (isset($_GET['action']) and ($_GET['action']=='add2pwg') and isset($_GET['id']) and isset($_GET['username']) and isset($_GET['email'])) 
     1014{ 
     1015  $error = Synch_Piwigo_Adduser($_GET['id'], $_GET['username'], $_GET['email']); 
     1016   
     1017  if (!$error) 
     1018    Audit_PWG_FluxBB(); 
     1019  else 
     1020    $template->append('errors', l10n('RegFluxBB_Email_or_Username_already_exist')); 
    9971021} 
    9981022 
  • extensions/Register_FluxBB/changelog.txt.php

    r22091 r22092  
    125125 
    1261262.5.6 - Bug fixed : Message for password change request not displayed on profile page 
     127 
     1282.5.7 - Rebuild of previous version due to file corruption 
     129 
     1302.5.8 - Add accounts synchronization from FluxBB to Piwigo 
     131      - Bug fixed : Missing function in audit 
    127132*/ 
    128133?> 
  • extensions/Register_FluxBB/include/functions.inc.php

    r22091 r22092  
    640640 
    641641/** 
     642 * Add new registered user in Piwigo users table from audit/synch action 
     643 * To solve password synch problem, passwords are reset to NULL to force users to get a new password on their profile page 
     644 *  
     645 * @return : $error 
     646 */ 
     647function Synch_Piwigo_Adduser($fluxbb_id, $username, $email) 
     648{ 
     649  global $conf; 
     650  load_language('plugin.lang', REGFLUXBB_PATH); 
     651 
     652  if (!get_userid_by_email($email) and !get_userid($username)) 
     653  { 
     654    // find a password 
     655    $password = generate_key(8); 
     656 
     657    $error = register_user($username, $password, $email, false); 
     658 
     659    if (empty($error)) 
     660    { 
     661      include_once(PHPWG_ROOT_PATH.'include/functions_mail.inc.php'); 
     662 
     663      $keyargs_content = array( 
     664        get_l10n_args('Hello %s,', $login), 
     665        get_l10n_args('To synchronize your forum access with the gallery you have been registered at %s!', $conf['gallery_title']), 
     666        get_l10n_args('', ''), 
     667        get_l10n_args('Here are your connection settings', ''), 
     668        get_l10n_args('Username: %s', $login), 
     669        get_l10n_args('Password: %s', $password), 
     670        get_l10n_args('Email: %s', $mail_address), 
     671        get_l10n_args('', ''), 
     672        get_l10n_args('Please change your password at your first connexion on the gallery', ''), 
     673        get_l10n_args('', ''), 
     674        get_l10n_args('If you think you\'ve received this email in error, please contact us at %s', get_webmaster_mail_address()), 
     675      ); 
     676 
     677      pwg_mail( 
     678        $mail_address, 
     679        array( 
     680          'subject' => '['.$conf['gallery_title'].'] '.l10n('Registration'), 
     681          'content' => l10n_args($keyargs_content), 
     682          'content_format' => 'text/plain', 
     683          ) 
     684      ); 
     685 
     686      $pwg_id = get_userid($username); 
     687 
     688      FluxBB_Linkuser($pwg_id, $fluxbb_id, "NOK"); 
     689       
     690      $error = false; 
     691    } 
     692  } 
     693  else $error = true; 
     694 
     695  return $error; 
     696} 
     697 
     698 
     699/** 
     700 * Update user information in FluxBB users table from audit/synch action 
     701 * Standard FluxBB_Updateuser() function is not used because of existing password mismatch 
     702 * To solve password synch problem, passwords are reset to NULL to force users to get a new password by using "forgotten password" function 
     703 */ 
     704function Synch_FluxBB_Updateuser($pwg_id, $username, $adresse_mail) 
     705{ 
     706  global $conf; 
     707   
     708  include_once( PHPWG_ROOT_PATH.'include/common.inc.php' ); 
     709  $conf_Register_FluxBB = unserialize($conf['Register_FluxBB']); 
     710  $password = NULL; 
     711 
     712// Select users to update in ID link table 
     713  $query = ' 
     714SELECT id_user_FluxBB as FluxBB_id 
     715FROM '.Register_FluxBB_ID_TABLE.' 
     716WHERE id_user_pwg = '.$pwg_id.' 
     717;'; 
     718 
     719  $row = pwg_db_fetch_assoc(pwg_query($query)); 
     720 
     721  if (!empty($row)) 
     722  { 
     723    $query = ' 
     724UPDATE '.FluxBB_USERS_TABLE.' 
     725SET username = "'.pwg_db_real_escape_string($username).'", email = "'.$adresse_mail.'", password = "'.$password.'"  
     726WHERE id = '.$row['FluxBB_id'].' 
     727AND "'.pwg_db_real_escape_string($username).'" NOT IN ("18","16") 
     728AND "'.pwg_db_real_escape_string($username).'" <> "'.stripslashes($conf_Register_FluxBB['FLUXBB_ADMIN']).'" 
     729;'; 
     730 
     731    pwg_query($query); 
     732 
     733    FluxBB_Linkuser($pwg_id, $row['FluxBB_id'], "NOK"); 
     734  } 
     735  else 
     736  { 
     737    $query = ' 
     738SELECT id as FluxBB_id 
     739FROM '.FluxBB_USERS_TABLE.' 
     740WHERE BINARY username = BINARY "'.pwg_db_real_escape_string($username).'" 
     741AND "'.pwg_db_real_escape_string($username).'" <> "'.stripslashes($conf_Register_FluxBB['FLUXBB_ADMIN']).'" 
     742;'; 
     743 
     744    $row = pwg_db_fetch_assoc(pwg_query($query)); 
     745 
     746    if (!empty($row)) 
     747    { 
     748      $query = ' 
     749UPDATE '.FluxBB_USERS_TABLE.' 
     750SET username = "'.pwg_db_real_escape_string($username).'", email = "'.$adresse_mail.'", password = "'.$password.'"  
     751WHERE id = '.$row['FluxBB_id'].' 
     752AND "'.pwg_db_real_escape_string($username).'" NOT IN ("18","16") 
     753AND "'.pwg_db_real_escape_string($username).'" <> "'.stripslashes($conf_Register_FluxBB['FLUXBB_ADMIN']).'" 
     754;'; 
     755 
     756      pwg_query($query); 
     757 
     758      FluxBB_Linkuser($pwg_id, $row['FluxBB_id'], "NOK"); 
     759    } 
     760  } 
     761} 
     762 
     763 
     764/** 
     765 * Reg_FluxBB_PwdSynch 
     766 * Checks if a password needs to be resynch between Piwigo and FluxBB  
     767 *  
     768 * @uid        : the user id 
     769 *  
     770 * @returns    : true if the password is NOT synchronized (NOK) else false 
     771 *  
     772 */ 
     773function Reg_FluxBB_PwdSynch($uid) 
     774{ 
     775  $query = ' 
     776SELECT PwdSynch 
     777FROM '.Register_FluxBB_ID_TABLE.' 
     778WHERE id_user_pwg='.$uid.' 
     779;'; 
     780 
     781  $result = pwg_db_fetch_assoc(pwg_query($query)); 
     782 
     783  if($result['PwdSynch'] == "NOK" or is_null($result['PwdSynch'])) 
     784  { 
     785    return true; 
     786  } 
     787  else return false;  
     788} 
     789 
     790 
     791/** 
    642792 * Search linked users 
    643793 */ 
  • extensions/Register_FluxBB/language/en_UK/plugin.lang.php

    r22091 r22092  
    156156 
    157157$lang['RegFluxBB_Password_Reset_Msg'] = 'Please, update your password for synchronization with the forum. Then you will be able to connect to the forum with the same account as the gallery.'; 
     158 
     159$lang['Add_User2pwg'] = 'Adding in Piwigo of account: '; 
     160$lang['RegFluxBB_Email_or_Username_already_exist'] = 'Synchronization from FluxBB to Piwigo stopped : Target email or username already exists in Piwigo users table.'; 
     161$lang['To synchronize your forum access with the gallery you have been registered at %s!'] = 'To synchronize your forum access with the gallery you have been registered at %s!'; 
     162$lang['Please change your password at your first connexion on the gallery'] = 'Please change your password at your first connexion on the gallery to end the data synchronization'; 
    158163?> 
  • extensions/Register_FluxBB/language/fr_FR/plugin.lang.php

    r22091 r22092  
    157157$lang['RegFluxBB_Password_Reset_Msg'] = 'Veuillez modifier votre mot de passe pour synchronisation avec l\'accès au forum. Vous pourrez alors vous connecter au forum avec le même compte que pour la galerie.'; 
    158158 
     159$lang['Add_User2pwg'] = 'Ajout dans Piwigo du compte : '; 
     160$lang['RegFluxBB_Email_or_Username_already_exist'] = 'Synchronisation de FluxBB vers Piwigo suspendue : L\'email ou le nom d\'utilisateur cible existe déjà dans la table des utilisateurs de Piwigo.'; 
     161$lang['To synchronize your forum access with the gallery you have been registered at %s!'] = 'Afin de synchroniser votre compte d\'accès au forum avec la galerie, vous avez été inscrit sur %s!'; 
     162$lang['Please change your password at your first connexion on the gallery'] = 'Merci de bien vouloir modifier votre mot de passe lors de votre première connexion à la galerie pour terminer la synchronisation des données.'; 
    159163?> 
Note: See TracChangeset for help on using the changeset viewer.