Plugin creation – how to add user rights?

Here how register a role specifically for a plugin and add plugin specific capabilities to selected core roles

function my_plugin_install() {
   // add a new role for plugin with some capabilities
   add_role('my_plugin_role', 'My Plugin Role', array(
     'manage_my_plugin' => true, // plugin specific capability
     'read' => true // core capability
   ));
   // add plugin capabilities for some standard roles
   $roles = array('administrator', 'editor', 'author');
   $roles_obj = new WP_Roles();
   foreach ($roles as $role_name) {
      $roles_obj->add_cap($role_name, 'manage_my_plugin' ); 
   }
}


function my_plugin_unistall() {
    remove_role( 'my_plugin_role' );
    $roles = array('administrator', 'editor', 'author');
    $roles_obj = new WP_Roles();
    foreach ($roles as $role_name) {
      $roles_obj->remove_cap($role_name, 'manage_my_plugin' ); 
    }
}

In the plugin file put:

register_activation_hook(__FILE__, 'my_plugin_install' );
register_uninstall_hook(__FILE__, 'my_plugin_unistall');

To check in the current logged user has your plugin capabilities use :

if ( current_user_can('manage_my_plugin') ) {
  // do something
}

Docs: