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