1
0
mirror of https://github.com/monstra-cms/monstra.git synced 2025-08-02 19:27:52 +02:00

28 Commits

Author SHA1 Message Date
Awilum
81bad8b664 Merge branch 'dev' 2016-04-05 22:52:20 +03:00
Awilum
be52eb65d6 Monstra 3.0.4 2016-04-05 22:52:04 +03:00
Awilum
6e7107aa3b Merge branch 'master' into dev 2016-04-05 22:50:39 +03:00
Awilum
78e7b83fbe Merge branch 'dev' 2016-04-05 22:50:07 +03:00
Awilum
16a0014c2b Monstra 3.0.4 2016-04-05 22:48:20 +03:00
Awilum
09fd5c75a7 Update Changelog 2016-04-05 22:45:17 +03:00
Sergey Romanenko
481009724a Merge pull request #406 from mightyhaggis/dev
User security fix
2016-03-28 00:03:44 +03:00
Mightyhaggis
2e2a22ee5a User security fix
Fix to resolve #405 by adding a check that compares POST id with SESSION
id for none admin edits
2016-03-27 19:25:54 +01:00
Sergey Romanenko
9181877d2d Merge pull request #400 from devmount/patch-1
added: alphabetical order of files and directories
2016-03-25 13:48:09 +03:00
Sergey Romanenko
4980a54b0c Merge pull request #403 from monstrahost/master
changed minified URIs to eliminate query strings
2016-03-25 13:47:07 +03:00
Sergey Romanenko
7a397bb073 Merge pull request #402 from ravilrrr/patch-3
Разрешить чтение robots.txt
2016-03-23 13:12:44 +03:00
thoncs
f6f428a871 changed minified URIs to eliminate query strings 2016-03-15 23:43:00 -05:00
ravilrrr
5eda2a43c4 Разрешить чтение robots.txt
иначе индексироваться будет все подряд.
2016-03-14 17:19:01 +04:00
Andreas M
7dff259775 added: alphabetical order of files and directories
A more intuitive presentation of files and directories especially in long lists in Backend > Content > Files
2016-03-04 20:12:14 +01:00
Sergey Romanenko
3f579777d8 Merge pull request #397 from Freddynic159/master
Spanish translation update
2016-02-05 12:19:51 +03:00
Freddy Morán Jr
da0ce37c58 Update es.lang.php 2016-02-03 10:40:13 -06:00
Freddy Morán Jr
01f3b37fa0 Update es.lang.php 2016-02-03 10:36:32 -06:00
Freddy Morán Jr
1fd65db027 Update es.lang.php 2016-02-03 10:34:58 -06:00
Freddy Morán Jr
bb74b03b0b Update es.lang.php 2016-02-03 10:32:59 -06:00
Freddy Morán Jr
73087d6211 Update es.lang.php 2016-02-03 10:32:11 -06:00
Freddy Morán Jr
05ea489572 Update es.lang.php 2016-02-03 10:30:54 -06:00
Freddy Morán Jr
17c743250f Update es.lang.php 2016-02-03 10:30:03 -06:00
Freddy Morán Jr
400cbfba7a Update es.lang.php 2016-02-03 10:28:43 -06:00
Freddy Morán Jr
0d4fa23e8c Update es.lang.php 2016-02-03 10:27:04 -06:00
Freddy Morán Jr
86af3e2109 Update es.lang.php 2016-02-03 10:24:45 -06:00
Freddy Morán Jr
43e6b0f142 Update es.lang.php 2016-02-03 10:23:17 -06:00
Freddy Morán Jr
82f0d26859 Update es.lang.php 2016-02-03 10:22:02 -06:00
Freddy Morán Jr
789cfbd162 Create es.lang.php 2016-02-03 10:20:07 -06:00
19 changed files with 102 additions and 67 deletions

View File

@@ -59,5 +59,10 @@ AddDefaultCharset UTF-8
Satisfy All
</FilesMatch>
# Allow read files.
<Files robots.txt>
Allow from all
</Files>
# Don't show directory listings for URLs which map to a directory.
Options -Indexes

