Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Aprovechando los roles y permisos

Aprovechando los roles y permisos

Aprovechando los roles y permisos

More Decks by César J. Aquino Maximiliano

Other Decks in Design

Transcript

  1. César Jefferson Aquino Maximiliano Senior Developer (Orange612) PHP (WordPress, WooCommerce,

    Laravel, CodeIgniter) JS (NodeJS, Angular, IONIC) Twitter: @cesjam7 Web: cesar.pe
  2. ¿Qué son los roles? Los Roles o Perfiles son simplemente

    grupos que definimos para organizar los usuarios de nuestro sitio con funciones similares.
  3. ¿Qué son los roles? Los Roles o Perfiles son simplemente

    grupos que definimos para organizar los usuarios de nuestro sitio con funciones similares. Roles por defecto en WordPress - Super administrador - administrator - editor - author - contributor - subscriber
  4. ¿Qué son los roles? Los Roles o Perfiles son simplemente

    grupos que definimos para organizar los usuarios de nuestro sitio con funciones similares. Roles por defecto en WordPress - Super administrador - administrator - editor - author - contributor - subscriber Roles creados por WooCommerce - Customer - Shop Manager
  5. ¿Qué son las permisos? Los permisos o capacidades (capabilities) son

    acciones que se definen previamente para diferentes acciones dentro del sitio y que se asigna a los usuarios dependiendo su rol.
  6. ¿Qué son las permisos? Los permisos o capacidades (capabilities) son

    acciones que se definen previamente para diferentes acciones dentro del sitio y que se asigna a los usuarios dependiendo su rol. “Algunas capacidades” en WordPress - manage_options - install_plugins - upload_files - edit_post - read Capacidades agregadas con WooCommerce - manage_woocommerce - view_woocommerce_reports
  7. Creando menú personalizados en el dashboard https://developer.wordpress.org/reference/functions/add_menu_page/ <?php function ccc7_register_my_custom_menu_page()

    { add_menu_page( __( 'Custom Menu Title', 'textdomain' ), 'custom menu', 'manage_options', 'myplugin/myplugin-admin.php', 'amazing_function', plugins_url( 'myplugin/images/icon.png' ), 6 ); } add_action('admin_menu', 'ccc7_register_my_custom_menu_page'); ?>
  8. Creando post types para un rol específico OJO: Debes agregar

    todos las capabilities “book” al rol que deseas https://developer.wordpress.org/reference/functions/register_post_type/ <?php function ccc7_register_book_cpt() { $args = [ 'public' => true, 'label' => 'Books', 'capability_type' => 'book' ]; register_post_type( 'book', $args ); } add_action( 'init', 'ccc7_register_book_cpt' ); ?>
  9. Mostrando opciones en el front para cierta capacidad https://codex.wordpress.org/current_user_can <?php

    if ( current_user_can( 'upload_files') ) { get_sidebar('files'); } else { get_sidebar(); } ?>
  10. Enviar a una página específica al iniciar sesión un rol

    específico https://codex.wordpress.org/Function_Reference/wp_get_current_user <?php $user = wp_get_current_user(); if ( in_array( 'subscriber', (array) $user->roles ) ) { wp_redirect(home_url('panel'); die(); } ?>
  11. ¿Y podemos crear nuestros propios roles y capacidades? Si, aún

    viene más código. Sigue whatsappeando.
  12. Registrar tu propio rol $result = add_role( 'cat', __('Gato' ),

    array( 'read' => true, 'edit_posts' => true, // Permite editar sus propios posts 'edit_pages' => true, // Permite editar páginas 'publish_posts' => true, // Permite publicar posts ) ); https://codex.wordpress.org/Function_Reference/add_role
  13. Agregar nuevas o capacidades ya existentes a roles global $wp_roles;

    $wp_roles->add_cap( 'cat', 'edit_info' ); // OR $role = get_role( 'cat' ); $role->add_cap( 'edit_info' ); https://codex.wordpress.org/Function_Reference/add_cap
  14. Quitar capacidades a roles global $wp_roles; $wp_roles->remove_cap( 'cat', 'read' );

    // OR $role = get_role( 'cat' ); $role->remove_cap( 'read' ); https://codex.wordpress.org/Function_Reference/remove_cap