it-swarm.dev

Come limitare la registrazione degli utenti in base al gruppo di utenti

Mi chiedo se qualcuno mi può aiutare. Ho sviluppato un plug-in che mi consente di limitare il numero di utenti che si registrano sul sito, ma vorrei svilupparlo ulteriormente limitandolo a un determinato gruppo di utenti, qualcuno avrebbe idea di come ottengo questo?

Questo è il mio codice finora:

<?php
defined('_JEXEC') or die;

jimport('joomla.plugin.plugin');

class plguserlimit extends JPlugin {

function __construct(&$subject, $config = array()) {
    parent::__construct($subject, $config);
}

public function onUserBeforeSave($user, $isnew, $new) {
    if ($isnew) {
        $limit   = $this->params->get('limit-text');
        $db    = JFactory::getDbo();
        $query = "select id from #__users";
        $db->setQuery($query);
        $db->query();
        $num_rows = $db->getNumRows();
        if ($limit > $num_rows) {
            echo $erMsg = "Sorry but you have exceeded your allocated number of licenses.<BR><BR>Please press the back button on your browser to go back to the previous page.<BR><BR> If you wish to purchase more licences please contact customer support team ";
            die;
            JFactory::getApplication()->redirect(JURI::base(), $erMsg, 'error');
        }
    }
}
}


<extension type="plugin" version="3.0" group="user" method="upgrade">
<name>plg_user_register_limit</name> 
<creationDate>June 2014</creationDate> 
<license>GNU General Public License version 2 or later; see LICENSE.txt</license> 
<version>1.0.0</version> 
<description>
    <![CDATA[ 
        this plugin is used for limiting user registering
    ]]> 
    </description>
<files>
    <filename plugin="registerlimit">registerlimit.php</filename> 
    <filename>index.html</filename> 
    </files>
    <languages>
        <language tag="en-GB">en-GB.plg_user_regitesrlimit.ini</language> 
        <language tag="en-GB">en-GB.plg_user_regitesrlimit.sys.ini</language> 
        </languages>
        <config>
            <fields name="params">
                <fieldset name="basic">
                    <field name="limit-text" type="text" default="" label="Enter user Limit" description="Set limit" /> 
</fieldset>
</fields>
</config>
</extension>
3
user2513528

Per limitare la registrazione in base al gruppo di utenti, è necessario utilizzare la tabella #_user_usergroup_map per controllare il numero di utenti in un determinato gruppo.

SCELTO DA #_user_usergroup_map DOVE group_id = 'GROUP_ID';

Qui sostituisci il tuo valore group_id specifico.

3
Nick