<?php
namespace App\Policies;
use App\Model\Contest;
use App\User;
use http\Env\Request;
use Illuminate\Auth\Access\HandlesAuthorization;
use Illuminate\Support\Facades\Cache;
use Mockery\Exception;
class ContestPolicy
{
use HandlesAuthorization;
public function __construct()
{
}
public function before($user, $ability)
{
}
public function enterContest(User $user, Contest $contest, $key)
{
if ($contest == null) {
return false;
}
if ($contest->type == 0) {
} else if ($contest->type == 1) {
$chache_index=$user->id.'_c'.$contest->id.'_key';
if($key==null){
if(Cache::has($chache_index)){
$key=Cache::get($chache_index);
}
}
if ($key == $contest->password) {
Cache::put($chache_index,$key,10);
} else {
return false;
}
} else {
$flag=false;
foreach ($contest->classes as $class) {
if($user->class_id==$class){
$flag=true;
}
}
if($flag||$contest->classes==null){
}else{
return false;
}
}
return true;
}
}