public function testLoad() { $this->assertEquals(2, Group::getCount()); $this->assertEquals(0, Role::getCount()); $this->assertEquals(0, Account::getCount()); $this->assertEquals(0, Contact::getCount()); $this->assertEquals(0, Opportunity::getCount()); $this->assertEquals(0, Meeting::getCount()); $this->assertEquals(0, Note::getCount()); $this->assertEquals(0, Task::getCount()); $this->assertEquals(1, User::getCount()); $this->assertEquals(0, ProductCatalog::getCount()); $this->assertEquals(0, ProductCategory::getCount()); $this->assertEquals(0, ProductTemplate::getCount()); $this->assertEquals(0, Product::getCount()); $messageLogger = new MessageLogger(); DemoDataUtil::unsetLoadedModules(); DemoDataUtil::load($messageLogger, 3); $this->assertEquals(8, Group::getCount()); $this->assertEquals(3, Role::getCount()); $this->assertEquals(3, Account::getCount()); $this->assertEquals(16, Contact::getCount()); $this->assertEquals(6, Opportunity::getCount()); $this->assertEquals(18, Meeting::getCount()); $this->assertEquals(12, Note::getCount()); $this->assertEquals(9, Task::getCount()); $this->assertEquals(10, User::getCount()); $this->assertEquals(1, ProductCatalog::getCount()); $this->assertEquals(6, ProductCategory::getCount()); $this->assertEquals(32, ProductTemplate::getCount()); $this->assertEquals(59, Product::getCount()); }
protected function resolveUserCountForItem(Item $item) { if ($item->name == Group::EVERYONE_GROUP_NAME) { return User::getCount(); } return $item->{$this->getModelRelationNameForUserCount()}->count(); }
public function testSimpleUserImportWhereAllRowsSucceed() { Yii::app()->user->userModel = User::getByUsername('super'); $users = User::getAll(); $this->assertEquals(1, count($users)); $import = new Import(); $serializedData['importRulesType'] = 'User'; $serializedData['firstRowIsHeaderRow'] = true; $import->serializedData = serialize($serializedData); $this->assertTrue($import->save()); ImportTestHelper::createTempTableByFileNameAndTableName('importAnalyzerTest.csv', $import->getTempTableName(), true, Yii::getPathOfAlias('application.modules.users.tests.unit.files')); $this->assertEquals(11, ImportDatabaseUtil::getCount($import->getTempTableName())); // includes header rows. $defaultLanguage = Yii::app()->language; $localeIds = ZurmoLocale::getSelectableLocaleIds(); $defaultLocale = $localeIds[0]; $timezoneIdentifiers = DateTimeZone::listIdentifiers(); $defaultTimeZone = $timezoneIdentifiers[0]; $defaultCurrency = Yii::app()->currencyHelper->getActiveCurrencyForCurrentUser(); $defaultCurrencyId = $defaultCurrency->id; $mappingData = array('column_0' => array('attributeIndexOrDerivedType' => 'username', 'type' => 'importColumn', 'mappingRulesData' => array()), 'column_1' => array('attributeIndexOrDerivedType' => 'Password', 'type' => 'importColumn', 'mappingRulesData' => array('PasswordDefaultValueModelAttributeMappingRuleForm' => array('defaultValue' => null))), 'column_2' => array('attributeIndexOrDerivedType' => 'UserStatus', 'type' => 'importColumn', 'mappingRulesData' => array('UserStatusDefaultValueMappingRuleForm' => array('defaultValue' => UserStatusUtil::ACTIVE))), 'column_3' => ImportMappingUtil::makeStringColumnMappingData('firstName'), 'column_4' => ImportMappingUtil::makeStringColumnMappingData('lastName'), 'column_5' => array('attributeIndexOrDerivedType' => 'role', 'type' => 'importColumn', 'mappingRulesData' => array('DefaultModelNameIdMappingRuleForm' => array('defaultModelId' => null), 'RelatedModelValueTypeMappingRuleForm' => array('type' => RelatedModelValueTypeMappingRuleForm::ZURMO_MODEL_ID))), 'column_6' => array('attributeIndexOrDerivedType' => 'language', 'type' => 'importColumn', 'mappingRulesData' => array('DefaultValueModelAttributeMappingRuleForm' => array('defaultValue' => $defaultLanguage))), 'column_7' => array('attributeIndexOrDerivedType' => 'locale', 'type' => 'importColumn', 'mappingRulesData' => array('DefaultValueModelAttributeMappingRuleForm' => array('defaultValue' => $defaultLocale))), 'column_8' => array('attributeIndexOrDerivedType' => 'timeZone', 'type' => 'importColumn', 'mappingRulesData' => array('DefaultValueModelAttributeMappingRuleForm' => array('defaultValue' => $defaultTimeZone))), 'column_9' => array('attributeIndexOrDerivedType' => 'currency', 'type' => 'importColumn', 'mappingRulesData' => array('DefaultValueModelAttributeMappingRuleForm' => array('defaultValue' => $defaultCurrencyId)))); $importRules = ImportRulesUtil::makeImportRulesByType('Users'); $page = 0; $config = array('pagination' => array('pageSize' => 50)); //This way all rows are processed. $dataProvider = new ImportDataProvider($import->getTempTableName(), true, $config); $dataProvider->getPagination()->setCurrentPage($page); $importResultsUtil = new ImportResultsUtil($import); $messageLogger = new ImportMessageLogger(); ImportUtil::importByDataProvider($dataProvider, $importRules, $mappingData, $importResultsUtil, new ExplicitReadWriteModelPermissions(), $messageLogger); $importResultsUtil->processStatusAndMessagesForEachRow(); //Confirm that 10 models where created. $this->assertEquals(11, User::getCount()); $activeUser = User::getByUsername('myusername7'); $userStatus = UserStatusUtil::makeByUser($activeUser); $this->assertTrue($userStatus->isActive()); $this->assertEquals($defaultLanguage, $activeUser->language); $this->assertEquals($defaultLocale, $activeUser->locale); $this->assertEquals($defaultTimeZone, $activeUser->timeZone); $this->assertEquals($defaultCurrency, $activeUser->currency); $inactiveUser = User::getByUsername('myusername8'); $userStatus = UserStatusUtil::makeByUser($inactiveUser); $this->assertEquals($defaultLanguage, $inactiveUser->language); $this->assertEquals($defaultLocale, $inactiveUser->locale); $this->assertEquals($defaultTimeZone, $inactiveUser->timeZone); $this->assertEquals($defaultCurrency, $inactiveUser->currency); $this->assertFalse($userStatus->isActive()); //Confirm 10 rows were processed as 'created'. $this->assertEquals(10, ImportDatabaseUtil::getCount($import->getTempTableName(), "status = " . ImportRowDataResultsUtil::CREATED)); //Confirm that 0 rows were processed as 'updated'. $this->assertEquals(0, ImportDatabaseUtil::getCount($import->getTempTableName(), "status = " . ImportRowDataResultsUtil::UPDATED)); //Confirm 2 rows were processed as 'errors'. $this->assertEquals(0, ImportDatabaseUtil::getCount($import->getTempTableName(), "status = " . ImportRowDataResultsUtil::ERROR)); $beansWithErrors = ImportDatabaseUtil::getSubset($import->getTempTableName(), "status = " . ImportRowDataResultsUtil::ERROR); $this->assertEquals(0, count($beansWithErrors)); }
* * @method static User[] fetchAll(array $cond = null, array $sort = null, $count = null, $offset = null, $hint = NULL) * @method static User|null fetchOne(array $cond = null, array $sort = null) * @method static User fetchObject(array $cond = null, array $sort = null) */ class User extends Mongostar_Model { } $newUser = User::fetchObject(array('id' => null)); echo $newUser->name . "<br>"; die("lsjdlksj"); if (rand(0, 1)) { // User::remove(); } $user = User::fetchOne(array('id' => '54de8e1e9cd81ebf330041bc')); echo $user->name . "<br>"; $user->name = "User_name - " . rand(1000, 9999); $user->save(); $user = User::fetchOne(array('id' => '54de8e1e9cd81ebf330041bc')); echo $user->name . "<br>"; die; $user->name = "Name: " . rand(1000, 9999); $user->save(); echo "last name: " . $user->name . "<br/>"; $user->name = "Name-edited"; $user->save(); foreach (User::fetchAll() as $user) { echo $user->id . ' - ' . $user->name . "<br>"; } echo "count: " . User::getCount() . "<br>";
public static function getRootUserCount() { $searchAttributeData['clauses'] = array(1 => array('attributeName' => 'isRootUser', 'operatorType' => 'equals', 'value' => true)); $searchAttributeData['structure'] = '1'; $joinTablesAdapter = new RedBeanModelJoinTablesQueryAdapter('User'); $where = RedBeanModelDataProvider::makeWhere('User', $searchAttributeData, $joinTablesAdapter); return User::getCount($joinTablesAdapter, $where, null); }
function displayBody() { parent::displayBody(); $translator = new Translator(); $user = new User(); $page = $_GET['page']; $offset = intval($page) * ITEMS_IN_PAGE; if (isset($_GET['search'])) { unset($_GET['search']); unset($_GET['page']); $search = $_GET; } else { $search = null; } $cnt = $user->getCount($search); if (sizeof($_GET) > 0) { foreach ($_GET as $key => $val) { $values[$key] = htmlspecialchars($val, ENT_QUOTES); } foreach ($user->roles as $key => $val) { if (($_GET['role_id'] & $val) > 0) { $valname = 'role' . $val; ${$valname} = 'checked'; } } if ($_GET['role_id'] == 0) { $role0 = 'checked'; $values['role_id'] = 0; } } if ($cnt > ITEMS_IN_PAGE) { $pagination = $this->addPaginator($cnt, $page); } echo <<<EOF <h2 class="page-header">{$translator->Users_header} <span class="badge">{$cnt}</span></h2> <div class="row"> \t<div class="col-md-1"> \t<button class="btn btn-sm btn-default" data-toggle="collapse" data-target="#filter"> \t <span class="glyphicon glyphicon-filter"></span> {$translator->Filter}</button> \t</div> </div> <div class="row"> <div class="col-md-5 collapse" id="filter"> \t <form role="form" class="form-horizontal" action="?" method="get"> \t\t<div class="form-group"> \t\t <div class="form-group"> \t\t <label for="name" class="control-label col-sm-3">{$translator->Name}:</label> \t\t <div class="col-sm-8"> \t\t <input type="text" class="form-control" id="name" name="name" value="{$values[name]}"> \t\t </div> \t\t </div> \t\t <div class="form-group"> \t\t <label for="email" class="control-label col-sm-3">{$translator->Email}:</label> \t\t <div class="col-sm-8"> \t\t <input type="text" class="form-control" id="email" name="email" value="{$values[email]}"> \t\t </div> \t\t </div> \t\t <div class="form-group"> \t\t <label for="company" class="control-label col-sm-3">{$translator->Company}:</label> \t\t <div class="col-sm-8"> \t\t <input type="text" class="form-control" id="company" name="company" value="{$values[company]}"> \t\t </div> \t\t </div> \t\t <div class="form-group"> \t\t <label for="phone" class="control-label col-sm-3">{$translator->Phone}:</label> \t\t <div class="col-sm-8"> \t\t <input type="text" class="form-control" id="phone" name="phone" value="{$values[phone]}"> \t\t </div> \t\t </div> \t\t <div class="form-group"> \t\t <label for="country" class="control-label col-sm-3">{$translator->Country}:</label> \t\t <div class="col-sm-8"> \t\t <input type="text" class="form-control" id="country" name="country" value="{$values[country]}"> \t\t </div> \t\t </div> \t\t <div class="form-group"> \t\t <label for="city" class="control-label col-sm-3">{$translator->City}:</label> \t\t <div class="col-sm-8"> \t\t <input type="text" class="form-control" id="city" name="city" value="{$values[city]}"> \t\t </div> \t\t </div> \t\t <div class="col-sm-offset-3"> EOF; foreach ($user->roles as $key => $val) { $valname = 'role' . $val; echo "\t\t <input type=\"checkbox\" class=\"role_id\" id=\"{$valname}\" value=\"{$val}\" " . ${$valname} . ">\n\t\t <label for=\"{$valname}\">" . User::RolesAsString($val) . "</label>" . NL; } echo <<<EOF \t\t <input class="sr-only" id="role_id" name="role_id" value="{$values[role_id]}"> \t\t <input class="sr-only" name="search" value="1"> \t\t </div> \t\t <div class="form-group"> \t\t <div class="col-sm-offset-3 col-md-10"> \t\t <button type="submit" class="btn btn-sm btn-default">{$translator->Apply}</button> \t\t </div> \t\t </div> \t\t</div> \t </form> \t</div> </div> {$pagination} <div class="table-responsive"> <table class="table table-striped"> <thead> <tr> <th>#</th> <th>{$translator->Name}</th> <th>{$translator->Roles}</th> <th>{$translator->Email}</th> <th>{$translator->Phone}</th> <th>{$translator->Company}</th> <th>{$translator->Place}</th> </tr> </thead> <tbody> EOF; $enum = $user->enumerate($search, $offset, ITEMS_IN_PAGE, 'users.last_name,users.first_name'); if (is_object($enum)) { $i = 1 + $offset; foreach ($enum as $key => $data) { if ($data['active'] == 'f') { $active = " class=\"not-active\""; } else { $active = ""; } echo " <tr>\n <td>{$i}</td>\n <td" . $active . ">{$data[name]}</td>\n <td>" . User::RolesAsString($data['role_id']) . "</td>\n <td>{$data[email]}</td>\n <td>{$data[phone]}</td>\n <td>{$data[company]} <small>{$data[position]}</small></td>\n <td>{$data[country]} <small>{$data[city]}</small></td>\n <td><a href=\"/admin_user/edit/{$data[id]}\" title=\"{$translator->edit}\"><span class=\"glyphicon glyphicon-user\"></span></a></td>\n <td><a href=\"/admin_user/delete/{$data[id]}\" title=\"{$translator->del}\" onClick=\"return confirm('{$translator->AreYouSure}');\"><span class=\"glyphicon glyphicon-trash\"></span></a></td>\n </tr>\n"; $i++; } } echo <<<EOF \t </table> \t</div> EOF; }
/** * @depends testCreateUserWithRelatedUser */ public function testSavingExistingUserDoesntCreateRelatedBlankUsers() { $userCount = User::getCount(); $dick = User::getByUsername('dick'); $this->assertTrue($dick->save()); $this->assertEquals($userCount, User::getCount()); }
<?php class User { static $count = 0; public function getCount() { return self::$count; } } $maulik = new User(); // echo 'test a : '. $maulik->count; brings notice undefined property. echo $maulik->getCount(); echo User::$count;
throw new RuntimeException('Clone is not allowed against ' . get_class($this)); } } /** * Client */ session_start(); $context = isset($_SESSION['context']) ? $_SESSION['context'] : null; if (is_null($context)) { $context = new User('ほげ'); } $mode = isset($_GET['mode']) ? $_GET['mode'] : ''; switch ($mode) { case 'state': echo '<p style="color: #aa0000">状態を遷移します</p>'; $context->switchState(); break; case 'inc': echo '<p style="color: #008800">カウントアップします</p>'; $context->incrementCount(); break; case 'reset': echo '<p style="color: #008800">カウントをリセットします</p>'; $context->resetCount(); break; } $_SESSION['context'] = $context; echo 'ようこそ、' . $context->getUserName() . 'さん<br>'; echo '現在、ログインして' . ($context->isAuthenticated() ? 'います' : 'いません') . '<br>'; echo '現在のカウント:' . $context->getCount() . '<br>'; echo $context->getMenu() . '<br>';
/** * Return number of users in group except system users * @return int */ public function getUserCountExceptSystemUsers() { $searchAttributeData['clauses'] = array(1 => array('attributeName' => 'isSystemUser', 'operatorType' => 'equals', 'value' => 0), 2 => array('attributeName' => 'isSystemUser', 'operatorType' => 'isNull', 'value' => null)); if ($this->name == Group::EVERYONE_GROUP_NAME) { $searchAttributeData['structure'] = '1 or 2'; } else { $searchAttributeData['clauses'][3] = array('attributeName' => 'groups', 'relatedAttributeName' => 'id', 'operatorType' => 'equals', 'value' => $this->id); $searchAttributeData['structure'] = '(1 or 2) and 3'; } $joinTablesAdapter = new RedBeanModelJoinTablesQueryAdapter('User'); $where = RedBeanModelDataProvider::makeWhere('User', $searchAttributeData, $joinTablesAdapter); return User::getCount($joinTablesAdapter, $where); }
/** * @depends testSuperUserAllSimpleControllerActions */ public function testSuperUserCreateMission() { $super = $this->logoutCurrentUserLoginNewUserAndGetByUsername('super'); $steven = User::getByUsername('steven'); $sally = User::getByUsername('sally'); $mary = User::getByUsername('mary'); $missions = Mission::getAll(); $this->assertEquals(0, count($missions)); $this->setPostArray(array('Mission' => array('description' => 'TestDescription', 'reward' => 'Reward'))); $this->runControllerWithRedirectExceptionAndGetContent('missions/default/create'); //Confirm mission saved. $missions = Mission::getAll(); $this->assertEquals(1, count($missions)); $this->assertEquals('TestDescription', $missions[0]->description); $this->assertEquals(Mission::STATUS_AVAILABLE, $missions[0]->status); //Confirm everyone has read/write $everyoneGroup = Group::getByName(Group::EVERYONE_GROUP_NAME); $explicitReadWriteModelPermissions = ExplicitReadWriteModelPermissionsUtil::makeBySecurableItem($missions[0]); $readWritePermitables = $explicitReadWriteModelPermissions->getReadWritePermitables(); $this->assertEquals(1, count($readWritePermitables)); $this->assertTrue(isset($readWritePermitables[$everyoneGroup->getClassId('Permitable')])); //Confirm email was sent $this->assertEquals(2, Yii::app()->emailHelper->getQueuedCount()); $this->assertEquals(0, Yii::app()->emailHelper->getSentCount()); $emailMessages = EmailMessage::getAll(); //Dont send message to super neither to steven (he has turned off) $recipents = array(); $recipents[] = strval($emailMessages[0]->recipients[0]); $recipents[] = strval($emailMessages[1]->recipients[0]); $this->assertEquals(1, count($emailMessages[0]->recipients)); $this->assertEquals(1, count($emailMessages[1]->recipients)); $this->assertNotContains(strval($super->primaryEmail), $recipents); $this->assertNotContains(strval($steven->primaryEmail), $recipents); $this->assertContains(strval($mary->primaryEmail), $recipents); $this->assertContains(strval($sally->primaryEmail), $recipents); $this->assertEquals(4, User::getCount()); }