diff --git a/Web/app/Http/Controllers/HomeController.php b/Web/app/Http/Controllers/HomeController.php index a434dda04f40d90e115b3bad36bd0c87d8d917c8..8003d45d4511ce9d9a626ec8c4dd49215bea31de 100644 --- a/Web/app/Http/Controllers/HomeController.php +++ b/Web/app/Http/Controllers/HomeController.php @@ -2,8 +2,10 @@ namespace App\Http\Controllers; +use App\Models\Organizations; +use App\Models\Server; use App\Models\Sensors; -use Illuminate\Http\Request; +use Illuminate\Support\Facades\Auth; class HomeController extends Controller { @@ -12,11 +14,9 @@ class HomeController extends Controller * * @return void */ - public $model; - public function __construct(Sensors $sensor) + public function __construct() { $this->middleware('auth'); - $this->model = $sensor; } /** @@ -26,6 +26,14 @@ class HomeController extends Controller */ public function index() { - return view("home",['sensor' => Sensors::all()]); + $organization = Auth::user()->organizations()->get(); + foreach($organization as $org){ + $servers = $org->servers()->get(); + foreach($servers as $server){ + $server->lastState = $server->getLastState(); + } + $org->servers = $servers; + } + return view("home",['organization' => $organization]); } } diff --git a/Web/app/Http/Controllers/OrganizationController.php b/Web/app/Http/Controllers/OrganizationController.php index dd3d226f3628d9fa66a520e02e41ac89ef88f62c..8fe0644819f70305c0ad774cfa7ebf6082c985d4 100644 --- a/Web/app/Http/Controllers/OrganizationController.php +++ b/Web/app/Http/Controllers/OrganizationController.php @@ -23,7 +23,7 @@ class OrganizationController extends Controller if($org==null)abort(404); $servers = $org->servers()->get(); foreach($servers as $server){ - $server->sensors($server->id); + $server->sensors(); } return view("org/detail",['organization' => $org , 'servers' => $servers]); } diff --git a/Web/app/Models/Organizations.php b/Web/app/Models/Organizations.php index ab5392557ecf3ca23568de2eb0f005f7214c10ba..0f8a324d7ea545107bd2b8210686dd98cd201f3e 100644 --- a/Web/app/Models/Organizations.php +++ b/Web/app/Models/Organizations.php @@ -17,4 +17,5 @@ class Organizations extends Model { return $this->hasMany('App\Models\Server', 'organization_id'); } + } diff --git a/Web/app/Models/Sensors.php b/Web/app/Models/Sensors.php index bdee2137cc7a94bd709dafc43607e7ba5dd0d912..ce635c4be5eac3dac9480b0f4a20f10e461a690b 100644 --- a/Web/app/Models/Sensors.php +++ b/Web/app/Models/Sensors.php @@ -13,6 +13,6 @@ class Sensors extends Moloquent public function server($id) { - $server = Server::find($id); + $this->server = Server::find($id); } } \ No newline at end of file diff --git a/Web/app/Models/Server.php b/Web/app/Models/Server.php index 24bd5c96fb5bd870b2d8269151ab25cb5f2c173f..bc2f939edf2fe96dfe06ea2fc96fa4a3d0e360ca 100644 --- a/Web/app/Models/Server.php +++ b/Web/app/Models/Server.php @@ -8,12 +8,26 @@ class Server extends Model { protected $fillable = ['name']; public $sensors; + protected $primaryKey = 'id'; + public $lastState; public function organization() { return $this->belongsTo('App\Models\Organizations'); } - public function sensors($id) + + public function sensors() + { + $sensors = Sensors::where("server_id","".$this->getKey())->get(); + foreach($sensors as $sensor){ + $sensor["content"] = json_decode($sensor["content"]); + } + return $this->sensors = $sensors; + } + public function getLastState() { - $this->sensors = json_encode(Sensors::where("server_id","".$id)->get()); + $sensor = Sensors::where("server_id","".$this->getKey())->orderBy('created_at', 'desc')->first(); + $sensor["content"] = json_decode($sensor["content"]); + + return $this->lastState = $sensor; } } diff --git a/Web/resources/views/home.blade.php b/Web/resources/views/home.blade.php index e545ba75b066368fba29ac7f9448dedcacfa1fb3..f97e288e5ae7d798b4824f496168e802d8d3651f 100644 --- a/Web/resources/views/home.blade.php +++ b/Web/resources/views/home.blade.php @@ -16,7 +16,23 @@ Look at your organizations : <a href="org"> Organizations </a> + @foreach($organization as $org) + <p> Organization : {{ $org->name }}</p> + @foreach ($org->servers as $server) + <p> Server : {{ $server->name }}</p> + @if ($server->lastState["content"] != null) + <p> Last updated state:</p> + + @if($server->lastState["content"]->{"Reboot"}) + <p> ok</p> + @else + <p>not ok</p> + @endif + + @endif + @endforeach + @endforeach </div> </div> </div> diff --git a/Web/resources/views/org/detail.blade.php b/Web/resources/views/org/detail.blade.php index 81f503be3d3a9e94e18c83e44d9d1c7fec1676dd..a54421ff66cef2bd7df65293a9b73c59e709a362 100644 --- a/Web/resources/views/org/detail.blade.php +++ b/Web/resources/views/org/detail.blade.php @@ -8,7 +8,20 @@ <div class="panel-heading">Organization : {{ $organization->name }}</div> @foreach ($servers as $server) <p> Server : {{ $server->name }}</p> - <p> Sensors : {{ $server->sensors }}</p> + @if ($server->sensors !=null) + <p> Sensors :}</p> + @foreach($server->sensors as $sensor){ + <p> {{$sensor["content"]->{"TCP"} }}</p> + <p> {{$sensor["content"]->{"UDP"} }}</p> + <p> {{$sensor["content"]->{"Network"} }}</p> + <p> {{$sensor["content"]->{"Inodes"} }}</p> + @if($sensor["content"]->{"Reboot"}) + <p> ok</p> + @else + <p>not ok</p> + @endif + @endforeach + @endif @endforeach </div> </div>