Verzeichnisstruktur phpBB-3.1.0


Veröffentlicht
27.10.2014

So funktioniert es


Auf das letzte Element klicken. Dies geht jeweils ein Schritt zurück

Auf das Icon klicken, dies öffnet das Verzeichnis. Nochmal klicken schließt das Verzeichnis.
Auf den Verzeichnisnamen klicken, dies zeigt nur das Verzeichnis mit Inhalt an

      (Beispiel Datei-Icons)

Auf das Icon klicken um den Quellcode anzuzeigen

ucp_activate.php

Zuletzt modifiziert: 09.10.2024, 12:52 - Dateigröße: 3.89 KiB


 001  <?php
 002  /**
 003  *
 004  * This file is part of the phpBB Forum Software package.
 005  *
 006  * @copyright (c) phpBB Limited <https://www.phpbb.com>
 007  * @license GNU General Public License, version 2 (GPL-2.0)
 008  *
 009  * For full copyright and license information, please see
 010  * the docs/CREDITS.txt file.
 011  *
 012  */
 013   
 014  /**
 015  * @ignore
 016  */
 017  if (!defined('IN_PHPBB'))
 018  {
 019      exit;
 020  }
 021   
 022  /**
 023  * ucp_activate
 024  * User activation
 025  */
 026  class ucp_activate
 027  {
 028      var $u_action;
 029   
 030      function main($id, $mode)
 031      {
 032          global $config, $phpbb_root_path, $phpEx;
 033          global $db, $user, $auth, $template, $phpbb_container;
 034   
 035          $user_id = request_var('u', 0);
 036          $key = request_var('k', '');
 037   
 038          $sql = 'SELECT user_id, username, user_type, user_email, user_newpasswd, user_lang, user_notify_type, user_actkey, user_inactive_reason
 039              FROM ' . USERS_TABLE . "
 040              WHERE user_id = $user_id";
 041          $result = $db->sql_query($sql);
 042          $user_row = $db->sql_fetchrow($result);
 043          $db->sql_freeresult($result);
 044   
 045          if (!$user_row)
 046          {
 047              trigger_error('NO_USER');
 048          }
 049   
 050          if ($user_row['user_type'] <> USER_INACTIVE && !$user_row['user_newpasswd'])
 051          {
 052              meta_refresh(3, append_sid("{$phpbb_root_path}index.$phpEx"));
 053              trigger_error('ALREADY_ACTIVATED');
 054          }
 055   
 056          if ($user_row['user_inactive_reason'] == INACTIVE_MANUAL || $user_row['user_actkey'] !== $key)
 057          {
 058              trigger_error('WRONG_ACTIVATION');
 059          }
 060   
 061          // Do not allow activating by non administrators when admin activation is on
 062          // Only activation type the user should be able to do is INACTIVE_REMIND
 063          // or activate a new password which is not an activation state :@
 064          if (!$user_row['user_newpasswd'] && $user_row['user_inactive_reason'] != INACTIVE_REMIND && $config['require_activation'] == USER_ACTIVATION_ADMIN && !$auth->acl_get('a_user'))
 065          {
 066              if (!$user->data['is_registered'])
 067              {
 068                  login_box('', $user->lang['NO_AUTH_OPERATION']);
 069              }
 070              trigger_error('NO_AUTH_OPERATION');
 071          }
 072   
 073          $update_password = ($user_row['user_newpasswd']) ? true : false;
 074   
 075          if ($update_password)
 076          {
 077              $sql_ary = array(
 078                  'user_actkey'        => '',
 079                  'user_password'        => $user_row['user_newpasswd'],
 080                  'user_newpasswd'    => '',
 081                  'user_login_attempts'    => 0,
 082              );
 083   
 084              $sql = 'UPDATE ' . USERS_TABLE . '
 085                  SET ' . $db->sql_build_array('UPDATE', $sql_ary) . '
 086                  WHERE user_id = ' . $user_row['user_id'];
 087              $db->sql_query($sql);
 088   
 089              add_log('user', $user_row['user_id'], 'LOG_USER_NEW_PASSWORD', $user_row['username']);
 090          }
 091   
 092          if (!$update_password)
 093          {
 094              include_once($phpbb_root_path . 'includes/functions_user.' . $phpEx);
 095   
 096              user_active_flip('activate', $user_row['user_id']);
 097   
 098              $sql = 'UPDATE ' . USERS_TABLE . "
 099                  SET user_actkey = ''
 100                  WHERE user_id = {$user_row['user_id']}";
 101              $db->sql_query($sql);
 102   
 103              // Create the correct logs
 104              add_log('user', $user_row['user_id'], 'LOG_USER_ACTIVE_USER');
 105              if ($auth->acl_get('a_user'))
 106              {
 107                  add_log('admin', 'LOG_USER_ACTIVE', $user_row['username']);
 108              }
 109          }
 110   
 111          if ($config['require_activation'] == USER_ACTIVATION_ADMIN && !$update_password)
 112          {
 113              $phpbb_notifications = $phpbb_container->get('notification_manager');
 114              $phpbb_notifications->delete_notifications('notification.type.admin_activate_user', $user_row['user_id']);
 115   
 116              include_once($phpbb_root_path . 'includes/functions_messenger.' . $phpEx);
 117   
 118              $messenger = new messenger(false);
 119   
 120              $messenger->template('admin_welcome_activated', $user_row['user_lang']);
 121   
 122              $messenger->set_addresses($user_row);
 123   
 124              $messenger->anti_abuse_headers($config, $user);
 125   
 126              $messenger->assign_vars(array(
 127                  'USERNAME'    => htmlspecialchars_decode($user_row['username']))
 128              );
 129   
 130              $messenger->send($user_row['user_notify_type']);
 131   
 132              $message = 'ACCOUNT_ACTIVE_ADMIN';
 133          }
 134          else
 135          {
 136              if (!$update_password)
 137              {
 138                  $message = ($user_row['user_inactive_reason'] == INACTIVE_PROFILE) ? 'ACCOUNT_ACTIVE_PROFILE' : 'ACCOUNT_ACTIVE';
 139              }
 140              else
 141              {
 142                  $message = 'PASSWORD_ACTIVATED';
 143              }
 144          }
 145   
 146          meta_refresh(3, append_sid("{$phpbb_root_path}index.$phpEx"));
 147          trigger_error($user->lang[$message]);
 148      }
 149  }
 150