public function handle(ProviderProvider $providerProvider, AclContract $acl) { $selfClient = Client::where(['name' => 'Provider Hub'])->first(); if (empty($selfClient)) { $selfClient = new Client(); $selfClient->name = 'Provider Hub'; $selfClient->secret = 'foobar'; $selfClient->type = 'provider_hub'; $selfClient->save(); } \dump(['provider hub', 'client_id' => $selfClient->id, 'client_secret' => 'foobar']); \dump(['role setup', $acl->setupRoles()]); $provider = $providerProvider->find(['name' => 'Test Provider', 'slug' => 'test']); if (empty($provider)) { $provider = $providerProvider->create(['name' => 'Test Provider', 'slug' => 'test']); } \dump(['provider', 'id' => $provider->id, 'slug' => $provider->slug]); }
public function post(Request $request) { $providerHub = Client::where(['type' => 'provider_hub'])->first(); if (empty($providerHub)) { return $this->respond(['error' => 'not_set_up'], 400); } $registerRequest = $request->json()->all(); if (empty($registerRequest['token']) || !$this->validateToken($registerRequest['token']) || empty($registerRequest['base_url']) || empty($registerRequest['secret']) || empty($registerRequest['id'])) { return $this->respond(['error' => 'Bad Request'], 400); } $client = new Client(); $client->id = $registerRequest['id']; $client->name = 'Central Hub'; $client->type = 'central_hub'; $client->base_url = $registerRequest['base_url']; $client->secret = $registerRequest['secret']; if ($client->save()) { return $this->respond(['message' => 'Handshake Complete!', 'provider_hub_id' => $providerHub->id], 200); } return $this->respond(['error' => 'Error Saving Client'], 500); }
/** * Ensures the client or user is in the system * * @return boolean */ public function ensureObject() { if ($this->type === 'user') { $result = User::ensure($this->id); if ($result) { $context = app('context'); if ($context->getProviderId()) { $result = User::ensureRole($this->id, ['student'], $context->getProviderId()); } if ($this->isSuperAdmin) { $result = $result && User::ensureRole($this->id, ['super_administrator']); } } return $result; } elseif ($this->type === 'client') { return Client::ensure($this->id); } return false; }