wake-up-neo.net

Wie verstecke ich den Admin-Account in BuddyPress? (aus Sicherheitsgründen)

Ich arbeite seit 3-4 Jahren mit WordPress, bin aber neu bei BuddyPress.

Ich möchte den Admin-Account aus Sicherheitsgründen komplett vor BuddyPress verstecken. Zum Beispiel würde ich mit einem regulären WordPress-Blog zwei separate Konten haben (eines mit Administratorrechten, die verborgen bleiben, und eines mit nur einer Editorrolle, um alle Artikel zu veröffentlichen). Auf diese Weise wird das Administratorkonto vor der Öffentlichkeit verborgen, und jeder, der versucht einzubrechen, muss sowohl das Kennwort als auch den Benutzernamen erraten. In BuddyPress ist dies nicht so einfach, da das Administratorkonto sehr stark der Öffentlichkeit zugänglich ist.

Eine Sache, die ich geschafft habe, ist das Admin-Profil aus dem Mitgliederverzeichnis auszuschließen, indem ich die Datei /bp-themes/bp-default/members/member_loop.php bearbeitete. (Ja, ich weiß, ich sollte das Standarddesign nicht bearbeiten und stattdessen ein untergeordnetes Design oder ein eigenständiges Design erstellen. Ich werde darauf zugreifen, sobald dies behoben ist.) Ich habe den Parameter & exclude = 1 hinzugefügt (1 ist die Benutzer-ID von das Admin-Konto) als solches:

<?php if ( bp_has_members( bp_ajax_querystring( 'members' ).'&exclude=1' ) ) : ?>

Aber ich würde etwas Hilfe bei Folgendem brauchen:

  1. Das Admin-Profil ausblenden (d. H. Es nur für sich selbst, aber nicht für andere sichtbar machen).

  2. Verhindern, dass die Aktivität des Administrators öffentlich auf der Website angezeigt wird.

  3. Oder habe ich noch etwas vermisst?

PS. Ich denke darüber nach, BuddyPress in einem MultiSite-Netzwerk zu installieren, daher ist es für mich sehr wichtig, das Superadministratorkonto nicht auf diese Weise freizugeben.

EDIT: Also hier ist, was ich mir für # 1 ausgedacht habe (es geht in die functions.php Seite des Themas):

// Hide admin profile pages
add_action( 'wp', 'hide_profile_template', 1 );
function hide_profile_template() {
global $bp; 
    if(bp_is_profile && $bp->displayed_user->id == 1 && $bp->loggedin_user->id != 1) :
        global $wp_query;
        $wp_query->set_404();
        status_header(404);
        include(locate_template('404.php'));
        exit;
    endif;
}

Deshalb brauche ich jetzt immer noch Hilfe beim Verstecken der Administratoraktivität (# 2).

6
Paul T.

Ich habe das gefunden:

Benutzer aus dem Mitgliederverzeichnis eines BuddyPress-basierten sozialen Netzwerks ausschließen

Wir müssen uns an den 'bp_ajax_querystring'-Filter binden.

Mit dem folgenden Code können Benutzer aus dem Mitgliederverzeichnis ausgeschlossen werden. Sie werden weiterhin in der Freundesliste anderer Benutzer aufgeführt, mit denen sie befreundet sind.

add_action('bp_ajax_querystring','bpdev_exclude_users',20,2);
function bpdev_exclude_users($qs=false,$object=false){
 //list of users to exclude

 $excluded_user='1,2,3';//comma separated ids of users whom you want to exclude

 if($object!='members')//hide for members only
 return $qs;

 $args=wp_parse_args($qs);

 //check if we are listing friends?, do not exclude in this case
 if(!empty($args['user_id']))
 return $qs;

 if(!empty($args['exclude']))
 $args['exclude']=$args['exclude'].','.$excluded_user;
 else
 $args['exclude']=$excluded_user;

 $qs=build_query($args);

 return $qs;

}

Quelle

Und in BP-Foren:

Wie verstecke ich Admin-Aktivitäten bei Buddypress-Aktivitäten?

Fügen Sie diesen Code in die Datei bp-custom.php ein, und es wird keine Aktivität des Site-Administrators aufgezeichnet. Sie werden auch nicht im Widget Wer ist online/kürzlich aktive Mitglieder angezeigt.

add_action("plugins_loaded","bpdev_init_sm_mode");
function bpdev_init_sm_mode(){
if(is_site_admin())
remove_action("wp_head","bp_core_record_activity"); //id SM is on, remove the record activity hook
}

Quelle

Ich denke, Sie können beide Filter zusammenführen und Admin ein für allemal verstecken :)

