Beispiel #1
0
function comprobarPermiso($permiso)
{
    $empleadousuario = UsuarioEmpleado::with('usuario', 'empresa')->where('usuarioid', Auth::user()->id)->first();
    $empleado = EmpleadoEmpresaCliente::with('rol')->find($empleadousuario->empleadoid);
    $bandera = false;
    if ($empleado->rol) {
        $roles = RolAccion::with('accion')->where('roles_id', $empleado->rol->roleid)->get();
        foreach ($roles as $role) {
            if ($role->accion->nombre == $permiso) {
                $bandera = true;
                break;
            }
        }
    }
    return $bandera;
}
 /**
  * Update the specified resource in storage.
  *
  * @param  int  $id
  * @return Response
  */
 public function update($id)
 {
     $rules = array('nombre' => array('required'), 'descripcion' => array('required'), 'permisos' => array('required'));
     $messages = array('nombre.required' => 'Campo requerido', 'descripcion.required' => 'Campo requerido', 'permisos.required' => 'Se necesita un permiso como mínimo');
     $validator = Validator::make(Input::all(), $rules, $messages);
     if ($validator->fails()) {
         return Redirect::back()->withErrors($validator)->withInput();
     } else {
         $permisos = Input::get('permisos');
         if (Auth::user()->tipousuarios_id == 2) {
             $empresausuario = UsuarioEmpresaRenta::with('usuario', 'empresa')->where('usuarios_id', Auth::user()->id)->first();
             $empresaid = $empresausuario->empresas_renta_id;
         } else {
             if (Auth::user()->tipousuarios_id == 3) {
                 $empresausuario = UsuarioEmpleado::with('usuario', 'empresa')->where('usuarioid', Auth::user()->id)->first();
                 $empresaid = $empresausuario->empresarentaid;
             }
         }
         $comprueba = Rol::where('nombre', Input::get('nombre'))->where('empresas_renta_id', $empresaid)->where('id', '!=', $id)->first();
         if ($comprueba) {
             Session::flash('mensaje', 'Ya existe el nombre del puesto!');
             return Redirect::back()->withInput();
         }
         //return Input::get('permisos');
         $rol = Rol::find($id);
         $rol->nombre = Input::get('nombre');
         $rol->descripcion = Input::get('descripcion');
         $rol->save();
         //Eliminar los anterioes
         $rol->acciones()->delete();
         foreach ($permisos as $permiso) {
             $rolaccion = new RolAccion();
             $rolaccion->roles_id = $rol->id;
             $rolaccion->acciones_id = $permiso;
             $rolaccion->empresarentaid = $empresaid;
             $rolaccion->save();
         }
         if (Auth::user()->tipousuarios_id == 2) {
             Session::flash('mensaje', 'Se ha creado correctamente!');
             return Redirect::to('administradorempresa/roles');
         } else {
             if (Auth::user()->tipousuarios_id == 3) {
                 Session::flash('mensaje', 'Se ha creado correctamente!');
                 return Redirect::to('administradorempleado/roles');
             }
         }
     }
 }