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. Aprovechando los
    roles y permisos
    César Aquino Maximiliano
    @cesjam7 - cesar.pe
    - Abril 2020.2 -

    View Slide

  2. César Jefferson Aquino Maximiliano
    Senior Developer (Orange612)
    PHP (WordPress, WooCommerce, Laravel,
    CodeIgniter)
    JS (NodeJS, Angular, IONIC)
    Twitter: @cesjam7
    Web: cesar.pe

    View Slide

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

    View Slide

  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

    View Slide

  5. ¿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

    View Slide

  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.

    View Slide

  7. ¿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

    View Slide

  8. Fin.

    View Slide

  9. ¿Cómo sacarle más provecho?
    SPOILER: Viene códigos de programación.
    #avisadosEstan #preparaTé #mejorCafé

    View Slide

  10. Creando menú personalizados en el dashboard
    https://developer.wordpress.org/reference/functions/add_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'); ?>

    View Slide

  11. 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/
    $args = [
    'public' => true,
    'label' => 'Books',
    'capability_type' => 'book'
    ];
    register_post_type( 'book', $args );
    }
    add_action( 'init', 'ccc7_register_book_cpt' ); ?>

    View Slide

  12. Mostrando opciones en el front para cierta
    capacidad
    https://codex.wordpress.org/current_user_can
    get_sidebar('files');
    } else {
    get_sidebar();
    } ?>

    View Slide

  13. 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
    if ( in_array( 'subscriber', (array) $user->roles ) ) {
    wp_redirect(home_url('panel');
    die();
    } ?>

    View Slide

  14. Me quedé sin más ideas.

    View Slide

  15. ¿Y si creamos nuestros propios roles
    y capacidades? ¿Se podrá?

    View Slide

  16. ¿Y podemos crear nuestros propios roles
    y capacidades?
    Si, aún viene más código. Sigue whatsappeando.

    View Slide

  17. 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

    View Slide

  18. 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

    View Slide

  19. 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

    View Slide

  20. ¡Basta de código!

    View Slide

  21. ¡Basta de código!
    ¿No habrá un pluginsito por ahí?

    View Slide

  22. View Slide

  23. El plugin hace todo por ti

    View Slide

  24. Si no te acuerdas como se llama el plugin...

    View Slide

  25. wp_gracias();
    César Aquino Maximiliano
    Web: cesar.pe
    Email: [email protected]
    Twitter: @cesjam7
    Github: cesjam7
    #QuedateEnCasa

    View Slide