コード例 #1
0
 public function shareWithUser(Request $request, $list_id, $usr_id)
 {
     $availableRoles = [UsrListOwner::ROLE_USER, UsrListOwner::ROLE_EDITOR, UsrListOwner::ROLE_ADMIN];
     if (!$request->request->get('role')) {
         throw new BadRequestHttpException('Missing role parameter');
     } elseif (!in_array($request->request->get('role'), $availableRoles)) {
         throw new BadRequestHttpException('Role is invalid');
     }
     try {
         $repository = $this->getUsrListRepository();
         $user = $this->getAuthenticatedUser();
         $list = $repository->findUserListByUserAndId($user, $list_id);
         if ($list->getOwner($user)->getRole() < UsrListOwner::ROLE_EDITOR) {
             throw new ControllerException($this->app->trans('You are not authorized to do this'));
         }
         /** @var User $new_owner */
         $new_owner = $this->getUserRepository()->find($usr_id);
         if ($list->hasAccess($new_owner)) {
             if ($new_owner->getId() == $user->getId()) {
                 throw new ControllerException('You can not downgrade your Admin right');
             }
             $owner = $list->getOwner($new_owner);
         } else {
             $owner = new UsrListOwner();
             $owner->setList($list);
             $owner->setUser($new_owner);
             $list->addOwner($owner);
             $this->getEntityManager()->persist($owner);
         }
         $role = $request->request->get('role');
         $owner->setRole($role);
         $this->getEntityManager()->flush();
         $data = ['success' => true, 'message' => $this->app->trans('List shared to user')];
     } catch (ControllerException $e) {
         $data = ['success' => false, 'message' => $e->getMessage()];
     } catch (\Exception $e) {
         $data = ['success' => false, 'message' => $this->app->trans('Unable to share the list with the usr')];
     }
     return $this->app->json($data);
 }
コード例 #2
0
 private function insertUsrLists(EntityManager $em, \Pimple $DI)
 {
     $owner1 = new UsrListOwner();
     $owner1->setRole(UsrListOwner::ROLE_ADMIN);
     $owner1->setUser($DI['user']);
     $owner2 = new UsrListOwner();
     $owner2->setRole(UsrListOwner::ROLE_ADMIN);
     $owner2->setUser($DI['user_alt1']);
     $list1 = new UsrList();
     $list1->setName('new list');
     $list1->addOwner($owner1);
     $owner1->setList($list1);
     $entry1 = new UsrListEntry();
     $entry1->setUser($DI['user']);
     $entry1->setList($list1);
     $list1->addEntrie($entry1);
     $entry2 = new UsrListEntry();
     $entry2->setUser($DI['user_alt1']);
     $entry2->setList($list1);
     $list1->addEntrie($entry2);
     $list2 = new UsrList();
     $list2->setName('new list');
     $list2->addOwner($owner2);
     $owner2->setList($list2);
     $entry3 = new UsrListEntry();
     $entry3->setUser($DI['user_alt1']);
     $entry3->setList($list2);
     $list2->addEntrie($entry3);
     $entry4 = new UsrListEntry();
     $entry4->setUser($DI['user_alt2']);
     $entry4->setList($list2);
     $list2->addEntrie($entry4);
     $em->persist($owner1);
     $em->persist($owner2);
     $em->persist($list1);
     $em->persist($list2);
     $em->persist($entry1);
     $em->persist($entry2);
     $em->persist($entry3);
     $em->persist($entry4);
 }
 /**
  * {@inheritDoc}
  */
 public function getList()
 {
     $this->__initializer__ && $this->__initializer__->__invoke($this, 'getList', array());
     return parent::getList();
 }