/** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { session_start(); if (!isset($_SESSION['AUTH']) || $_SESSION['AUTH'] == false) { \App::abort(500, 'User not authenticated'); } $post = file_get_contents('php://input'); $data = json_decode($post, true); if ($data['name'] != null && $data['password'] != null && $data['instanceId'] != null) { //check if user with same name exists in that instance if (instanceUser::where('name', $data['name'])->where('instanceId', $data['instanceId'])->exists()) { \App::abort(500, 'Username already exists'); } //create a new instance user, expects name and instanceId $i = new instanceUser(); $i->id = \Uuid::generate(4); $i->name = $data['name']; $i->instanceId = $data['instanceId']; try { $inst = Instance::find($i->instanceId); //emit request to make db $redis = \Redis::connection(); // Using the Redis extension provided client $redis->publish('demeter', json_encode(array('command' => 'createInstanceUser', 'vm' => $inst->vmId, 'instanceId' => $inst->id, 'instanceName' => $inst->name, 'username' => $i->name, 'password' => $data['password'], 'netId' => $_SESSION['AUTH_USER']))); if ($i->save()) { echo "success"; } else { \App::abort(500, 'User could not be created, please contact an Administrator'); } } catch (Exception $e) { \App::abort(500, 'User could not be created, please contact an Administrator'); } } else { \App::abort(500, 'User could not be created, please contact an Administrator'); } }