I found the following problem in revo 2.2.0-pl2
I created a user group named "Members"
through a plug-in OnUserSave control if the new user is a member of that user group
<?php
if ($user->isMember('Members')) {
print("Yes");
}else{
print("No");
}
Trying to create a new user associated with the user group "Members" in error log always returns the following message:
[2012-01-20 07:47:27] (ERROR @ /catalogo/connectors/security/user.php) [OnUserSave]No
----------------------------------
canale irc Italiano #modx server: tophost.azzurra.org
I've had similar problems. I think it's because the user or the group membership is not in the cache yet.
Here are a couple of things to try, but they may not work:
Clearing the cache:
$cm = $modx->getCacheManager();
$cm->refresh();
Getting the user object:
$u = $modx->getObject('modUser', $id);
if ($u->isMember('Members')) {
}
---------------------------------------------------------------------------------------------------------------
PLEASE, PLEASE specify the version of MODX you are using . . . PLEASE!
MODx info for everyone:
http://bobsguides.com/MODx.html
Hi BobRay
thanks for reply, but don't work
with
$u = $modx->getObject('modUser', $id);
if ($u->isMember('Members')) {
When i save the user don't redirect to the user list and don't save membership..
if ($user->isMember('Members')) {
work correctly on version 2.1.3-pl
----------------------------------
canale irc Italiano #modx server: tophost.azzurra.org
Are either the user, the user group, or the connection between them newly created when the code runs?
---------------------------------------------------------------------------------------------------------------
PLEASE, PLEASE specify the version of MODX you are using . . . PLEASE!
MODx info for everyone:
http://bobsguides.com/MODx.html
The code runs when I save the new user assigned to the user group "Members". OnUserSave
I have already created the user group "Members"
----------------------------------
canale irc Italiano #modx server: tophost.azzurra.org
<?php
$modx->setDebug(E_ALL & ~E_NOTICE); // sets error_reporting to everything except NOTICE remarks
$modx->setLogLevel(modX::LOG_LEVEL_DEBUG);
$modx->log(modX::LOG_LEVEL_DEBUG, print_r($user->getUserGroupNames(),true));
ErrorLog:
[2012-01-24 12:08:59] (DEBUG @ /modx2.2/connectors/security/user.php) Array
(
)
----------------------------------
canale irc Italiano #modx server: tophost.azzurra.org
I think getObject() is failing because the user is new.
Hi Bob
in previous version, revo 2.1.3 work fine!
So, is this a bug?
----------------------------------
canale irc Italiano #modx server: tophost.azzurra.org
This may sound strange
$user->get('id'); // ok get id
$user->get('username'); //ok get username
so, has already been instantiated...
$user->getUserGroupNames() //fail
consequently also
$user->isMeber('Members'); //fail
----------------------------------
canale irc Italiano #modx server: tophost.azzurra.org