Bug #16024 » 20080218_user_tools_cleanup.patch
typo3/sysext/beuser/mod/index.php (working copy) | ||
---|---|---|
<td nowrap="nowrap"><strong>Main group:</strong></td>
|
||
</tr>';
|
||
if (!is_array($treeArr)) $treeArr=$this->tree;
|
||
reset($treeArr);
|
||
while(list($k,$v)=each($treeArr)) {
|
||
if (!is_array($treeArr)) {
|
||
$treeArr = $this->tree;
|
||
}
|
||
foreach ($treeArr as $v) {
|
||
$col1 = ' bgcolor="'.t3lib_div::modifyHtmlColor($GLOBALS['SOBE']->doc->bgColor4,+10,+10,+10).'"';
|
||
$row = $v['row'];
|
||
$title = htmlspecialchars(t3lib_div::fixed_lgd_cs($row['title'],$this->BE_USER->uc['titleLen']));
|
||
... | ... | |
$pClause=$pClause?$pClause:$this->getPagePermsClause(1);
|
||
// Traverse mounts, check if they are readable:
|
||
foreach($webmounts as $k => $id) {
|
||
foreach ($webmounts as $k => $id) {
|
||
$rec=t3lib_BEfunc::getRecord('pages',$id,'*',' AND '.$pClause);
|
||
if (!is_array($rec)) {
|
||
$this->ext_non_readAccessPageArray[$id]=t3lib_BEfunc::getRecord('pages',$id);
|
||
... | ... | |
function ext_non_readAccessPages() {
|
||
$lines=array();
|
||
foreach($this->ext_non_readAccessPageArray as $pA) {
|
||
if ($pA) $lines[]=t3lib_BEfunc::getRecordPath($pA['uid'],'',15);
|
||
foreach ($this->ext_non_readAccessPageArray as $pA) {
|
||
if ($pA) {
|
||
$lines[] = t3lib_BEfunc::getRecordPath($pA['uid'],'',15);
|
||
}
|
||
}
|
||
if (count($lines)) {
|
||
if (count($lines)) {
|
||
return '<table bgcolor="red" border="0" cellpadding="0" cellspacing="0">
|
||
<tr>
|
||
<td align="center"><font color="white"><strong>The user has no read access to these DB-mounts!</strong></font></td>
|
||
... | ... | |
// Traverse the enabled analysis topics:
|
||
$out=array();
|
||
foreach($uInfo as $k => $v) {
|
||
foreach ($uInfo as $k => $v) {
|
||
if ($compareFlags[$k]) {
|
||
switch($k) {
|
||
case 'filemounts':
|
||
... | ... | |
break;
|
||
case 'pagetypes_select':
|
||
$pageTypes = explode(',',$v);
|
||
reset($pageTypes);
|
||
while(list($kk,$vv)=each($pageTypes)) {
|
||
$pageTypes[$kk]=$GLOBALS['LANG']->sL(t3lib_BEfunc::getLabelFromItemlist('pages','doktype',$vv));
|
||
foreach ($pageTypes as &$vv) {
|
||
$vv = $GLOBALS['LANG']->sL(t3lib_BEfunc::getLabelFromItemlist('pages','doktype',$vv));
|
||
}
|
||
$out[$k] = implode('<br />',$pageTypes);
|
||
break;
|
||
case 'tables_select':
|
||
case 'tables_modify':
|
||
$tables = explode(',',$v);
|
||
reset($tables);
|
||
while(list($kk,$vv)=each($tables)) {
|
||
if ($vv) {
|
||
$tables[$kk]='<span class="nobr">'.t3lib_iconWorks::getIconImage($vv,array(),$GLOBALS['BACK_PATH'],'align="top"').$GLOBALS['LANG']->sL($GLOBALS['TCA'][$vv]['ctrl']['title']).'</span>';
|
||
foreach ($tables as &$vv) {
|
||
if ($vv) {
|
||
$vv = '<span class="nobr">'.t3lib_iconWorks::getIconImage($vv,array(),$GLOBALS['BACK_PATH'],'align="top"').$GLOBALS['LANG']->sL($GLOBALS['TCA'][$vv]['ctrl']['title']).'</span>';
|
||
}
|
||
}
|
||
$out[$k] = implode('<br />',$tables);
|
||
break;
|
||
case 'non_exclude_fields':
|
||
$nef = explode(',',$v);
|
||
reset($nef);
|
||
$table='';
|
||
$pout=array();
|
||
while(list($kk,$vv)=each($nef)) {
|
||
if ($vv) {
|
||
foreach ($nef as $vv) {
|
||
if ($vv) {
|
||
list($thisTable,$field) = explode(':',$vv);
|
||
if ($thisTable!=$table) {
|
||
$table=$thisTable;
|
||
... | ... | |
case 'groupList':
|
||
case 'firstMainGroup':
|
||
$uGroups = explode(',',$v);
|
||
reset($uGroups);
|
||
$table='';
|
||
$pout=array();
|
||
while(list($kk,$vv)=each($uGroups)) {
|
||
if ($vv) {
|
||
foreach ($uGroups as $vv) {
|
||
if ($vv) {
|
||
$uGRow = t3lib_BEfunc::getRecord('be_groups',$vv);
|
||
$pout[]='<tr><td nowrap="nowrap">'.t3lib_iconWorks::getIconImage('be_groups',$uGRow,$GLOBALS['BACK_PATH'],'align="top"').' '.htmlspecialchars($uGRow['title']).' </td><td width=1% nowrap="nowrap">'.$GLOBALS['SOBE']->elementLinks('be_groups',$uGRow).'</td></tr>';
|
||
}
|
||
... | ... | |
break;
|
||
case 'modules':
|
||
$mods = explode(',',$v);
|
||
reset($mods);
|
||
$mainMod='';
|
||
$pout=array();
|
||
while(list($kk,$vv)=each($mods)) {
|
||
if ($vv) {
|
||
foreach ($mods as $vv) {
|
||
if ($vv) {
|
||
list($thisMod,$subMod) = explode('_',$vv);
|
||
if ($thisMod!=$mainMod) {
|
||
$mainMod=$thisMod;
|
||
... | ... | |
);
|
||
// Traverse types:
|
||
foreach($theTypes as $tableFieldKey => $theTypeArrays) {
|
||
foreach ($theTypes as $tableFieldKey => $theTypeArrays) {
|
||
if (is_array($theTypeArrays['items'])) {
|
||
$pout[] = '<b>'.$theTypeArrays['tableFieldLabel'].'</b>';
|
||
// Traverse options for this field:
|
||
foreach($theTypeArrays['items'] as $itemValue => $itemContent) {
|
||
foreach ($theTypeArrays['items'] as $itemValue => $itemContent) {
|
||
$v = $tableFieldKey.':'.$itemValue.':'.$itemContent[0];
|
||
if (isset($nef[$v])) {
|
||
unset($nef[$v]);
|
||
... | ... | |
$items = t3lib_BEfunc::getSystemLanguages();
|
||
// Traverse values:
|
||
foreach($items as $iCfg) {
|
||
foreach ($items as $iCfg) {
|
||
if (isset($nef[$iCfg[1]])) {
|
||
unset($nef[$iCfg[1]]);
|
||
if (strlen($iCfg[2])) {
|
||
... | ... | |
// Initialize:
|
||
$customOptions = $GLOBALS['TYPO3_CONF_VARS']['BE']['customPermOptions'];
|
||
if (is_array($customOptions)) {
|
||
foreach($customOptions as $coKey => $coValue) {
|
||
foreach ($customOptions as $coKey => $coValue) {
|
||
if (is_array($coValue['items'])) {
|
||
// Traverse items:
|
||
foreach($coValue['items'] as $itemKey => $itemCfg) {
|
||
foreach ($coValue['items'] as $itemKey => $itemCfg) {
|
||
$v = $coKey.':'.$itemKey;
|
||
if (isset($nef[$v])) {
|
||
unset($nef[$v]);
|
||
... | ... | |
*/
|
||
function ext_ksortArrayRecursive(&$arr) {
|
||
krsort($arr);
|
||
reset($arr);
|
||
while(list($k,$v)=each($arr)) {
|
||
if (is_array($v)) $this->ext_ksortArrayRecursive($arr[$k]);
|
||
foreach ($arr as &$v) {
|
||
if (is_array($v)) {
|
||
$this->ext_ksortArrayRecursive($v);
|
||
}
|
||
}
|
||
}
|
||
/**
|
||
* [Describe function...]
|
||
* Returns all workspaces that are accessible for the BE_USER
|
||
*
|
||
* @return [type] ...
|
||
* @return array with key / value pairs of available workspaces (filtered by BE_USER check)
|
||
*/
|
||
function ext_workspaceMembership() {
|
||
// Create accessible workspace arrays:
|
||
... | ... | |
// Check if all mount points are accessible, otherwise show error:
|
||
if (trim($rec['db_mountpoints'])!=='') {
|
||
$mountPoints = t3lib_div::intExplode(',',$this->workspaceRec['db_mountpoints'],1);
|
||
foreach($mountPoints as $mpId) {
|
||
foreach ($mountPoints as $mpId) {
|
||
if (!$this->isInWebMount($mpId,'1=1')) {
|
||
$options[$rec['uid']].= '<br> \- WARNING: Workspace Webmount page id "'.$mpId.'" not accessible!';
|
||
}
|
||
... | ... | |
var $include_once=array();
|
||
var $content;
|
||
/**
|
||
* @return [type] ...
|
||
* Basic initialization of the class
|
||
*
|
||
* @return void
|
||
*/
|
||
function init() {
|
||
$this->MCONF = $GLOBALS['MCONF'];
|
||
... | ... | |
}
|
||
/**
|
||
* [Describe function...]
|
||
* Initialization of the module menu configuration
|
||
*
|
||
* @return [type] ...
|
||
* @return void
|
||
*/
|
||
function menuConfig() {
|
||
// MENU-ITEMS:
|
||
... | ... | |
}
|
||
/**
|
||
* [Describe function...]
|
||
* This functions builds the content of the page
|
||
*
|
||
* @return [type] ...
|
||
* @return void
|
||
*/
|
||
function main() {
|
||
$this->content='';
|
||
... | ... | |
}
|
||
/**
|
||
* [Describe function...]
|
||
* Prints the content of the page
|
||
*
|
||
* @return [type] ...
|
||
* @return void
|
||
*/
|
||
function printContent() {
|
||
echo $this->content;
|
||
... | ... | |
***************************/
|
||
/**
|
||
* @param [type] $compareFlags: ...
|
||
* @return [type] ...
|
||
* Compares the users with the given flags
|
||
*
|
||
* @param array options that should be taking into account to compare the users
|
||
* @return string the content
|
||
*/
|
||
function compareUsers($compareFlags) {
|
||
// Menu:
|
||
... | ... | |
$uInfo_dat = $tempBE_USER->ext_printOverview($uInfo,$options,1);
|
||
$lines=array();
|
||
reset($options);
|
||
while(list($kk,$vv)=each($options)) {
|
||
foreach ($options as $kk => $vv) {
|
||
if ($kk=='modules') {
|
||
$loadModules = t3lib_div::makeInstance('t3lib_loadModules');
|
||
$loadModules->load($GLOBALS['TBE_MODULES'],$tempBE_USER);
|
||
... | ... | |
$outTable.= '<br /><table border="0" cellpadding="2" cellspacing="1">'.implode('',$lines).'</table>';
|
||
$content.= $this->doc->section('User info',$outTable,0,1);
|
||
} else {
|
||
reset($options);
|
||
$menu=array();
|
||
while(list($kk,$vv)=each($options)) {
|
||
foreach ($options as $kk => $vv) {
|
||
$menu[]='<input type="checkbox" value="1" name="compareFlags['.$kk.']" id="checkCompare_'.$kk.'"'.($compareFlags[$kk]?' checked="checked"':'').'> <label for="checkCompare_'.$kk.'">'.htmlspecialchars($vv).'</label>';
|
||
}
|
||
$outCode = 'Group by:<br />'.implode('<br />',$menu);
|
||
... | ... | |
// Traverse all users
|
||
$users = t3lib_BEfunc::getUserNames();
|
||
$comparation=array();
|
||
reset($users);
|
||
$counter=0;
|
||
... | ... | |
$numberAtTime=1000;
|
||
$tooManyUsers='';
|
||
while(list(,$r)=each($users)) {
|
||
foreach ($users as $r) {
|
||
if ($counter>=$offset) {
|
||
// This is used to test with other users. Development ONLY!
|
||
$tempBE_USER = t3lib_div::makeInstance('local_beUserAuth'); // New backend user object
|
||
... | ... | |
$md5pre='';
|
||
$menu=array();
|
||
$uInfo = $tempBE_USER->ext_compileUserInfoForHash((array)$compareFlags);
|
||
reset($options);
|
||
while(list($kk,$vv)=each($options)) {
|
||
foreach ($options as $kk => $vv) {
|
||
if ($compareFlags[$kk]) {
|
||
$md5pre.=serialize($uInfo[$kk]).'|';
|
||
}
|
||
... | ... | |
$allGroups=array();
|
||
// Header:
|
||
$allCells = array();
|
||
reset($options);
|
||
$link_createNewUser='<a href="#" onclick="'.htmlspecialchars(t3lib_BEfunc::editOnClick('&edit[be_users][0]=new',$this->doc->backPath,-1)).'">'.
|
||
'<img'.t3lib_iconWorks::skinImg($this->doc->backPath,'gfx/new_el.gif').' title="'.$GLOBALS['LANG']->getLL('new',1).'" alt="" />'.
|
||
... | ... | |
$allCells['USERS'] = '<table border="0" cellspacing="0" cellpadding="0" width="100%"><td><b>Usernames:</b></td><td width="12">'.$link_createNewUser.'</td></tr></table>';
|
||
while(list($kk,$vv)=each($options)) {
|
||
foreach ($options as $kk => $vv) {
|
||
if ($compareFlags[$kk]) {
|
||
$allCells[$kk] = '<b>'.$vv.':</b>';
|
||
}
|
||
}
|
||
$allGroups[]=$allCells;
|
||
reset($comparation);
|
||
while(list(,$dat)=each($comparation)) {
|
||
foreach ($comparation as $dat) {
|
||
$allCells = array();
|
||
$curUid = $GLOBALS['BE_USER']->user['uid'];
|
||
$uListArr=array();
|
||
reset($dat['users']);
|
||
while(list(,$uDat)=each($dat['users'])) {
|
||
foreach ($dat['users'] as $uDat) {
|
||
$uItem = '<tr><td width="130">'.t3lib_iconWorks::getIconImage('be_users',$uDat,$GLOBALS['BACK_PATH'],'align="top" title="'.$uDat['uid'].'"').$this->linkUser($uDat['username'],$uDat).' </td><td nowrap="nowrap">'.$this->elementLinks('be_users',$uDat);
|
||
if ($curUid != $uDat['uid'] && !$uDat['disable'] && ($uDat['starttime'] == 0 || $uDat['starttime'] < time()) && ($uDat['endtime'] == 0 || $uDat['endtime'] > time())) {
|
||
$uItem .= '<a href="'.t3lib_div::linkThisScript(array('SwitchUser'=>$uDat['uid'])).'" target="_top"><img '.t3lib_iconWorks::skinImg($GLOBALS['BACK_PATH'],'gfx/su.gif').' border="0" align="top" title="'.htmlspecialchars('Switch user to: '.$uDat['username']).' [change-to mode]" alt="" /></a>'.
|
||
... | ... | |
}
|
||
$allCells['USERS'] = '<table border="0" cellspacing="0" cellpadding="0" width="100%">'.implode('',$uListArr).'</table>';
|
||
reset($options);
|
||
while(list($kk,$vv)=each($options)) {
|
||
foreach ($options as $kk => $vv) {
|
||
if ($compareFlags[$kk]) {
|
||
$allCells[$kk] = $dat[$kk];
|
||
}
|
||
... | ... | |
// Make table
|
||
$outTable='';
|
||
reset($allGroups);
|
||
$TDparams=' nowrap="nowrap" class="bgColor5" valign="top"';
|
||
while(list(,$allCells)=each($allGroups)) {
|
||
$i = 0;
|
||
foreach ($allGroups as $allCells) {
|
||
$outTable.='<tr><td'.$TDparams.'>'.implode('</td><td'.$TDparams.'>',$allCells).'</td></tr>';
|
||
$TDparams=' nowrap="nowrap" class="bgColor4" valign="top"';
|
||
$TDparams=' nowrap="nowrap" class="'.($i++ % 2 == 0 ? 'bgColor4' : 'bgColor6').'" valign="top"';
|
||
}
|
||
$outTable='<table border="0" cellpadding="2" cellspacing="2">'.$outTable.'</table>';
|
||
$outTable.=fw('<br /><br />(All cached group lists updated.)');
|
||
... | ... | |
return $content;
|
||
}
|
||
/**
|
||
* [Describe function...]
|
||
* Creates a HTML anchor to the user record
|
||
*
|
||
* @param [type] $str: ...
|
||
* @param [type] $rec: ...
|
||
* @return [type] ...
|
||
* @param string the string used to identify the user (inside the <a>...</a>)
|
||
* @param array the BE user record to link
|
||
* @return string the HTML anchor
|
||
*/
|
||
function linkUser($str,$rec) {
|
||
return '<a href="'.htmlspecialchars($this->MCONF['_']).'&be_user_uid='.$rec['uid'].'">'.$str.'</a>';
|
||
}
|
||
/**
|
||
* [Describe function...]
|
||
* Builds a list of all links for a specific element (here: BE user) and returns it for print.
|
||
*
|
||
* @param [type] $table: ...
|
||
* @param [type] $row: ...
|
||
* @return [type] ...
|
||
* @param string the db table that should be used
|
||
* @param array the BE user record to use
|
||
* @return string a HTML formatted list of the link
|
||
*/
|
||
function elementLinks($table,$row) {
|
||
// Info:
|
||
... | ... | |
return implode('',$cells);
|
||
}
|
||
/**
|
||
* [Describe function...]
|
||
* Inits all BE-users available, for development ONLY!
|
||
*
|
||
* @return [type] ...
|
||
* @return void
|
||
*/
|
||
function initUsers() {
|
||
// Initializing all users in order to generate the usergroup_cached_list
|
||
$users = t3lib_BEfunc::getUserNames();
|
||
reset($users);
|
||
while(list(,$r)=each($users)) {
|
||
// This is used to test with other users. Development ONLY!
|
||
// This is used to test with other users. Development ONLY!
|
||
foreach ($users as $r) {
|
||
$tempBE_USER = t3lib_div::makeInstance('local_beUserAuth'); // New backend user object
|
||
$tempBE_USER->OS = TYPO3_OS;
|
||
$tempBE_USER->setBeUserByUid($r['uid']);
|
||
... | ... | |
}
|
||
/**
|
||
* [Describe function...]
|
||
* Returns the local path for this string (removes the PATH_site if it is included)
|
||
*
|
||
* @param [type] $str: ...
|
||
* @return [type] ...
|
||
* @param string the path that will be checked
|
||
* @return string the local path
|
||
*/
|
||
function localPath($str) {
|
||
if (substr($str,0,strlen(PATH_site))==PATH_site) {
|
||
return substr($str,strlen(PATH_site));
|
||
} else return $str;
|
||
} else {
|
||
return $str;
|
||
}
|
||
}
|
||
/**
|
||
* [Describe function...]
|
||
* Switches to a given user (SU-mode) and then redirects to the start page of the backend to refresh the navigation etc.
|
||
*
|
||
* @param [type] $switchUser: ...
|
||
* @return [type] ...
|
||
* @param array BE-user record that will be switched to
|
||
* @return void
|
||
*/
|
||
function switchUser($switchUser) {
|
||
$uRec=t3lib_BEfunc::getRecord('be_users',$switchUser);
|
typo3/sysext/t3skin/stylesheets/typo3-colors.css (working copy) | ||
---|---|---|
background-color: #F8F9FA;
|
||
}
|
||
.bgColor5 {
|
||
background-color: #D7DBE2;
|
||
}
|
||
}
|
||
.bgColor6 {
|
||
background-color: #e0e0e0;
|
||
}
|
- « Previous
- 1
- 2
- 3
- Next »