Ajout creation utilisateur
This commit is contained in:
parent
dacf0a8aec
commit
0a21001a0a
|
@ -7,6 +7,8 @@ use App\Repository\UserRepository;
|
||||||
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
||||||
use Symfony\Component\Routing\Annotation\Route;
|
use Symfony\Component\Routing\Annotation\Route;
|
||||||
use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
|
use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
|
||||||
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
|
use Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface;
|
||||||
|
|
||||||
class UserController extends Controller
|
class UserController extends Controller
|
||||||
{
|
{
|
||||||
|
@ -81,4 +83,38 @@ class UserController extends Controller
|
||||||
]
|
]
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Route("/api/v1/users", name="api_v1_create_user", methods={"POST"})
|
||||||
|
* @IsGranted("ROLE_DEVELOPER")
|
||||||
|
*/
|
||||||
|
public function createUser(Request $request, UserPasswordEncoderInterface $passwordEncoder)
|
||||||
|
{
|
||||||
|
|
||||||
|
$content = $request->getContent();
|
||||||
|
$projectData = json_decode($content, true);
|
||||||
|
|
||||||
|
$newUser = new User();
|
||||||
|
|
||||||
|
if (!isset($projectData['username'])) {
|
||||||
|
return new ErrorResponse(0, "You must provide a username");
|
||||||
|
}
|
||||||
|
$newUser->setUsername($projectData['username']);
|
||||||
|
|
||||||
|
if (!isset($projectData['password'])) {
|
||||||
|
return new ErrorResponse(1, "You must provide a password");
|
||||||
|
}
|
||||||
|
$newUser->setPassword($passwordEncoder->encodePassword(
|
||||||
|
$newUser,
|
||||||
|
$projectData['password']
|
||||||
|
));
|
||||||
|
|
||||||
|
$manager = $this->getDoctrine()->getManager();
|
||||||
|
$manager->persist($newUser);
|
||||||
|
$manager->flush();
|
||||||
|
|
||||||
|
return new DataResponse([
|
||||||
|
'user' => $newUser->toArray(),
|
||||||
|
]);
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -219,4 +219,11 @@ class User implements UserInterface
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function toArray(): array {
|
||||||
|
return [
|
||||||
|
'id' => $this->getId(),
|
||||||
|
'username' => $this->getUsername(),
|
||||||
|
];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -42,3 +42,41 @@ Content-Type: application/json
|
||||||
|
|
||||||
GET {{baseURL}}/users
|
GET {{baseURL}}/users
|
||||||
Content-Type: application/json
|
Content-Type: application/json
|
||||||
|
|
||||||
|
###
|
||||||
|
|
||||||
|
// List projects
|
||||||
|
|
||||||
|
GET {{baseURL}}/projects
|
||||||
|
Content-Type: application/json
|
||||||
|
|
||||||
|
###
|
||||||
|
|
||||||
|
// Show project
|
||||||
|
|
||||||
|
GET {{baseURL}}/projects/17
|
||||||
|
Content-Type: application/json
|
||||||
|
|
||||||
|
###
|
||||||
|
|
||||||
|
// Create project
|
||||||
|
|
||||||
|
POST {{baseURL}}/projects
|
||||||
|
Content-Type: application/json
|
||||||
|
|
||||||
|
{
|
||||||
|
"name": "new-project",
|
||||||
|
"users": [18]
|
||||||
|
}
|
||||||
|
|
||||||
|
###
|
||||||
|
|
||||||
|
// Create users
|
||||||
|
|
||||||
|
POST {{baseURL}}/users
|
||||||
|
Content-Type: application/json
|
||||||
|
|
||||||
|
{
|
||||||
|
"username": "test12",
|
||||||
|
"password": "test12"
|
||||||
|
}
|
Loading…
Reference in New Issue