*/ class GuestController extends Controller { /** * Create a new controller instance. * @return type void */ public function __construct() { SettingsController::smtp(); $this->middleware('auth'); // $this->middleware('role.user'); } /** * Get profile * @return type Response */ public function getProfile() { $user = Auth::user(); return view('themes.default1.client.helpdesk.profile', compact('user')); } /** * Save profile data * @param type $id * @param type ProfileRequest $request * @return type Response */ public function postProfile(ProfileRequest $request) { $user = User::where('id','=',Auth::user()->id)->first(); $user->gender = $request->get('gender'); $user->save(); if ($user->profile_pic == 'avatar5.png' || $user->profile_pic == 'avatar2.png') { if ($request->input('gender') == 1) { $name = 'avatar5.png'; $destinationPath = 'lb-faveo/profilepic'; $user->profile_pic = $name; } elseif ($request->input('gender') == 0) { $name = 'avatar2.png'; $destinationPath = 'lb-faveo/profilepic'; $user->profile_pic = $name; } } if (Input::file('profile_pic')) { //$extension = Input::file('profile_pic')->getClientOriginalExtension(); $name = Input::file('profile_pic')->getClientOriginalName(); $destinationPath = 'lb-faveo/profilepic'; $fileName = rand(0000, 9999) . '.' . $name; //echo $fileName; Input::file('profile_pic')->move($destinationPath, $fileName); $user->profile_pic = $fileName; } else { $user->fill($request->except('profile_pic', 'gender'))->save(); return redirect()->back()->with('success1', 'Profile Updated sucessfully'); } if ($user->fill($request->except('profile_pic'))->save()) { return redirect()->back()->with('success1', 'Profile Updated sucessfully'); } } /** * Get Ticket page * @param type Help_topic $topic * @return type Response */ public function getTicket(Help_topic $topic) { $topics = $topic->get(); return view('themes.default1.client.helpdesk.tickets.form', compact('topics')); } /** * getform * @param type Help_topic $topic * @return type */ public function getForm(Help_topic $topic) { if(\Config::get('database.install') == '%0%') { return \Redirect::route('license'); } if(System::first()->status == 1) { $topics = $topic->get(); return view('themes.default1.client.helpdesk.form', compact('topics')); } else { return \Redirect::route('home'); } } /** * Get my ticket * @param type Tickets $tickets * @param type Ticket_Thread $thread * @param type User $user * @return type Response */ public function getMyticket() { return view('themes.default1.client.helpdesk.mytickets'); } /** * Get ticket-thread * @param type Ticket_Thread $thread * @param type Tickets $tickets * @param type User $user * @return type Response */ public function thread(Ticket_Thread $thread, Tickets $tickets, User $user) { $user_id = Auth::user()->id; //dd($user_id); /* get the ticket's id == ticket_id of thread */ $tickets = $tickets->where('user_id', '=', $user_id)->first(); //dd($ticket); $thread = $thread->where('ticket_id', $tickets->id)->first(); //dd($thread); // $tickets = $tickets->whereId($id)->first(); return view('themes.default1.client.guest-user.view_ticket', compact('thread', 'tickets')); } /** * ticket Edit * @return */ public function ticketEdit() { } /** * Post porfile password * @param type $id * @param type ProfilePassword $request * @return type Response */ public function postProfilePassword(ProfilePassword $request) { $user = Auth::user(); //echo $user->password; if (Hash::check($request->input('old_password'), $user->getAuthPassword())) { $user->password = Hash::make($request->input('new_password')); $user->save(); return redirect()->back()->with('success2', 'Password Updated sucessfully'); } else { return redirect()->back()->with('fails2', 'Password was not Updated. Incorrect old password'); } } /** * Ticekt reply * @param type Ticket_Thread $thread * @param type TicketRequest $request * @return type Response */ public function reply(Ticket_Thread $thread, TicketRequest $request) { $thread->ticket_id = $request->input('ticket_ID'); $thread->title = $request->input('To'); $thread->user_id = Auth::user()->id; $thread->body = $request->input('ReplyContent'); $thread->poster = 'user'; $thread->save(); $ticket_id = $request->input('ticket_ID'); $tickets = Tickets::where('id', '=', $ticket_id)->first(); $thread = Ticket_Thread::where('ticket_id', '=', $ticket_id)->first(); return Redirect("thread/" . $ticket_id); } /** * Get Checked ticket * @param type Tickets $ticket * @param type User $user * @return type response */ public function getCheckTicket(Tickets $ticket, User $user) { return view('themes.default1.client.helpdesk.guest-user.newticket', compact('ticket')); } /** * Post Check ticket * @param type CheckTicket $request * @param type User $user * @param type Tickets $ticket * @param type Ticket_Thread $thread * @return type Response */ public function PostCheckTicket() { $Email = \Input::get('email'); $Ticket_number = \Input::get('ticket_number'); $ticket = Tickets::where('ticket_number', '=', $Ticket_number)->first(); if($ticket == null) { return \Redirect::route('form')->with('fails', 'There is no such Ticket Number'); } else { $userId = $ticket->user_id; $user = User::where('id', '=', $userId)->first(); if($user->role == 'user') { $username = $user->user_name; } else { $username = $user->first_name." ".$user->last_name; } if($user->email != $Email) { return \Redirect::route('form')->with('fails', "Email didn't match with Ticket Number"); } else { $code = $ticket->id; $code = \Crypt::encrypt($code); $company = $this->company(); \Mail::send('emails.check_ticket', array('link'=>\URL::route('check_ticket',$code),'user'=>$username, 'from'=>$company), function($message) use($user, $username, $Ticket_number) { $message->to($user->email, $username)->subject('Ticket link Request ['.$Ticket_number.']'); } ); return \Redirect::back() ->with('success','We have sent you a link by Email. Please click on that link to view ticket'); } } } /** * get ticket email * @param type $id * @return type */ public function get_ticket_email($id) { $id1 = \Crypt::decrypt($id); return view('themes.default1.client.helpdesk.ckeckticket',compact('id')); } /** * get ticket status * @param type Tickets $ticket * @return type */ public function getTicketStat(Tickets $ticket) { return view('themes.default1.client.helpdesk.ckeckticket', compact('ticket')); } /** * get company * @return type */ public function company() { $company = Company::Where('id','=','1')->first(); if($company->company_name == null){ $company = "Support Center"; }else{ $company = $company->company_name; } return $company; } }