Version 4.1.2
This commit is contained in:
1 parent
3ba79295ee
commit
28bd025b35
1131 files changed
+63658
-20579
No files matched your search
@@ -124,13 +124,13 @@ class _members extends \IPS\Dispatcher\Controller
|
||||
'from' => array( 'core_pfields_content', 'p' ),
|
||||
'where' => 'p.member_id=core_members.member_id' ),
|
||||
array(
|
||||
'select' => 'row_id',
|
||||
'from' => array( 'core_admin_permission_rows', 'a' ),
|
||||
'where' => "a.row_id=core_members.member_id AND a.row_id_type='member'" ),
|
||||
'select' => 'm.row_id',
|
||||
'from' => array( 'core_admin_permission_rows', 'm' ),
|
||||
'where' => "m.row_id=core_members.member_id AND m.row_id_type='member'" ),
|
||||
array(
|
||||
'select' => 'g_access_cp',
|
||||
'from' => array( 'core_groups', 'g' ),
|
||||
'where' => "g.g_id=core_members.member_group_id" ),
|
||||
'select' => 'g.row_id',
|
||||
'from' => array( 'core_admin_permission_rows', 'g' ),
|
||||
'where' => "( g.row_id=core_members.member_group_id OR FIND_IN_SET( g.row_id, core_members.mgroup_others ) ) AND g.row_id_type='group'" ),
|
||||
);
|
||||
|
||||
/* Makes query less efficient */
|
||||
@@ -183,7 +183,7 @@ class _members extends \IPS\Dispatcher\Controller
|
||||
'members_filter_locked' => 'failed_login_count>=' . (int) \IPS\Settings::i()->ipb_bruteforce_attempts,
|
||||
'members_filter_spam' => \IPS\Db::i()->bitwiseWhere( \IPS\Member::$bitOptions['members_bitoptions'], 'bw_is_spammer' ),
|
||||
'members_filter_validating' => '( v.lost_pass=0 AND v.vid IS NOT NULL )',
|
||||
'members_filter_administrators' => '( a.row_id IS NOT NULL OR g.g_access_cp=1 )'
|
||||
'members_filter_administrators' => '( m.row_id IS NOT NULL OR g.row_id IS NOT NULL )'
|
||||
);
|
||||
|
||||
/* Custom parsers */
|
||||
@@ -372,6 +372,7 @@ class _members extends \IPS\Dispatcher\Controller
|
||||
'members_last_post' => \IPS\Request::i()->members_last_post,
|
||||
'members_last_visit' => \IPS\Request::i()->members_last_visit,
|
||||
'members_posts' => \IPS\Request::i()->members_posts,
|
||||
'filter' => \IPS\Request::i()->filter,
|
||||
) );
|
||||
|
||||
if ( \IPS\Member::loggedIn()->hasAcpRestriction( 'core', 'members', 'member_delete' ) )
|
||||
@@ -519,6 +520,28 @@ class _members extends \IPS\Dispatcher\Controller
|
||||
$where[] = array( 'posts'.$operator.'?', (int) \IPS\Request::i()->members_posts[1] );
|
||||
}
|
||||
|
||||
if( isset( \IPS\Request::i()->filter ) )
|
||||
{
|
||||
switch ( \IPS\Request::i()->filter )
|
||||
{
|
||||
case 'members_filter_banned':
|
||||
$where[] = array( 'temp_ban<>0' );
|
||||
break;
|
||||
case 'members_filter_locked':
|
||||
$where[] = array( 'failed_login_count>=' . (int) \IPS\Settings::i()->ipb_bruteforce_attempts );
|
||||
break;
|
||||
case 'members_filter_spam':
|
||||
$where[] = array( \IPS\Db::i()->bitwiseWhere( \IPS\Member::$bitOptions['members_bitoptions'], 'bw_is_spammer' ) );
|
||||
break;
|
||||
case 'members_filter_validating':
|
||||
$where[] = array( '( v.lost_pass=0 AND v.vid IS NOT NULL )' );
|
||||
break;
|
||||
case 'members_filter_administrators':
|
||||
$where[] = array( '( m.row_id IS NOT NULL OR g.row_id IS NOT NULL )' );
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ( !count( $where ) )
|
||||
{
|
||||
if ( \IPS\Request::i()->action === 'prune' )
|
||||
@@ -812,7 +835,7 @@ class _members extends \IPS\Dispatcher\Controller
|
||||
$form = new \IPS\Helpers\Form;
|
||||
foreach ( $extensions as $k => $class )
|
||||
{
|
||||
$form->addtab( 'member__' . $k );
|
||||
$form->addTab( 'member__' . $k );
|
||||
$class->process( $form, $member );
|
||||
|
||||
if ( method_exists( $class, 'actionButtons' ) )
|
||||
@@ -999,6 +1022,7 @@ class _members extends \IPS\Dispatcher\Controller
|
||||
$member->pp_main_photo = NULL;
|
||||
$member->pp_main_photo = (string) $values['member_photo_upload'];
|
||||
$member->pp_thumb_photo = (string) $values['member_photo_upload']->thumbnail( 'core_Profile', \IPS\PHOTO_THUMBNAIL_SIZE, \IPS\PHOTO_THUMBNAIL_SIZE, TRUE );
|
||||
$member->photo_last_update = time();
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -1006,11 +1030,13 @@ class _members extends \IPS\Dispatcher\Controller
|
||||
$member->pp_photo_type = 'custom';
|
||||
$member->pp_main_photo = NULL;
|
||||
$member->pp_main_photo = (string) $values['member_photo_url'];
|
||||
$member->photo_last_update = time();
|
||||
break;
|
||||
|
||||
case 'none':
|
||||
$member->pp_main_photo = NULL;
|
||||
$member->members_bitoptions['bw_disable_gravatar'] = 1;
|
||||
$member->photo_last_update = NULL;
|
||||
break;
|
||||
|
||||
default:
|
||||
@@ -1057,10 +1083,13 @@ class _members extends \IPS\Dispatcher\Controller
|
||||
}
|
||||
|
||||
/* Init Table */
|
||||
$table = new \IPS\Helpers\Table\Custom( $member->ipAddresses(), \IPS\Http\Url::internal( "app=core&module=members&controller=members&id={$member->member_id}&do=ip" ) );
|
||||
$table->langPrefix = 'members_iptable_';
|
||||
$table->mainColumn = 'ip';
|
||||
$table->sortBy = $table->sortBy ?: 'last';
|
||||
$ips = $member->ipAddresses();
|
||||
|
||||
$table = new \IPS\Helpers\Table\Custom( $ips, \IPS\Http\Url::internal( "app=core&module=members&controller=members&id={$member->member_id}&do=ip" ) );
|
||||
$table->langPrefix = 'members_iptable_';
|
||||
$table->mainColumn = 'ip';
|
||||
$table->sortBy = $table->sortBy ?: 'last';
|
||||
$table->quickSearch = 'ip';
|
||||
|
||||
/* Parsers */
|
||||
$table->parsers = array(
|
||||
@@ -1404,7 +1433,14 @@ class _members extends \IPS\Dispatcher\Controller
|
||||
}
|
||||
|
||||
/* Do it */
|
||||
$accountToKeep->merge( $accountToDelete );
|
||||
try
|
||||
{
|
||||
$accountToKeep->merge( $accountToDelete );
|
||||
}
|
||||
catch( \InvalidArgumentException $e )
|
||||
{
|
||||
\IPS\Output::i()->error( $e->getMessage(), '3C114/J', 403, '' );
|
||||
}
|
||||
|
||||
/* Delete the account */
|
||||
$accountToDelete->delete( FALSE );
|
||||
|
||||
Reference in new issue
Block a user