예제 #1
0
 /**
  * Verifica el estado Premium del usuario y su tiempo. 
  */
 public function checkStatePremium($request)
 {
     $description = "<p class='caption'>Lamentamos informarte que el tiempo de cuenta premium para disfrutar sin limites en bandicot se ha terminado. Queremos agradecerte por usar nuestra plataforma y pasar tu tiempo con nosotros.</p>" . "<h2 class='text-center' style='margin-top: 45px;margin-bottom: 30px;'>¿Quieres continuar sin limitaciones con una cuenta premium?</h2>" . "<div class='text-center'><img style='width: 23%;' src='" . url("assets/images/logo-premium.png") . "'/><br/><br/><a href='" . url("premium") . "' class='btn btn-primary'><span class='glyphicon glyphicon-arrow-up'></span> ¡Actualizar a cuenta premium!</a></div>";
     if (Auth::user()->role == User::ROLE_SUSCRIPTOR_PREMIUM) {
         $time = DateUtil::difSec(DateUtil::getCurrentTime(), Auth::user()->premium_to);
         if ($time <= 0) {
             Auth::user()->role = User::ROLE_SUSCRIPTOR;
             Auth::user()->save();
             $request->session()->put(UI::modalMessage("<span class='glyphicon glyphicon-time'></span> ¡Tu tiempo de cuenta premium se ha terminado!", $description, "Cerrar"));
         }
     }
 }
예제 #2
0
 public function postSetResetPassword(Request $request)
 {
     $data = $request->all();
     if (!isset($data[PasswordReset::ATTR_TOKEN]) || !isset($data[User::ATTR_EMAIL]) || strlen($data[PasswordReset::ATTR_TOKEN]) == 0 || strlen($data[User::ATTR_EMAIL]) == 0 || !isset($data["password"])) {
         return redirect("user/auth/recovery?request=send-mail&form=token")->with(User::ATTR_EMAIL, $data[User::ATTR_EMAIL])->with(UI::message(UI::MESSAGE_TYPE_ERROR, "Error: Solicitud invalida"));
     }
     $email = $data[PasswordReset::ATTR_EMAIL];
     $token = $data[PasswordReset::ATTR_TOKEN];
     if (is_null($pet = PasswordReset::where(PasswordReset::ATTR_EMAIL, $email)->where(PasswordReset::ATTR_TOKEN, $token)->where(PasswordReset::ATTR_ACTIVE, Util::convertBooleanToInt(true))->get())) {
         return redirect("user/auth/recovery?request=send-mail&form=token")->with(User::ATTR_EMAIL, $data[User::ATTR_EMAIL])->with(UI::message(UI::MESSAGE_TYPE_ERROR, "Error: Solicitud invalida"));
     }
     if (DateUtil::difSec($pet[0]->created_at, DateUtil::getCurrentTime()) > 60 * 60 * 2) {
         $pet[0]->active = Util::convertBooleanToInt(false);
         $pet->save();
         return redirect("user/auth/recovery?request=send-mail&form=token")->with(User::ATTR_EMAIL, $data[User::ATTR_EMAIL])->with(UI::message(UI::MESSAGE_TYPE_ERROR, "Error: El código de seguridad ha expirado. <a href='" . url("user/auth/recovery") . "'>¿Realizar una nueva solicitud?</a>"));
     }
     $user = User::where(User::ATTR_EMAIL, $email)->get()[0];
     $user->password = bcrypt($data["password"]);
     $user->save();
     return redirect("user/auth/login")->withInput()->with(UI::message(UI::MESSAGE_TYPE_SUCCESS, "Tu nueva contraseña ha sido establecida, ya puedes iniciar sesión"))->with(User::ATTR_EMAIL, $data[User::ATTR_EMAIL]);
 }
 function getPlayChapter($slug, $id_chapter)
 {
     $id_chapter = Hash::decrypt(urldecode($id_chapter));
     $production = Production::where(Production::ATTR_SLUG, $slug)->get();
     if (count($production) == 0) {
         //Verifica en el log el slug
         if (is_null($id = Slug::getIdProduction($slug))) {
             return abort(404);
         } else {
             return redirect("production/" . Production::findOrNew($id)->slug . "/play");
         }
     }
     $production = $production[0];
     //Verifica que el id del capitulo exista
     if (Chapter::where(Chapter::ATTR_ID, $id_chapter)->count() == 0 || !is_numeric($id_chapter)) {
         return redirect("production/" . $production->slug);
     }
     //Verifica si la pelicula esta activa
     if ($production->state != Production::STATE_ACTIVE) {
         return redirect("production/" . $slug);
     }
     if (Auth::user()->state != User::STATE_ACTIVED_ACCOUNT) {
         return view("frontend/contents/production/play-forbbiden")->with("production", $production)->with("title", "¡ACTIVA TU CUENTA!")->with("message", view("ui/msg/contents/activa-tu-cuenta")->render());
     }
     //Obtiene los datos de la ultima reproduccion del usuario
     list($play_date, $play_ip, $play_production, $play_chapter) = Auth::user()->getLastPlayBack();
     //Verifica la restriccion de usuario gratis, en la que solo permite ver una pelicula por dia
     if (Auth::user()->role == User::ROLE_SUSCRIPTOR) {
         if (!is_null($play_production)) {
             /**
              * EL usuario gratis tiene 24 horas para ver la produccion que escogio
              */
             $play_date = new DateUtil($play_date);
             //Agrega un dia, para determinar la proxima reproduccion
             $play_date->addDays(1);
             $next_date = $play_date->year . "-" . DateUtil::numberAdapt($play_date->month) . "-" . DateUtil::numberAdapt($play_date->day) . " 00:00:00";
             //Calcula la diferencia de tiempo entre el tiempo actual y la fecha de la proxima reproduccion
             $time = DateUtil::difSec(DateUtil::getCurrentTime(), $next_date);
             if ($time > 0 && $id_chapter != $play_chapter) {
                 return view("frontend/contents/production/play-forbbiden")->with("production", $production)->with("message", view("ui/msg/contents/play-forbidden-production-in-play")->with("production", Production::find($play_production))->with("time", $time)->with("chapter", Chapter::find($play_chapter))->render())->with("script", "assets/plugins/countdown/js/countdown.js")->with("css", array("assets/plugins/countdown/css/styles.css"));
             }
         }
     }
     $id_video = Chapter::find($id_chapter)->video;
     return view("ui/media/videoplayer")->with("production", $production)->with("id_video", $id_video);
 }
