public function searchUser()
 {
     $query = Input::get('query');
     //TODO search inactive users.
     $users = User::where('first_name', 'like', "{$query}%")->get(array('id', 'first_name', 'last_name'));
     $users_array = array();
     foreach ($users as $user) {
         $users_array[] = array('id' => $user->id, 'name' => $user['first_name'] . ' ' . $user['last_name']);
     }
     return Response::jsend('success', $users_array);
 }
 public function loginUser()
 {
     $all = Input::all();
     //check first if user has valid credentials
     $user = User::with('roles')->where('user_name', '=', $all['user_name'])->first();
     //check if user is null, then return error message.
     if ($user) {
         //return $user;
         //if user is valid then check if its locked
         // $user = $user->toArray();
         if (!Hash::check($all['password'], $user['password'])) {
             return Response::jsend('fail', array('msg' => sprintf("Password not matched, Please try again.")));
         }
         if ($user['activation'] == 'lock') {
             return Response::jsend('fail', array('msg' => sprintf("Username %s is locked, Reach out to your manager/HR to unlock your account.", $all['user_name'])));
         }
         //if all is well, set the user in session and return success.
         //TODO also search for User roles, and set in session.
         unset($user['password']);
         $users_roles = array();
         if (count($user->roles) > 0) {
             foreach ($user->roles as $role) {
                 unset($role['pivot']);
                 $users_roles[] = $role;
             }
         }
         unset($user['roles']);
         $user['roles'] = $users_roles;
         $manager = User::where('id', '=', $user['manager_id'])->first(array('id', 'first_name', 'last_name', 'email', 'activation'));
         $user['manager'] = $manager;
         Session::put('user_session', $user);
         return Response::jsend('success', $user);
     } else {
         return Response::jsend('fail', array('msg' => sprintf("Username %s is not valid, Please try again.", $all['user_name'])));
     }
 }
 public function actionOnLeaveRequest()
 {
     $all = Input::all();
     $leave = LeaveRequest::where('id', '=', $all['id']);
     $leave->update(array('status' => $all['status']));
     return Response::jsend('success', array('msg' => sprintf("Leave status is set to %s.", $all['status'])));
 }
 public function viewUserRoles($userId)
 {
     $user = User::find($userId)->roles();
     return Response::jsend('success', $user->get());
 }
 public function createUserPayrollDetails()
 {
     $all = Input::all();
     $pay = Payroll::where('user_id', '=', $all['user_id']);
     if (count($pay->get()) > 0) {
         $pay->update($all);
     } else {
         Payroll::create($all);
     }
     return Response::jsend('success', 'Users Payroll successfully created.');
 }
 public function approveEnrollment()
 {
     $id = Input::get('id');
     $enroll = Enroll::where('id', '=', $id)->first();
     $enroll->status = 'Approved';
     $enroll->update();
     return Response::jsend('success', $enroll);
 }