mentors

mentors Git Source Tree


Root/app/controllers/UserController.php

<?php


class UserController extends \BaseController
{

	public function index()
	{
		$users = User::all();

		return View::make('users.index')->with('users', $users);
	}

	public function create()
	{
		return View::make('users.create');
	}

	public function store()
	{
		$rules = array(
			'first' => 'required|min:3',
			'last'  => 'required|min:3',
			'email'     => 'required|email', 
			'password'  => 'required|alphaNum|min:3' 
		);

		$validator = Validator::make(Input::all(), $rules);

		if ($validator->fails()) 
		{
			return Redirect::route('create')
				->withErrors($validator) 
				->withInput(Input::except('password'));
		} else 
		{
			$user = User::firstOrCreate(
						array('first' => Input::get('first'),
							  'last'  => Input::get('last'),
							  'email' => Input::get('email'),
							  'level' => 'user',
							  'password' => Hash::make(\Input::get('password'))));

			if($user->save())
			{
				$user_id = $user->id;

				Mail::queue('users.welcome', array('name'=> $user->first), function($message) use ($user)
				{
					$message->to($user->email, $user->first . ' '. $user->last)->subject('Welcome To Mentconnect Community');
				});

				return Redirect::route('group', array('user_id' => $user_id));

			}else
			{
				return \Redirect::route('create')->with('errors', 'Something terrible happened');
			}
			
		}
	}

	/**
	 * Display the two buttons for choosing between mentor and mentee
	 * @return View response
	 */
	public function chooseGroup($user_id)
	{
		return View::make('users.group')->with('user_id', $user_id);
	}

	public function completeRegistration()
	{

		$user_id = \Request::segment(3);
		$group_id =  \Request::segment(4);

		$user = User::find($user_id);

		return View::make('users.complete')->with('user', $user)->with('group_id', $group_id);

	}

	public function saveProfile()
	{
		$group_id = \Input::get('group_id');

		$user_id = \Input::get('user_id');

		$user = \User::find($user_id);

		$skills = array();

		if (Input::get('java') === 'Java')
		{
    		array_push($skills, 'Java');
		}

		if (Input::get('php') === 'PHP') 
		{
			array_push($skills, 'PHP');
		}

		if (Input::get('python') === 'Python')
		{
			array_push($skills, 'Python');
		}

		if (Input::get('cplus') === 'Cplus')
		{
			array_push($skills, 'C++');
		}

		if (Input::get('objc') === 'Objc')
		{
			array_push($skills, 'Objective C');
		}

		if (Input::get('htmljscss') === 'Html')
		{
			array_push($skills, 'HTML JS CSS');
		}

		if (Input::get('android') === 'Android') 
		{
			array_push($skills, 'Android');
		}
   
		if (Input::get('ux') === 'UXDesign')
		{
			array_push($skills, 'Java');
		}

		if (Input::get('webapps') === 'Webapps')
		{
			array_push($skills, 'Web Apps');
		}

		if (Input::get('ruby') === 'Ruby') 
		{
			array_push($skills, 'Ruby on Rails');
		}

		if (Input::get('csharp') === 'CSharp')
		{
			array_push($skills, 'C#');
		}

		if (Input::get('people') === 'People')
		{
			array_push($skills, 'People Skills');
		}

		$skills  = serialize($skills);

		$user->first = \Input::get('first');
		$user->last = \Input::get('last');
		$user->email = \Input::get('email');
		$user->location = \Input::get('location');
		$user->bio = \Input::get('bio');
		$user->skills = $skills;

		if (\Input::hasFile('photo')) 
		{
			$photo = \Input::file('photo');
			$filename = uniqid('profile_').'.'.$photo->getClientOriginalExtension();
			$photo->move(public_path('images/users'), $filename);
			$user->photo = 'images/users/'.$filename;
		}

		$user_role = UserXrefRole::find($user_id);

		if(count($user_role))
		{
			$user_role->user_id = $user_id;
			$user_role->role_id = $group_id;
		}else
		{
			$user_role = UserXrefRole::create(array(
				'user_id' => $user_id,
				'role_id' => $group_id
			));
			
		}

		$user_role->save();

		if ($user->save()) 
		{
			return Redirect::route('user');
		}else
		{
			\Redirect::back('complete', array($user_id, $group_id ));
		}

	}

	public function showProfile()
	{
		$user = Auth::user();

		return View::make('users.profile')->with('user', $user);
	}

	public function showUser($id)
	{
		
		$user = User::find($id);

		return View::make('users.profile')->with('user', $user);
	}

	public function edit($id)
	{
		if( Auth::check() && Auth::id() != $id) 
		{
	        return Redirect::to('/');
    	}else
    	{
    		$user = User::find($id);

    		$group = UserXrefRole::where('user_id', '=', $id)->get();

    		$group_id = (int)$group[0]->role_id;

    		return View::make('users.complete')->with('user', $user)->with('group_id', $group_id);
    	}
	}

	public function update($id)
	{
		if( Auth::check() && Auth::user()->id != $id) 
		{
	        return Redirect::to('/');
    	}else
    	{
    		$user = User::find($id);

    		//update the user here

    		\Session::flash('message', 'You have successfully updated your profile.');
    		return Redirect::route('user');
    	}
	}

	public function mentors()
	{

		$mentors = \DB::select(\DB::raw('SELECT * FROM 
							users, roles, user_xref_role
							WHERE users.id = user_xref_role.user_id
							AND roles.id = user_xref_role.role_id
							AND roles.id = 1'));

		return View::make('users.mentors')->with('mentors', $mentors);
	}

	public function mentees()
	{
		$mentees = \DB::select(\DB::raw('SELECT * FROM 
							users, roles, user_xref_role
							WHERE users.id = user_xref_role.user_id
							AND roles.id = user_xref_role.role_id
							AND roles.id = 2'));

		return View::make('users.mentees')->with('mentees', $mentees);
	}

}

Archive Download this file

Branches

Number of commits:
Page rendered in 0.11334s using 11 queries.