several enhancements (#1808)
* show all fields in timesheet api docs * fix action dropdown links #1806 * apply same validation rules for passwords and for api-tokens #1753 * added "duplicate team" action #1136
This commit is contained in:
@@ -83,6 +83,42 @@ final class TeamController extends AbstractController
|
||||
return $this->renderEditScreen(new Team(), $request);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Route(path="/{id}/duplicate", name="team_duplicate", methods={"GET", "POST"})
|
||||
* @Security("is_granted('edit', team) and is_granted('create_team')")
|
||||
*/
|
||||
public function duplicateTeam(Team $team, Request $request)
|
||||
{
|
||||
$newTeam = new Team();
|
||||
$newTeam->setName($team->getName() . ' [COPY]');
|
||||
$newTeam->setTeamLead($team->getTeamLead());
|
||||
|
||||
foreach ($team->getUsers() as $user) {
|
||||
$newTeam->addUser($user);
|
||||
}
|
||||
foreach ($team->getCustomers() as $customer) {
|
||||
$newTeam->addCustomer($customer);
|
||||
}
|
||||
foreach ($team->getProjects() as $project) {
|
||||
$newTeam->addProject($project);
|
||||
}
|
||||
|
||||
try {
|
||||
// make sure that the teamlead is always part of the team, otherwise permission checks
|
||||
// and filtering might not work as expected!
|
||||
$team->addUser($team->getTeamLead());
|
||||
|
||||
$this->repository->saveTeam($newTeam);
|
||||
$this->flashSuccess('action.update.success');
|
||||
|
||||
return $this->redirectToRoute('admin_team_edit', ['id' => $newTeam->getId()]);
|
||||
} catch (\Exception $ex) {
|
||||
$this->flashError('action.update.error', ['%reason%' => $ex->getMessage()]);
|
||||
}
|
||||
|
||||
return $this->redirectToRoute('admin_team');
|
||||
}
|
||||
|
||||
/**
|
||||
* @Route(path="/{id}/edit", name="admin_team_edit", methods={"GET", "POST"})
|
||||
* @Security("is_granted('edit', team)")
|
||||
|
||||
Reference in New Issue
Block a user