예제 #4
0
 static function calculateDifference($date1, $date2 = null)
 {
     $date2 = is_null($date2) ? DateUtil::getCurrentTime() : $date2;
     $minute = 60;
     $hour = $minute * 60;
     $day = $hour * 24;
     $month = $day * 30;
     $year = $month * 12;
     //formateamos las fechas a segundos tipo 1374998435
     $difference = DateUtil::difSec($date1, $date2);
     //comprobamos el tiempo que ha pasado en segundos entre las dos fechas
     //floor devuelve el número entero anterior
     if ($difference <= $minute) {
         $time = floor($difference) . " " . trans("gen.time.seconds");
     } elseif ($difference >= $minute && $difference < $minute * 2) {
         $time = "1 " . trans("gen.time.minute");
     } elseif ($difference >= $minute * 2 && $difference < $hour) {
         $time = floor($difference / $minute) . " " . trans("gen.time.minutes");
     } elseif ($difference >= $hour && $difference < $hour * 2) {
         $time = "1 " . trans("gen.time.hour");
     } elseif ($difference >= $hour * 2 && $difference < $day) {
         $time = floor($difference / $hour) . " " . trans("gen.time.hours");
     } elseif ($difference >= $day && $difference < $day * 2) {
         $time = "1 " . trans("gen.time.day");
     } elseif ($difference >= $day * 2 && $difference < $month) {
         $time = floor($difference / $day) . " " . trans("gen.time.days");
     } elseif ($difference >= $month && $difference < $month * 2) {
         $time = "1 " . trans("gen.time.month") . " " . DateUtil::calculateDifference($date1, date(DateUtil::FORMAT_STANDARD, intval($difference - $month) + strtotime($date1)));
     } elseif ($difference >= $month * 2 && $difference < $year) {
         $time = floor($difference / $month) . " " . trans("gen.time.months") . " " . DateUtil::calculateDifference($date1, date(DateUtil::FORMAT_STANDARD, intval($difference - $month * floor($difference / $month) + strtotime($date1))));
     } elseif ($difference >= $year && $difference < $year * 2) {
         $time = "1 " . trans("gen.time.year") . " " . DateUtil::calculateDifference($date1, date(DateUtil::FORMAT_STANDARD, intval($difference - $year) + strtotime($date1)));
     } elseif ($difference >= $year * 2) {
         $time = floor($difference / $year) . " " . trans("gen.time.years");
     }
     return intval($time) <= 0 ? false : strtolower($time);
 }