/**
  * @Route("/insert", name="project_group_category_insert")
  */
 public function insertAction(Request $request)
 {
     $entity = new GroupCategory();
     $entity->setProject($this->getActiveProject());
     $action = new InsertAction($this->crudInfo, $entity, ProjectGroupCategoryForm::class);
     $action->slug($this->getSlug());
     return $action->run($this, $request);
 }
 public function remove(GroupCategory $item)
 {
     $this->transaction->requestTransaction();
     try {
         return $item->remove($this->conn);
     } catch (Exception $ex) {
         $this->transaction->requestRollback();
         throw $ex;
     }
 }
예제 #3
0
파일: Group.php 프로젝트: zyxist/cantiga
 /**
  * @param Connection $conn
  * @param int $projectId
  * @param int $userId
  * @return Membership
  */
 public static function fetchMembership(Connection $conn, MembershipRoleResolver $resolver, $slug, $userId)
 {
     $data = $conn->fetchAssoc('SELECT g.*, ' . 'm.`role` AS `membership_role`, m.`note` AS `membership_note`, ' . self::createEntityFieldList() . 'FROM `' . CoreTables::GROUP_TBL . '` g ' . self::createEntityJoin('g') . 'INNER JOIN `' . CoreTables::GROUP_MEMBER_TBL . '` m ON m.`groupId` = g.`id` ' . 'WHERE m.`userId` = :userId AND g.`slug` = :slug', [':userId' => $userId, ':slug' => $slug]);
     if (false === $data) {
         return false;
     }
     $group = self::fromArray($data);
     $group->project = Project::fetchActive($conn, $data['projectId']);
     if (false == $group->project) {
         return false;
     }
     if (!empty($data['categoryId'])) {
         $group->category = GroupCategory::fetchByProject($conn, $data['categoryId'], $group->project);
     }
     $group->entity = Entity::fromArray($data, 'entity');
     $role = $resolver->getRole('Group', $data['membership_role']);
     return new Membership($group, $role, $data['membership_note']);
 }