/** * Restauramos una foto proveniente de la papelera. * @param int $foto ID de la foto a restaurar. */ public function action_restaurar_foto($foto) { if (!Usuario::is_login()) { $_SESSION['flash_error'] = 'Debes iniciar sessión para poder restaurar fotos.'; Request::redirect('/usuario/login'); } $foto = (int) $foto; // Cargamos la foto. $model_foto = new Model_Foto($foto); // Verificamos exista. if (!is_array($model_foto->as_array())) { $_SESSION['flash_error'] = 'La foto que intentas restaurar no se encuentra disponible.'; Request::redirect('/foto/'); } // Verifico el usuario y sus permisos. if (Usuario::$usuario_id !== $model_foto->usuario_id && !Usuario::permiso(Model_Usuario_Rango::PERMISO_FOTO_VER_PAPELERA)) { $_SESSION['flash_error'] = 'La foto que intentas restaurar no se encuentra disponible.'; Request::redirect('/foto/ver/' . $foto); } // Verifico el estado de la foto. if ($model_foto->estado !== Model_Foto::ESTADO_PAPELERA) { $_SESSION['flash_error'] = 'La foto que intentas restaurar no se encuentra disponible.'; Request::redirect('/foto/ver/' . $foto); } // Actualizo el estado. $model_foto->actualizar_estado(Model_Foto::ESTADO_ACTIVA); // Enviamos el suceso. $model_suceso = new Model_Suceso(); if (Usuario::$usuario_id != $model_foto->usuario_id) { $model_suceso->crear($model_foto->usuario_id, 'foto_restaurar', TRUE, $foto, Usuario::$usuario_id); $model_suceso->crear(Usuario::$usuario_id, 'foto_restaurar', FALSE, $foto, Usuario::$usuario_id); } else { $model_suceso->crear($model_foto->usuario_id, 'foto_restaurar', FALSE, $foto, Usuario::$usuario_id); } // Informamos el resultado. $_SESSION['flash_success'] = 'La foto se ha restaurado correctamente.'; Request::redirect('/foto/ver/' . $foto); }
/** * Suceso producido cuando se agrega a favoritos una foto. * @param array $suceso Datos del suceso. * @return array */ protected static function suceso_foto_editar($suceso) { // Verifico si fui yo. if ($suceso['objeto_id1'] == Usuario::$usuario_id) { return NULL; } // Cargo la foto. $model_foto = new Model_Foto((int) $suceso['objeto_id']); // Cargo quien edita la foto. $model_usuario = new Model_Usuario((int) $suceso['objeto_id1']); return array('foto' => $model_foto->as_array(), 'usuario' => $model_foto->usuario()->as_array(), 'editor' => $model_usuario->as_array()); }
/** * Borramos una foto. * @param int $foto ID de la post a borrar. */ public function action_borrar_foto($foto) { // Verifico permisos. if (!Usuario::permiso(Model_Usuario_Rango::PERMISO_FOTO_VER_PAPELERA)) { $_SESSION['flash_error'] = 'No tienes permiso para borrar fotos.'; Request::redirect('/'); } $foto = (int) $foto; // Cargamos la foto. $model_foto = new Model_Foto($foto); // Verificamos exista. if (!is_array($model_foto->as_array())) { $_SESSION['flash_error'] = 'La foto que deseas borrar no se encuentra disponible.'; Request::redirect('/moderar/papelera/fotos'); } // Verifico el usuario y sus permisos. if (Usuario::$usuario_id !== $model_foto->usuario_id || !Usuario::permiso(Model_Usuario_Rango::PERMISO_ELIMINAR_FOTOS)) { $_SESSION['flash_error'] = 'La foto que deseas borrar no se encuentra disponible.'; Request::redirect('/moderar/papelera/fotos'); } // Actualizo el estado. $model_foto->actualizar_campo('estado', Model_Foto::ESTADO_BORRADO); // Enviamos el suceso. $model_suceso = new Model_Suceso(); if (Usuario::$usuario_id != $model_foto->usuario_id) { $model_suceso->crear($model_foto->usuario_id, 'foto_borrar', TRUE, $foto, Usuario::$usuario_id); $model_suceso->crear(Usuario::$usuario_id, 'foto_borrar', FALSE, $foto, Usuario::$usuario_id); } else { $model_suceso->crear($model_foto->usuario_id, 'foto_borrar', FALSE, $foto, Usuario::$usuario_id); } // Informamos el resultado. $_SESSION['flash_success'] = '<b>¡Felicitaciones!</b> Foto borrada correctamente.'; Request::redirect('/moderar/papelera/fotos'); }