/** * Display list of all groups. */ public function getGroupList() { $thisUser = Auth::user(); $groups = ProjectHandler::listGroups(); $projects = []; foreach ($groups as $group) { $canView = PermissionHandler::checkProject($thisUser, $group, Permissions::PROJECT_READ); $users = 0; foreach (Roles::$PROJECT_ROLE_NAMES as $role) { // List userts with $role in this group -- make [] when none $projectRole = Sentry::findGroupByName($group . ':' . $role); $users += sizeOf($projectRole['user_agent_ids']); } array_push($projects, ['name' => $group, 'canview' => $canView, 'users' => $users]); } $isAdmin = PermissionHandler::checkAdmin($thisUser, Permissions::ALLOW_ALL); return View::make('projects.list')->with('projects', $projects)->with('isAdmin', $isAdmin); }
/** * update units to new data structure */ public function postUpdatedb() { $searchComponent = new MediaSearchComponent(); // amount of units to index per iteration $batchsize = 50; $from = Input::get('next'); $unitCount = Entity::whereIn('tags', ['unit'])->count(); // reset index on start if ($from == 0) { $searchComponent->clear(); } // reduce last batch to remaining units if ($from + $batchsize > $unitCount) { $batchsize = $unitCount - $from; } // all units in this range $units = Entity::distinct('_id')->where('tags', ['unit'])->skip($from)->take($batchsize)->get(); // get list of existing projects $projects = ProjectHandler::listGroups(); // for each unit get the keys and check if the project exists $allKeys = []; for ($i = $from; $i < $from + $batchsize; $i++) { // get data of unit $unit = Entity::where('_id', $units[$i][0])->first(); switch ($unit['documentType']) { case 'annotatedmetadatadescription': $unit['project'] = 'soundandvision'; break; case 'biographynet-sentence': $unit['project'] = 'biographynet'; break; case 'drawing': $unit['project'] = 'rijksmuseum'; break; case 'enrichedvideo': $unit['project'] = 'soundandvision'; break; case 'enrichedvideov2': $unit['project'] = 'soundandvision'; break; case 'enrichedvideov3': $unit['project'] = 'soundandvision'; break; case 'fullvideo': $unit['project'] = 'soundandvision'; break; case 'metadatadescription': $unit['project'] = 'soundandvision'; break; case 'metadatadescription-event': $unit['project'] = 'soundandvision'; break; case 'painting': $unit['project'] = 'rijksmuseum'; break; case 'relex': $unit['project'] = 'ibmrelex'; break; case 'relex-sentence': $unit['project'] = 'ibmrelex'; break; case 'relex-structured-sentence': $unit['project'] = 'ibmrelex'; break; case 'termpairs-sentence': $unit['project'] = 'ibmdisdis'; break; } // add the project if it doesnt exist yet if (!in_array($unit['project'], $projects)) { ProjectHandler::createGroup($unit['project']); // add the project to the temporary list array_push($projects, $unit['project']); } // add the user to the project if it has no access yet if (!ProjectHandler::inGroup($unit['user_id'], $unit['project'])) { $user = UserAgent::find($unit['user_id']); ProjectHandler::grantUser($user, $unit['project'], Roles::PROJECT_MEMBER); } $id = explode('/', $unit['_id']); if (sizeof($id) == 5) { $entity = new Entity(); // copy properties $entity['documentType'] = $unit['documentType']; $entity['test'] = 'new'; $entity->_id = 'entity/' . $entity->documentType . '/' . $id[4]; $entity->save(); } } return ['log' => 'test', 'next' => $from + $batchsize, 'last' => $unitCount]; }