Permettere agli utenti di modificare solo la propria pagina e nessun'altra

26 mar 2012, 19:16:37
Visualizzazioni: 16.7K
Voti: 7

Attualmente abbiamo circa 50 pagine, e voglio che ogni utente (ad esempio, bob, rob, smith) possa modificare solo 1 pagina specifica. Per esempio, bob e smith hanno ognuno la propria pagina. Non voglio che bob possa modificare la pagina di smith. Voglio che bob possa modificare SOLO la pagina di bob. Non mi interessa se può vedere altre pagine. Esaminando i ruoli utente, non trovo un modo per farlo attualmente - vedo solo come limitare l'accesso a livello globale.

Esistono plugin per limitare l'accesso in modifica per utente, o ruoli limitati alla modifica di pagine specifiche in modo da poter aggiungere 1 utente per ruolo? Oppure c'è un modo per farlo con le impostazioni predefinite che mi sono sfuggito?

1
Commenti

Il ruolo di contributor consente solo la modifica dei propri post. In alternativa, puoi creare un ruolo personalizzato.

Brad Dalton Brad Dalton
23 ott 2014 16:20:45
Tutte le risposte alla domanda 4
0

Puoi aggiungere questo al tuo file functions.php nel tuo template per permettere all'utente di modificare le pagine che ha creato e gestire i media. Basta specificare il loro $user_id (ad esempio 27):

function add_theme_caps() {
    // per aggiungere le capability a $user_id
    $user = new WP_User( $user_id );
    $user->add_cap( 'edit_pages' );
    $user->add_cap( 'edit_published_pages' );
    $user->add_cap( 'upload_files' );
}
add_action( 'admin_init', 'add_theme_caps' );

Puoi trovare lo $user_id specifico di un utente dall'URL quando modifichi un utente specifico dalla pagina di amministrazione di Wordpress.

Vedi la lista completa delle capability di Wordpress.

Se preferisci modificare il ruolo predefinito contributor per permettere a tutti gli utenti con il ruolo contributor di modificare le pagine che hanno creato:

function add_theme_caps() {
    // per aggiungere le capability al ruolo `contributor`
    $role = get_role( 'contributor' );
    $role->add_cap( 'edit_pages' );
    $role->add_cap( 'edit_published_pages' );
    $role->add_cap( 'upload_files' );
}
add_action( 'admin_init', 'add_theme_caps' );
15 dic 2014 00:48:40
0

Role Scope è molto potente, ma penso sia eccessivo per questo caso. Se assegni a Bob e Smith il ruolo di Autore (uno dei ruoli predefiniti), potranno modificare solo i propri articoli.

26 mar 2012 22:31:04
0

Il plugin Role Scoper può abilitare questa funzionalità.

26 mar 2012 19:27:17
0

Puoi anche modificare direttamente la tabella di WordPress. Sembrava che phpAdmin fosse un modo più veloce per procedere.

La tabella è

wp_usermeta

Cerca il user_id, modifica il valore per

wp_capabilities

e impostalo a qualcosa come

a:4:{s:11:"contributor";b:1;b:1;s:10:"edit_pages";b:1;s:20:"edit_published_pages";b:1;s:12:"upload_files";b:1;}

Ho trovato http://www.unserialize.me/ utile per assicurarmi che la serializzazione fosse corretta (e immagino ci siano anche altri siti simili)

23 dic 2016 02:31:40