domingo, 29 de junio de 2014

Excluir directorio a modsecurity para apache2 en Debian Wheezy

Hola,

Si alguna vez necesitamos excluir algún directorio de la protección de modsecurity, tenemos que agregar unas lineas en el archivo de configuración:

# nano /etc/modsecurity/modsecurity.conf

Lineas a agregar:
< LocationMatch /webmail/ >
< IfModule mod_security2.c >
SecRuleEngine Off
< /IfModule >
< /LocationMatch >
donde webmail deberán modificarlo por el que deseen.

por ultimo hay que reiniciar el apache para que tome el cambio:

# service apache2 restart

Saludos,

Emmanuel

Solucion a los Mail Delivery System en ISPConfig

Error:

Final-Recipient: rfc822; mail@dominio.com
Original-Recipient: rfc822;mail@dominio.com
Action: failed
Status: 5.1.1
Diagnostic-Code: X-Postfix; unknown user: "mail"

Hay que editar:

# nano /etc/postfix/main.cf

Y modificar esta linea:

mydestination = midominio.com, localhost, localhost.localdomain

por:

mydestination = localhost, localhost.localdomain

Es decir, dejar solo localhost y localhost.localdomain.

Por ultimo, reiniciar postfix:

# /etc/init.d/postfix restart

Saludos,

Emmanuel

martes, 3 de junio de 2014

Agregar Botón a un SQLFORM.grid - web2py

Vamos a ver como agregar un botón extra a un grid.

En esta función declaro el botón editar
def editar_expediente(row):
    btn = A(I(_class='icon-thumbs-up'),
                ' Editar',
                _href=URL(c='default', f='editar_expediente', args=[row.id]),
                _class='btn')
    return btn 
 Aquí tenemos una función llamada 'test' donde construye un formulario con SQLFORM.grid de la tabla 'expediente'.

def test():
    grid = SQLFORM.grid(db.expediente,
        editable=False,)
        links=[lambda r: editar_expediente(r)],)
    return dict(grid=grid)

Con: editable=False, oculto el botón editar.
Con: links=[lambda r: editar_expediente(r)] hago la llamada a un nuevo botón que lo declaro en la función llamada 'editar_expediente'

Ocultar Campos de un SQLFORM.grid web2py

Para ocultar campos en un new, es decir, cuando agregamos un registro en un grid:

def test():
    if 'new' in request.args:
        db.tabla.campo.default = 'texto'
        db.tabla.campo.writable = False
        db.tabla.campo.readable = False
    grid = SQLFORM.grid(db.tabla)
    return dict(grid=grid)
 En este ejemplo, el campo toma por defecto el valor 'texto' y lo oculta en el grid.
El campo default, es opcional, en el caso que queramos que el campo lleve algún valor.

Lo mismo si queremos ocultar un campo en el edit, es decir a la hora de editar un registro del grid:

def test():
    if 'edit' in request.args:
        db.tabla.campo.default = 'texto'
        db.tabla.campo.writable = False
        db.tabla.campo.readable = False
    grid = SQLFORM.grid(db.tabla)
    return dict(grid=grid)

Y en la vista:

 def test():
    if 'view' in request.args:
        db.tabla.campo.default = 'texto'
        db.tabla.campo.writable = False
        db.tabla.campo.readable = False
    grid = SQLFORM.grid(db.tabla)
    return dict(grid=grid)