/** * @param string $userId * @return array */ public function getPublicSettings($userId) { $settings = parent::getPublicSettings($userId); $settings['currentUserRole'] = $this->users[$userId]->role; $settings['hasSendReceive'] = $this->hasSendReceive(); return array_merge($settings, LexBaseViewDto::encode($this->id->asString(), $userId)); }
public function testEncode_Project_DtoCorrect() { $environ = new LexiconMongoTestEnvironment(); $environ->clean(); $userId = $environ->createUser('User', 'Name', '*****@*****.**'); $user = new UserProfileModel($userId); $user->role = SystemRoles::USER; $project = $environ->createProject(SF_TESTPROJECT, SF_TESTPROJECTCODE); $projectId = $project->id->asString(); $project->addUser($userId, ProjectRoles::CONTRIBUTOR); $user->addProject($projectId); $user->interfaceLanguageCode = 'th'; $user->write(); $project->write(); $dto = LexBaseViewDto::encode($projectId, $userId); // test for a few default values $this->assertEquals('en', $dto['config']['inputSystems']['en']['tag']); $this->assertTrue($dto['config']['tasks']['dbe']['visible']); $this->assertEquals('fields', $dto['config']['entry']['type'], 'dto config is not valid'); $this->assertEquals('Word', $dto['config']['entry']['fields']['lexeme']['label']); $this->assertEquals('Word', $dto['config']['entry']['fields']['lexeme']['label']); $this->assertEquals('Part of Speech', $dto['config']['entry']['fields']['senses']['fields']['partOfSpeech']['label']); $this->assertTrue($dto['config']['roleViews']['contributor']['fields']['lexeme']['show']); $this->assertTrue($dto['config']['roleViews']['contributor']['showTasks']['dbe']); // todo re-enable this after userLanguageCode feature is mature //$this->assertEquals('th', $dto['interfaceConfig']['userLanguageCode']); $this->assertEquals('English', $dto['interfaceConfig']['selectLanguages']['options']['en']); }
public function testUpdateConfig_ConfigPersists() { $e = new LexiconMongoTestEnvironment(); $e->clean(); $userId = $e->createUser("User", "Name", "*****@*****.**"); $user = new UserModel($userId); $user->role = SystemRoles::USER; $project = $e->createProject(SF_TESTPROJECT, SF_TESTPROJECTCODE); $projectId = $project->id->asString(); $project->addUser($userId, ProjectRoles::CONTRIBUTOR); $user->addProject($projectId); $user->write(); $project->write(); $config = json_decode(json_encode(LexBaseViewDto::encode($projectId, $userId)['config']), true); $this->assertTrue($config['tasks']['addMeanings']['visible']); $this->assertEqual($config['entry']['fields']['lexeme']['inputSystems'][0], 'th'); $config['tasks']['addMeanings']['visible'] = false; $config['entry']['fields']['lexeme']['inputSystems'] = array('my', 'th'); LexProjectCommands::updateConfig($projectId, $config); $project2 = new LexiconProjectModel($projectId); // test for a few default values $this->assertEqual($project2->inputSystems['en']->tag, 'en'); $this->assertTrue($project2->config->tasks['dbe']->visible); $this->assertEqual($project2->config->entry->fields['lexeme']->label, 'Word'); // test for updated values $this->assertFalse($project2->config->tasks['addMeanings']->visible); $this->assertEqual($project2->config->entry->fields['lexeme']->inputSystems[0], 'my'); $this->assertEqual($project2->config->entry->fields['lexeme']->inputSystems[1], 'th'); }
public function lex_baseViewDto() { return LexBaseViewDto::encode($this->projectId, $this->userId); }