public function runAddGroup(TBGRequest $request) { try { $mode = $request->getParameter('mode'); if ($group_name = $request->getParameter('group_name')) { if ($mode == 'clone') { try { $old_group = TBGContext::factory()->TBGGroup($request->getParameter('group_id')); } catch (Exception $e) { } if (!$old_group instanceof TBGGroup) { throw new Exception(TBGContext::getI18n()->__("You cannot clone this group")); } } if (TBGGroup::doesGroupNameExist(trim($group_name))) { throw new Exception(TBGContext::getI18n()->__("Please enter a group name that doesn't already exist")); } $group = new TBGGroup(); $group->setName($group_name); $group->save(); if ($mode == 'clone') { if ($request->getParameter('clone_permissions')) { TBGPermissionsTable::getTable()->cloneGroupPermissions($old_group->getID(), $group->getID()); } $message = TBGContext::getI18n()->__('The group was cloned'); } else { $message = TBGContext::getI18n()->__('The group was added'); } return $this->renderJSON(array('failed' => false, 'message' => $message, 'content' => $this->getTemplateHTML('configuration/groupbox', array('group' => $group)))); } else { throw new Exception(TBGContext::getI18n()->__('Please enter a group name')); } } catch (Exception $e) { $this->getResponse()->setHttpStatus(400); return $this->renderJSON(array('failed' => true, 'error' => $e->getMessage())); } }