Ignore:
Timestamp:
Mar 28, 2007, 9:57:00 PM (17 years ago)
Author:
rub
Message:

Issue 578
User guest must be real user

Step 1: guest is a real user

On next commit, I finish installation and use of guest of user list and group

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/functions_user.inc.php

    r1904 r1926  
    148148  $user['id'] = $user_id;
    149149  $user = array_merge( $user, getuserdata($user_id, $use_cache) );
    150   if ( $user['id'] == $conf['guest_id'])
    151   {
    152     $user['is_the_guest']=true;
    153     $user['template'] = $conf['default_template'];
    154     $user['nb_image_line'] = $conf['nb_image_line'];
    155     $user['nb_line_page'] = $conf['nb_line_page'];
    156     $user['language'] = $conf['default_language'];
    157     $user['maxwidth'] = $conf['default_maxwidth'];
    158     $user['maxheight'] = $conf['default_maxheight'];
    159     $user['recent_period'] = $conf['recent_period'];
    160     $user['expand'] = $conf['auto_expand'];
    161     $user['show_nb_comments'] = $conf['show_nb_comments'];
    162     $user['show_nb_hits'] = $conf['show_nb_hits'];
    163     $user['enabled_high'] = $conf['newuser_default_enabled_high'];
    164   }
    165   else
    166   {
    167     $user['is_the_guest']=false;
    168   }
     150  $user['is_the_guest'] = ($user['id'] == $conf['guest_id']);
     151  $user['is_the_default'] = ($user['id'] == $conf['default_user_id']);
     152
    169153  // calculation of the number of picture to display per page
    170154  $user['nb_image_page'] = $user['nb_image_line'] * $user['nb_line_page'];
     
    727711}
    728712
     713/*
     714 * Returns a array with default user value
     715 *
     716 * @param convert_str allows to convert string value if necessary
     717 */
     718function get_default_user_info($convert_str = true)
     719{
     720  global $page, $conf;
     721 
     722  if (!isset($page['cache_default_user']))
     723  {
     724    $query = 'select * from '.USER_INFOS_TABLE.
     725            ' where user_id = '.$conf['default_user_id'].';';
     726
     727    $result = pwg_query($query);
     728    $page['cache_default_user'] = mysql_fetch_assoc($result);
     729  }
     730
     731  if (is_array($page['cache_default_user']) and $convert_str)
     732  {
     733    $default_user = array();
     734    foreach ($page['cache_default_user'] as $name => $value)
     735    {
     736      // If the field is true or false, the variable is transformed into a
     737      // boolean value.
     738      if ($value == 'true' or $value == 'false')
     739      {
     740        $default_user[$name] = get_boolean($value);
     741      }
     742      else
     743      {
     744        $default_user[$name] = $value;
     745      }
     746    }
     747    return $default_user;
     748  }
     749  else
     750  {
     751    return $page['cache_default_user'];
     752  }
     753}
     754
     755/*
     756 * Returns a default user value
     757 *
     758 * @param value_name: name of value
     759 * @param sos_value: value used if don't exist value
     760 */
     761function get_default_user_value($value_name, $sos_value)
     762{
     763  $default_user = get_default_user_info(true);
     764  if ($default_user === false or !isset($default_user[$value_name]))
     765  {
     766    return $sos_value;
     767  }
     768  else
     769  {
     770   return $default_user[$value_name];
     771  }
     772}
     773
     774/*
     775 * Returns the default template value
     776 *
     777 */
     778function get_default_template()
     779{
     780  return get_default_user_value('template', PHPWG_DEFAULT_TEMPLATE);
     781}
     782
     783/*
     784 * Returns the default language value
     785 *
     786 */
     787function get_default_language()
     788{
     789  return get_default_user_value('language', PHPWG_DEFAULT_LANGUAGE);
     790}
     791
    729792/**
    730793 * add user informations based on default values
    731794 *
    732  * @param int user_id
    733  */
    734 function create_user_infos($user_id)
     795 * @param int user_id / array of user_if
     796 */
     797function create_user_infos($arg_id)
    735798{
    736799  global $conf;
    737800
    738   list($dbnow) = mysql_fetch_row(pwg_query('SELECT NOW();'));
    739 
    740   if ($user_id == $conf['webmaster_id'])
    741   {
    742     $status = 'webmaster';
    743   }
    744   else if ($user_id == $conf['guest_id'])
    745   {
    746     $status = 'guest';
     801  if (is_array($arg_id))
     802  {
     803    $user_ids = $arg_id;
    747804  }
    748805  else
    749806  {
    750     $status = 'normal';
    751   }
    752 
    753   $insert =
    754     array(
    755       'user_id' => $user_id,
    756       'status' => $status,
    757       'template' => $conf['default_template'],
    758       'nb_image_line' => $conf['nb_image_line'],
    759       'nb_line_page' => $conf['nb_line_page'],
    760       'language' => $conf['default_language'],
    761       'recent_period' => $conf['recent_period'],
    762       'expand' => boolean_to_string($conf['auto_expand']),
    763       'show_nb_comments' => boolean_to_string($conf['show_nb_comments']),
    764       'show_nb_hits' => boolean_to_string($conf['show_nb_hits']),
    765       'maxwidth' => $conf['default_maxwidth'],
    766       'maxheight' => $conf['default_maxheight'],
    767       'registration_date' => $dbnow,
    768       'enabled_high' =>
    769         boolean_to_string($conf['newuser_default_enabled_high']),
    770       );
    771 
    772   include_once(PHPWG_ROOT_PATH.'admin/include/functions.php');
    773   mass_inserts(USER_INFOS_TABLE, array_keys($insert), array($insert));
     807    $user_ids = array();
     808    if (is_integer($arg_id))
     809    {
     810      $user_ids[] = $arg_id;
     811    }
     812  }
     813
     814  if (!empty($user_ids))
     815  {
     816    $inserts = array();
     817    list($dbnow) = mysql_fetch_row(pwg_query('SELECT NOW();'));
     818
     819    $default_user = get_default_user_info(false);
     820    if ($default_user === false)
     821    {
     822      // Default on structure are used
     823      $default_user = array();
     824    }
     825   
     826
     827    foreach ($user_ids as $user_id)
     828    {
     829      if ($user_id == $conf['webmaster_id'])
     830      {
     831        $status = 'webmaster';
     832      }
     833      else if (($user_id == $conf['guest_id']) or
     834               ($user_id == $conf['default_user_id']))
     835      {
     836        $status = 'guest';
     837      }
     838      else
     839      {
     840        $status = 'normal';
     841      }
     842
     843      $insert =
     844        array(
     845          'user_id' => $user_id,
     846          'status' => $status,
     847          'registration_date' => $dbnow
     848          );
     849
     850      array_push($inserts, $insert);
     851      }
     852
     853    include_once(PHPWG_ROOT_PATH.'admin/include/functions.php');
     854    mass_inserts(USER_INFOS_TABLE, array_keys($inserts[0]), $inserts);
     855
     856  }
    774857}
    775858
     
    824907  $dirname .= 'language'.'/';
    825908
    826   $directories = array();
    827   if ( !empty($language) )
    828   {
    829     $directories[] = $dirname.$language;
    830   }
    831 
    832   {
    833     $directories[] = $dirname.$user['language'];
    834   }
    835   $directories[] = $dirname.$conf['default_language'];
    836   $directories[] = $dirname.PHPWG_DEFAULT_LANGUAGE;
    837 
    838   foreach ($directories as $directory)
    839   {
     909  $dir_methods = array();
     910
     911  if (!empty($language))
     912  {
     913    $dir_methods[] = 1;
     914  }
     915
     916  $dir_methods[] = 2;
     917  $dir_methods[] = 3;
     918  $dir_methods[] = 4;
     919
     920  foreach ($dir_methods as $dir_method)
     921  {
     922    switch ($dir_method)
     923    {
     924      case '1':
     925      {
     926        $directory = $dirname.$language;
     927        break;
     928      }
     929      case '2':
     930      {
     931        $directory = $dirname.$user['language'];
     932        break;
     933      }
     934      case '3':
     935      {
     936        $directory = $dirname.get_default_language();
     937        break;
     938      }
     939      case '4':
     940      default:
     941      {
     942        $directory = $dirname.PHPWG_DEFAULT_LANGUAGE;
     943        break;
     944      }
     945      {
     946        $directory = '.';
     947      }
     948    }
     949
    840950    $filepath = $directory.'/'.$filename;
    841951
Note: See TracChangeset for help on using the changeset viewer.