<?php 
include_once __DIR__ . '/admin_header.php'; 
xoops_cp_header(); 
 
if (!$GLOBALS['xoopsSecurity']->check()) { 
    redirect_header('index.php', 3, _NOPERM); 
} 
 
$uid = Xmf\Request::getInt('uid', 0); 
if ($uid === 0) { 
    redirect_header('index.php', 2, _PROFILE_AM_NOSELECTION); 
} 
/* @var XoopsMemberHandler $member_handler */ 
$member_handler = xoops_getHandler('member'); 
$user           = $member_handler->getUser($uid); 
if (!$user || $user->isNew()) { 
    redirect_header('index.php', 2, _PROFILE_AM_USERDONEXIT); 
} 
 
if (in_array(XOOPS_GROUP_ADMIN, $user->getGroups())) { 
    redirect_header('index.php', 2, _PROFILE_AM_CANNOTDEACTIVATEWEBMASTERS); 
} 
$level = Xmf\Request::getInt('level', 0); 
if ($level===0) { 
    $user->setVar('level', 0); 
    // reset the activation key so it cannot be reused 
    // this now gets done at activation, but we do it here also to fix accounts created before the change. 
    $actkey = substr(md5(uniqid(mt_rand(), 1)), 0, 8); 
    $user->setVar('actkey', $actkey); 
    $result = $member_handler->insertUser($user); 
} else { 
    $result = $member_handler->activateUser($user); 
} 
if ($result) { 
    if ($level !== 0) { 
        $message = _PROFILE_AM_USER_ACTIVATED; 
    } else { 
        $message = _PROFILE_AM_USER_DEACTIVATED; 
    } 
} else { 
    if ($level !== 0) { 
        $message = _PROFILE_AM_USER_NOT_ACTIVATED; 
    } else { 
        $message = _PROFILE_AM_USER_NOT_DEACTIVATED; 
    } 
} 
redirect_header('../userinfo.php?uid=' . $user->getVar('uid'), 3, $message); 
 
 |