UPDATE

Da diese Hacks in 1.6 diesem Thema nicht funktionieren, kann dies möglicherweise mithilfe der alten Admin-Leiste in BuddyPress geschehen. Ist das so?

4
Diana
// http://wordpress.org/extend/plugins/bp-ninja/
add_action('bp_init', function() {
    global $bp;

    if (is_super_admin()) {
            //first remove the action that record the last activity
            remove_action('wp_head', 'bp_core_record_activity');

            //then remove the last activity, if present
            delete_usermeta($bp->loggedin_user->id, 'last_activity');
    }
});

// "Not recently active" yazısını super admin için kaldır
add_filter( 'bp_core_get_last_activity', function($last_active){
    global $bp;
    if ( bp_is_active( 'xprofile' ) ){
        $last_active_bp_string = __( 'Not recently active', 'buddypress' );
        if( ($last_active_bp_string == $last_active) && is_super_admin($bp->displayed_user->id)) {
            $last_active = __('Network Admin');
        }
    }
    return $last_active;
});
0
Ünsal Korkmaz

Ich habe herausgefunden, wie das geht. Es ist eine Kombination aus Buddypress-Ninja und Zurücksetzen der Admin-Leiste. Das Ninja-Plugin funktioniert, kann aber derzeit nicht in der neuen Admin-Leiste umgeschaltet werden. Sie aktivieren also vorübergehend die alte Leiste, um den Stealth-Modus umzuschalten, und reaktivieren dann die neue Leiste.

Mehr Infos hier:

0
ubernaut

Ich habe diesen kleinen Code auf buddydev gefunden. Wird ursprünglich verwendet, um den aktuellen Benutzer auszublenden. Es kann jedoch leicht geändert werden, um den Administrator auszublenden.

add_action( 'pre_user_query', 'devb_exclude_loggedin_user', 201 );

function devb_exclude_loggedin_user( $query ) {

    //do not hide users inside the admin
    if ( is_admin() && !defined('DOING_AJAX') )
        return;
    $qv = $query->query_vars;

    global $wpdb;
    //hide in my case user_id: 1
    $query->query_where .= $wpdb->prepare(" AND {$wpdb->users}.ID !=%d ", 1);
}

Quelle

0
user1973842

Soeben wurde der Administrator von buddypress 1.9.2 entfernt

so habe ich es gemacht:

meine admin benutzer id 2

in der Datei: buddypress\bp-members\bp-members-template.php

suche Zeile 292 'exclude' => false,

und ändere false in ur user id my case 2:

 // type: active ( default ) | random | newest | popular | online | alphabetical
$defaults = array(
    'type'            => $type,
    'page'            => $page,
    'per_page'        => 20,
    'max'             => false,

    'page_arg'        => 'upage',       // See https://buddypress.trac.wordpress.org/ticket/3679

    'include'         => false,         // Pass a user_id or a list (comma-separated or array) of user_ids to only show these users
    'exclude'         => 2,         // Pass a user_id or a list (comma-separated or array) of user_ids to exclude these users

    'user_id'         => $user_id,      // Pass a user_id to only show friends of this user
    'search_terms'    => $search_terms, // Pass search_terms to filter users by their profile data

    'meta_key'        => false,         // Only return users with this usermeta
    'meta_value'      => false,         // Only return users where the usermeta value matches. Requires meta_key

    'populate_extras' => true           // Fetch usermeta? Friend count, last active etc.
);
0
DrMosko