View File

@@ -1,3 +1,12 @@
Monstra 3.0.4, 2016-04-05
------------------------
- Fixed User Security by adding a check that compares POST id with SESSION
id for none admin edits
- Fixed ability to read robots.txt
- Stylesheet: Changed minified URIs to eliminate query strings
- FilesManager: added alphabetical order for files and directories
- Localization: Major Fixes for ES locale
Monstra 3.0.3, 2016-01-29
------------------------
- Improved Monstra Security

View File

@@ -31,7 +31,7 @@ class Monstra
/**
* The version of Monstra
*/
const VERSION = '3.0.3';
const VERSION = '3.0.4';
/**

View File

@@ -59,7 +59,7 @@ class Javascript
public static function load()
{
$backend_site_js_path = MINIFY . DS . 'backend_site.minify.js';
$frontend_site_js_path = MINIFY . DS . 'frontend_site.minify.js';
$frontend_site_js_path = MINIFY . DS . 'frontend_site.minify.'.Option::get('javascript_version').'.js';
// Load javascripts
if (count(Javascript::$javascripts) > 0) {
@@ -122,7 +122,7 @@ class Javascript
if (BACKEND) {
echo '<script type="text/javascript" src="'.Option::get('siteurl').'/tmp/minify/backend_site.minify.js?'.Option::get('javascript_version').'"></script>';
} else {
echo '<script type="text/javascript" src="'.Option::get('siteurl').'/tmp/minify/frontend_site.minify.js?'.Option::get('javascript_version').'"></script>'."\n";
echo '<script type="text/javascript" src="'.Option::get('siteurl').'/tmp/minify/frontend_site.minify.'.Option::get('javascript_version').'.js"></script>'."\n";
}
}
}

View File

@@ -59,7 +59,7 @@ class Stylesheet
public static function load()
{
$backend_site_css_path = MINIFY . DS . 'backend_site.minify.css';
$frontend_site_css_path = MINIFY . DS . 'frontend_site.minify.css';
$frontend_site_css_path = MINIFY . DS . 'frontend_site.minify.'.Option::get('styles_version').'.css';
// Load stylesheets
if (count(Stylesheet::$stylesheets) > 0) {
@@ -124,7 +124,7 @@ class Stylesheet
if (BACKEND) {
echo '<link rel="stylesheet" href="'.Option::get('siteurl').'/tmp/minify/backend_site.minify.css?'.Option::get('styles_version').'" type="text/css" />';
} else {
echo '<link rel="stylesheet" href="'.Option::get('siteurl').'/tmp/minify/frontend_site.minify.css?'.Option::get('styles_version').'" type="text/css" />'."\n";
echo '<link rel="stylesheet" href="'.Option::get('siteurl').'/tmp/minify/frontend_site.minify.'.Option::get('styles_version').'.css" type="text/css" />'."\n";
}
}
}

View File

@@ -0,0 +1,12 @@
<?php
return array(
'blog' => array(
'Blog' => 'Blog',
'Blog plugin for Monstra' => 'Blog plugin for Monstra',
'begin' => 'comienzo',
'end' => 'final',
'prev' => 'anterior',
'next' => 'siguiente',
)
);

View File

@@ -19,7 +19,7 @@
'Delete block: :block' => 'Eliminar bloque: :block',
'Block content' => 'Contenido del bloque',
'Block <i>:name</i> deleted' => 'Bloque <i>:name</i> eliminado',
'Your changes to the block <i>:name</i> have been saved.' => 'Sus cambios en el bloque <i>:name</i> han sido guardados.',
'Your changes to the block <i>:name</i> have been saved.' => 'Tus cambios en el bloque <i>:name</i> han sido guardados.',
'Delete block: :block' => 'Eliminar bloque: :block',
'View Embed Code' => 'Ver código incrustado',
'Embed Code' => 'Incrustar código',

View File

@@ -2,8 +2,8 @@
return array(
'dashboard' => array(
'Dashboard' => 'Dashboard',
'Dashboard plugin for Monstra' => 'Dashboard plugin para Monstra',
'Dashboard' => 'Escritorio',
'Dashboard plugin for Monstra' => 'Dashboard plugin for Monstra',
'Welcome back' => 'Bienvenido nuevamente',
'Create New' => 'Crear nuevo',
'Upload File' => 'Subir archivo',

View File

@@ -3,7 +3,7 @@
return array(
'emails' => array(
'Emails' => 'Emails',
'Emails plugin for Monstra' => 'Emails plugin para Monstra',
'Emails plugin for Monstra' => 'Emails plugin for Monstra',
'Edit Layout' => 'Editar diseño',
'Email templates' => 'Plantillas de email',
'Edit' => 'Editar',
@@ -14,6 +14,6 @@
'Save' => 'Guardar',
'Cancel' => 'Cancelar',
'This email template does not exist' => 'Esta plantilla de email no existe',
'Your changes to the email template <i>:name</i> have been saved.' => 'Sus cambios en la plantilla de email <i>:name</i> han sido guardados.',
'Your changes to the email template <i>:name</i> have been saved.' => 'Tus cambios en la plantilla de email <i>:name</i> han sido guardados.',
)
);

View File

@@ -214,6 +214,8 @@ class FilesmanagerAdmin extends Backend
foreach ($_list['files'] as $files) {
$files_list[] = $files;
}
// sort file list alphabetically
sort($files_list);
}
$dir_list = array();
@@ -225,6 +227,8 @@ class FilesmanagerAdmin extends Backend
$dir_list[] = $dirs;
}
}
// sort directory list alphabetically
sort($dir_list);
}
// Display view

View File

@@ -18,15 +18,15 @@
'Not Installed' => 'No instalado',
'Security check results' => 'Resultados del control de seguridad',
'The configuration file has been found to be writable. We would advise you to remove all write permissions on defines.php on production systems.' =>
'El archivo de configuración se ha encontrado ser accesible. Le recomendamos quitar todos los permisos de escritura en defines.php en los sistemas de producción.',
'El archivo de configuración se ha encontrado ser accesible. Te recomendamos quitar todos los permisos de escritura en defines.php en los sistemas de producción.',
'The Monstra core directory (":path") and/or files underneath it has been found to be writable. We would advise you to remove all write permissions. <br>You can do this on unix systems with: <code>chmod -R a-w :path</code>' =>
'El directorio núcleo de Monstra (":path") y/o los archivos por debajo del mismo se han encontrado ser accesibles. Le recomendamos quitar todos los permisos de escritura. <br>Usted puede hacer esto en sistemas Unix con: <code>chmod -R a-w :path</code>',
'El directorio núcleo de Monstra (":path") y/o los archivos por debajo del mismo se han encontrado ser accesibles. Te recomendamos quitar todos los permisos de escritura. <br>Puedes hacer esto en sistemas Unix con: <code>chmod -R a-w :path</code>',
'The Monstra .htaccess file has been found to be writable. We would advise you to remove all write permissions. <br>You can do this on unix systems with: <code>chmod a-w :path</code>' =>
'El archivo .htaccess de Monstra se ha encontrado ser accesible. Le recomendamos quitar todos los permisos de escritura. <br>Usted puede hacer esto en sistemas Unix con: <code>chmod a-w :path</code>',
'El archivo .htaccess de Monstra se ha encontrado ser accesible. Te recomendamos quitar todos los permisos de escritura. <br>Puedes hacer esto en sistemas Unix con: <code>chmod a-w :path</code>',
'The Monstra index.php file has been found to be writable. We would advise you to remove all write permissions. <br>You can do this on unix systems with: <code>chmod a-w :path</code>' =>
'El archivo index.php de Monstra se ha encontrado ser accesible. Le recomendamos quitar todos los permisos de escritura. <br>Usted puede hacer esto en sistemas Unix con: <code>chmod a-w :path</code>',
'El archivo index.php de Monstra se ha encontrado ser accesible. Te recomendamos quitar todos los permisos de escritura. <br>Puedes hacer esto en sistemas Unix con: <code>chmod a-w :path</code>',
'Due to the type and amount of information an error might give intruders when Core::$environment = Core::DEVELOPMENT, we strongly advise setting Core::PRODUCTION in production systems.' =>
'Debido al tipo y cantidad de información que un error podría dar a los intrusos cuando Core::$environment = Core::DEVELOPMENT, le recomendamos ajuste Core::PRODUCTION en sistemas de producción.',
'Debido al tipo y cantidad de información que un error podría dar a los intrusos cuando Core::$environment = Core::DEVELOPMENT, te recomendamos ajustar Core::PRODUCTION en sistemas de producción.',
'Monstra version' => 'Versión Monstra',
'Directory Permissions' => 'Permisos de directorio',
'Directory' => 'Directorio',

View File

@@ -32,7 +32,7 @@
'Extra' => 'Extra',
'Save' => 'Guardar',
'Save and Exit' => 'Guardar y salir',
'Your changes to the page <i>:page</i> have been saved.' => 'Sus cambios realizados en la página <i>:page</i> han sido guardados.',
'Your changes to the page <i>:page</i> have been saved.' => 'Tus cambios realizados en la página <i>:page</i> han sido guardados.',
'The page <i>:page</i> cloned.' => 'La página <i>:page</i> ha sido clonada.',
'Status' => 'Estado',
'Actions' => 'Acciones',

View File

@@ -18,7 +18,7 @@
'Delete snippet: :snippet' => 'Eliminar snippet: :snippet',
'Snippet content' => 'Contenido del snippet',
'Snippet <i>:name</i> deleted' => 'Snippet <i>:name</i> eliminado',
'Your changes to the snippet <i>:name</i> have been saved.' => 'Sus cambios realizados en el snippet <i>:name</i> han sido guardados.',
'Your changes to the snippet <i>:name</i> have been saved.' => 'Tus cambios realizados en el snippet <i>:name</i> han sido guardados.',
'Delete snippet: :snippet' => 'Eliminar snippet: :snippet',
'Required field' => 'Dato requerido',
'View Embed Code' => 'Ver código incrustado',

View File

@@ -43,12 +43,12 @@
'Welcome, :username' => 'Bienvenido, :username',
'Reset Password' => 'Restablecer Contraseña',
'Back to Website' => 'Regresar al sitio web',
'Forgot your password ?' => '¿Olvidó su contraseña?',
'Forgot your password ?' => '¿Olvidaste tu contraseña?',
'Administration >' => 'Administración',
'Send New Password' => 'Enviar nueva contraseña',
'This user does not exist' => 'Este usuario no existe',
'Version' => 'Versión',
'Plugin does not exist' => 'El plugin no existe',
'Plugin does not exist' => 'El plugin no existe',
'Help' => 'Ayuda',
'Install script writable' => 'Instalación de scripts accesible',
'Install script not writable' => 'Instalación de scripts no accesible',
@@ -67,8 +67,8 @@
'Field "Username" is empty' => 'El campo "Nombre de usuario" está vacío',
'Field "Password" is empty' => 'El campo "Contraseña" está vacío',
'Field "Site url" is empty' => 'El campo "URL del sitio" está vacío',
'Email not valid' => 'El correo electrónico no es válido',
'Continue' => 'Continuar',
'Email not valid' => 'El correo electrónico es inválido',
'Continue' => 'Continuar',
'Install' => 'Instalar',
'...Monstra says...' => '...Monstra dice...',
'Sitemap file writable' => 'El archivo del mapa del sitio es accesible',
@@ -77,6 +77,6 @@
'Main .htaccess file not writable' => 'El archivo principal .htaccess no es accesible',
'Official Support Forum' => 'Foro de Soporte Oficial',
'Documentation' => 'Documentación',
'Your changes have been saved.' => 'Sus cambios han sido guardados.',
'Your changes have been saved.' => 'Tus cambios han sido guardados.',
)
);

View File

@@ -38,9 +38,9 @@
'This chunk already exists' => 'Este chunk ya existe',
'This styles already exist' => 'Este estilo ya existe',
'Components templates' => 'Componentes de plantillas',
'Your changes to the chunk <i>:name</i> have been saved.' => 'Sus cambios realizados en el chunk <i>:name</i> han sido guardados.',
'Your changes to the styles <i>:name</i> have been saved.' => 'Sus cambios realizados en el estilo <i>:name</i> han sido guardados.',
'Your changes to the template <i>:name</i> have been saved.' => 'Sus cambios realizados en la plantilla <i>:name</i> han sido guardados.',
'Your changes to the chunk <i>:name</i> have been saved.' => 'Tus cambios realizados en el chunk <i>:name</i> han sido guardados.',
'Your changes to the styles <i>:name</i> have been saved.' => 'Tus cambios realizados en el estilo <i>:name</i> han sido guardados.',
'Your changes to the template <i>:name</i> have been saved.' => 'Tus cambios realizados en la plantilla <i>:name</i> han sido guardados.',
'Chunk <i>:name</i> deleted' => 'Chunk <i>:name</i> eliminado',
'Template <i>:name</i> deleted' => 'Plantilla <i>:name</i> eliminada',
'Styles <i>:name</i> deleted' => 'Estilo <i>:name</i> eliminado',

View File

@@ -19,8 +19,8 @@
'New User Registration' => 'Registro de nuevo usuario',
'Delete user: :user' => 'Eliminar usuario: :user',
'User <i>:user</i> have been deleted.' => 'El usuario <i>:user</i> ha sido eliminado.',
'This user already exists' => 'Este usuario ya existe',
'This email already exists' => 'Este correo ya existe',
'This user alredy exist' => 'Este usuario ya existe',
'This email alredy exist' => 'Este correo ya existe',
'Changes saved' => 'Cambios guardados',
'Wrong old password' => 'Contraseña antigua incorrecta',
'Admin' => 'Administrador',
@@ -29,41 +29,41 @@
'Register' => 'Registrar',
'Edit profile' => 'Editar perfil',
'Save' => 'Guardar',
'Firstname' => 'Primer nombre',
'Firstname' => 'Nombre',
'Lastname' => 'Apellido',
'Old password' => 'Contraseña antigua',
'New password' => 'Nueva contraseña',
'Welcome' => 'Bienvenido',
'Wrong <b>username</b> or <b>password</b>' => '<b>Nombre de usuario</b> o <b>contraseña</b> erróneo',
'Your changes have been saved.' => 'Sus cambios han sido guardados.',
'New user have been registered.' => 'Nuevo usuario registrado.',
'Wrong <b>username</b> or <b>password</b>' => '<b>Nombre de usuario</b> o <b>contraseña</b> incorrectos',
'Your changes have been saved.' => 'Tus cambios han sido guardados.',
'New user have been registered.' => 'El nuevo usuario ha sido registrado.',
'Captcha' => 'Captcha',
'Registration' => 'Registro',
'Username' => 'Nombre de usuario',
'User email is invalid' => 'Su correo es inválido',
'User email is invalid' => 'El correo del usuario es inválido',
'Reset Password' => 'Restablecer contraseña',
'Send New Password' => 'Enviar nueva contraseña',
'This user doesnt alredy exist' => 'Este usuario no existe',
'This user doesnt alredy exist' => 'Este usuario no existe aún',
'Users - Profile' => 'Usuarios - Perfil',
'Users - Edit Profile' => 'Usuarios - Editar perfil',
'Users - Login' => 'Usuarios - Iniciar sesión',
'Users - Log In' => 'Usuarios - Iniciar sesión',
'Users - Registration' => 'Usuarios - Registro',
'Users - Password Recover' => 'Usuarios - Recuperar contraseña',
'New Password' => 'Nueva contraseña',
'Forgot your password?' => '¿Olvidó su contraseña?',
'New password has been sent' => 'Su nueva contraseña ha sido enviada',
'Monstra says: This is not your profile...' => 'Monstra dice: Este es su perfil...',
'Forgot your password?' => '¿Olvidaste tu contraseña?',
'New password has been sent' => 'Tu nueva contraseña ha sido enviada',
'Monstra says: This is not your profile...' => 'Monstra dice: Este es tu perfil...',
'User registration is closed.' => 'El registro de usuarios está cerrado.',
'Allow user registration' => 'Permitir registro',
'Required field' => 'Dato requerido',
'Required field' => 'Campo requerido',
'This user doesnt exist' => 'Este usuario no existe',
'Captcha code is wrong' => 'Código captcha erróneo',
'Your login details for :site_name has been sent' => 'Sus detalles para iniciar sesión en :site_name han sido enviados',
'Your new password for :site_name' => 'Su nueva contraseña para :site_name',
'Your login details for :site_name' => 'Sus detalles para iniciar sesión en :site_name',
'Captcha code is wrong' => 'Código captcha incorrecto',
'Your login details for :site_name has been sent' => 'Tus detalles para iniciar sesión en :site_name han sido enviados',
'Your new password for :site_name' => 'Tu nueva contraseña para :site_name',
'Your login details for :site_name' => 'Tus detalles para iniciar sesión en :site_name',
'About Me' => 'Acerca de mí',
'Profile' => 'Perfil',
'You are banned for 10 minutes. Try again later' => 'Ha sido baneado por 10 minutos. Inténtelo nuevamente más tarde',
'You are banned for 10 minutes. Try again later' => 'Has sido baneado por 10 minutos. Inténtalo nuevamente más tarde',
'Cancel' => 'Cancelar',
)
);

View File

@@ -228,27 +228,32 @@ class Users extends Frontend
// Check csrf
if (Security::check(Request::post('csrf'))) {
if (Security::safeName(Request::post('login')) != '') {
if (Users::$users->update(Request::post('user_id'),
array('login' => Security::safeName(Request::post('login')),
'firstname' => Request::post('firstname'),
'lastname' => Request::post('lastname'),
'email' => Request::post('email'),
'skype' => Request::post('skype'),
'about_me' => Request::post('about_me'),
'twitter' => Request::post('twitter')))) {
// Change password
if (trim(Request::post('new_password')) != '') {
Users::$users->update(Request::post('user_id'), array('password' => Security::encryptPassword(trim(Request::post('new_password')))));
// Check for POST data manipulation
if( ((int) Session::get('user_id') == (int) Request::post('user_id')) or (in_array(Session::get('user_role'), array('admin'))) ) {
if (Security::safeName(Request::post('login')) != '') {
if (Users::$users->update(Request::post('user_id'),
array('login' => Security::safeName(Request::post('login')),
'firstname' => Request::post('firstname'),
'lastname' => Request::post('lastname'),
'email' => Request::post('email'),
'skype' => Request::post('skype'),
'about_me' => Request::post('about_me'),
'twitter' => Request::post('twitter')))) {
// Change password
if (trim(Request::post('new_password')) != '') {
Users::$users->update(Request::post('user_id'), array('password' => Security::encryptPassword(trim(Request::post('new_password')))));
}
Notification::set('success', __('Your changes have been saved.', 'users'));
Request::redirect(Site::url().'/users/'.$user['id']);
}
Notification::set('success', __('Your changes have been saved.', 'users'));
Request::redirect(Site::url().'/users/'.$user['id']);
}
} else { }
} else { }
} else { die('Monstra says: This is not your profile...'); }
} else { die('Request was denied because it contained an invalid security token. Please refresh the page and try again.'); }
}

View File

@@ -4,6 +4,6 @@
'captcha' => array(
'Captcha' => 'Captcha',
'Captcha plugin for Monstra' => 'Captcha plugin for Monstra',
'Captcha code is wrong' => 'Codigo captcha equivocado',
'Captcha code is wrong' => 'El código captcha es incorrecto',
)
);
);

View File

@@ -3,8 +3,8 @@
return array(
'sandbox' => array(
'Sandbox' => 'Sandbox',
'Sandbox plugin for Monstra' => 'Sandbox plugin para Monstra',
'Sandbox plugin for Monstra' => 'Sandbox plugin for Monstra',
'Sandbox template' => 'Plantilla sandbox',
'Save' => 'Guardar',
)
);
);