<?php namespace App\Models; use Illuminate\Auth\Authenticatable; use Laravel\Lumen\Auth\Authorizable; use Illuminate\Database\Eloquent\Model; use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract; use Illuminate\Contracts\Auth\Access\Authorizable as AuthorizableContract; class AppAccess extends Model { protected $table = 'app_access'; /** * The attributes that are mass assignable. * * @var array */ protected $fillable = [ 'app_id', 'user_id', 'status_id' ]; /** * The attributes excluded from the model's JSON form. * * @var array */ protected $hidden = [ '', ]; static function createCode(User $user, App $app) { $characters = '0123456789'; $randstring = ''; for ($i = 0; $i < 20; $i++) { $randstring .= $characters[rand(0, strlen($characters)-1)]; } $code = $randstring; $appCode = new AppCode(); $appCode->user_id = $user->id; $appCode->app_id = $app->id; $appCode->code = $code; $appCode->saveOrFail(); return $appCode; } public function getUser() { return User::query()->where("id", "=", $this->user_id)->first(); } public function getApp() { return App::query()->where("id", "=", $this->app_id)->first(); } static public function getOrCreate($userId, $appId) { $access = AppAccess::query()->where("user_id", "=", $userId)->where("app_id", "=", $appId)->first(); if($access == null) { $access = new AppAccess(); $access->user_id = $userId; $access->app_id = $appId; $access->status = "created"; $access->saveOrFail(); } return $access; } }