Posted by stefano on December 1, 2009
Para actualizar la version de PHP a la 5.2.11 hay que utilizar el repositorio test de remi, el otro repositorio remi tiene la version 5.3.1
cd /etc/yum.repos.d
wget http://dev.centos.org/centos/5/CentOS-Testing.repo
rpm --import http://dev.centos.org/centos/RPM-GPG-KEY-CentOS-testing
yum --enablerepo=c5-testing update php
yum --enablerepo=c5-testing update mysql
Luego reiniciamo mysql y php
service mysqld restart
service httpd restart
Información extraÃda desde http://www.magentocommerce.com/wiki/how_to/installing_php_5.2.x_on_centos_5.2
Posted by stefano on October 25, 2009
Hoy comencé a trabajar sistema utilizando CakePHP en el cual necesito un control de acceso para distinguir entre dos usuarios, un administrador y un usuario normal, no quise usar ACL debido a lo básico de necesidad asà que me puse a desarrollar mi propio sistema de control de acceso, con una pequeña variante en el software.
La solución es la siguiente:
En mi app_controller.php
function beforeFilter() {
if($this->Session->check("Auth.User")) {
if($this->_permisos($this->params,$this->Session->read("Auth.User.group_id")) == false) {
$this->Session->setFlash("No tienes permiso para ingresar a esta area");
$this->redirect("/");
}
}
}
function _permisos($params,$group) {
$normal_permitido = array(
'users' => array(),
'tickets'=>array('add','view','index'),
'comments'=>array('add','view','index'),
'groups' => array(),
'types' => array(),
'subareas' => array(),
'areas' => array(),
'pages' => array('display')
);
if($group != 1) {
if(array_key_exists($params["controller"],$normal_permitido)) {
if(in_array($params["action"], $normal_permitido[$params["controller"]])) {
return true;
}
else {
return false;
}
}
else {
return false;
}
} else {
return true;
}
}
La idea es super simple si el usuario no es administrador solo podrá acceder a ciertas acciones los controladores. En el arreglo $normal_permitido se almacenan los controladores y las acciones que tiene permitido visitar.
Ojala les sirva.
Happy baking!
Posted by stefano on October 14, 2009
Muchas veces necesitamos transformar un array a un string en el cual los elementos este separados por , o por algún otro separador para esto podemos usar la siguiente funcion.
implode(",",$array);
Posted by stefano on October 6, 2009
echo(date('U',strtotime($string)));
Posted by stefano on October 3, 2009
Con esta simple instrucción ignoramos el archivo de base de datos de cakephp (ideal cuando hacemos checkout en nuestro servidor de producción)
stefano@sheldon:~/directory/app/config$ svn propset svn:ignore database* .
propiedad 'svn:ignore' asignada en '.'
Posted by stefano on July 29, 2009
Hace tiempo que tenÃa ganas de aprender un nuevo lenguaje de programación pero me faltaba un incentivo. Ahora ya tengo el incentivo solo es cuestión de tiempo. El lenguaje elegido es Java
Mi primera aplicación en java (habÃa hecho otras antes para la universidad pero ya no recuerdo como eran).
Esta pequeña aplicación utiliza la biblioteca Twitter4J la cual nos entrega una serie de clases y funciones para manejar de manera fácil el api de twitter.
import twitter4j.Status;
import twitter4j.Twitter;
import twitter4j.TwitterException;
import java.util.List;
public class Main {
public static void main(String[] args) {
if (args.length < 1) {
System.out.println("No TwitterID specified.");
System.exit(-1);
}
try {
Twitter twitter = new Twitter();
List<Status> messages = twitter.getUserTimeline(args[0]);
int i = 0;
for (Status message : messages) {
if( i <= 1) {
System.out.println("<@"+args[0]+"> "+message.getText()+ " date:"+message.getCreatedAt()+ "\n");
i++;
}
}
System.exit(0);
} catch (TwitterException te) {
System.out.println("Failed to get messages: " + te.getMessage());
System.exit( -1);
}
}
}
Con este simple código podemos obtener los últimos 5 mensajes de una cuenta de twitter.