martes, 25 de octubre de 2011

Creando un nuevo permiso en Alfresco

Para crear un nuevo permiso en Alfresco nos basta con modificar un fichero, dicho fichero se encuentra en "{ALFRESCO_HOME}\tomcat\webapps\alfresco\WEB-INF\classes\alfresco\model" y se llama "permissionDefinitions.xml".

Lo abrimos en modo edición y dentro de la etiqueta "<permissions>" pegamos este código.


         
         
         
         
         

Dentro de la definición introduciremos lineas relativas a los permisos de bajo nivel que tendrá nuestro permiso.
Posteriormente debemos añadir nuestro permiso a los tipos donde va a actuar, en este caso "cm:folder""cm:content", dentro de los "<permissionSet>" correspondientes pegamos esta linea




Alfresco WebScript cambiando propiedades y permismos de los espacios

Lo primero, os pongo los links que voy he estado utilizando:
Aquí no voy a explicar como se hace un webscript, con los links de arriba tendréis bastante para entenderlo y crear el vuestro propio.

El Script que os muestro es una modificación del que hay contenido en el rar que se puede descargar del primer link, en la sección XML Data WebScripts de la página.

Este código corresponde a la decripción del webscript en xml, properties.get.desc.xml



 FlexSpaces get properties data
 Gets properties of a doc or folder
 /flexspaces/getProperties?nodeid={nodeid}&tipo={tipo}&desc={desc}&resp={resp}&ot={ot}&pro={pro}&cli={cli}&sol={sol}&exo={exo}&rp={rp}&dob={dob}
 /flexspaces/getProperties?nodeid={nodeid}
 /flexspaces/getProperties?storeid={storeid}&path={path}
 /flexspaces/getProperties?path={path}
 argument
 user
 required
 
   false
          


El siguiente código corresponde a la respuesta, en este caso en xml, properties.get.xml.ftl


  
  ${node.name}
  ${node.id}
  ${node.displayPath}/${node.name}

  <#if node.isContainer>
      <#assign isFolder="true">
      <#assign size="">
      <#assign encoding="">
      <#assign mimetype="">
  <#else>
      <#assign isFolder="false">
      <#assign size=node.size/1024 + " KB">
      <#assign encoding=node.properties.content.encoding!>
      <#assign mimetype=node.properties.content.mimetype!>
  

  ${node.icon16}
  ${node.icon32}
  ${isFolder}
  ${node.properties.title!}
  ${node.properties.description!}
  ${node.properties.author!}
  ${size}
  ${node.properties.creator}
  ${node.properties.created?datetime}
  ${node.properties.modifier}
  ${node.properties.modified?datetime}
  ${node.properties.editInline!}
  ${emailid}
  ${encoding}
  ${mimetype}
    


Por ultimo, esto es el javascript que se ejecutará al llamar a la url contenida en la descripción. properties.get.js


if ((args.nodeid) && (args.nodeid != ""))
{
  model.node = search.findNode("workspace://SpacesStore/" + args.nodeid);
  model.emailid=model.node.properties["{http://www.alfresco.org/model/system/1.0}node-dbid"];

  if(args.tipo.equals("O"))
  {
   model.node.properties["{modelo.ejemplo}Descripcion"] = args.desc;
  }
  var permitted = model.node.getPermissions();
  for (x = 0; x < permitted.length; x++)    {  var obje = permitted[x];  if(obje.search("NombrePermiso")>=0)
{
 var cortado = permitted[x].split(";");
 var user = cortado[1];
 try
 {
  model.node.setInheritsPermissions(false);
  model.node.removePermission("NombrePermiso", user);
  model.node.setInheritsPermissions(true);
 }
 catch(e)
 {
 
 }
}
  }
 
  model.node.setPermission("NombrePermiso",args.resp);
 
  model.node.save();
}
else if ( (args.storeid) && (args.storeid != "") && (args.path) && (args.path != "") )
{
  // use avm storeid and path
  var store = avm.lookupStore(args.storeid);
  if (store != null)
  {
     var pathWithStore = args.storeid + ":" + args.path;
     model.node = avm.lookupNode(pathWithStore);
     model.emailid = "";
  }
}
else
{
  // use doc mgt path
  if ((args.path) && (args.path != ""))
  {
     model.node = roothome.childByNamePath(args.path);
     model.emailid=model.node.properties["{http://www.alfresco.org/model/system/1.0}node-dbid"];
  }
}


He tenido que recurrir a un bucle ante la imposibilidad de utilizar la función removePermission("NombrePermiso"), en el bucle recorre todos los permisos y borra uno a uno los que coincidan con el nombre del mismo, ademas de quitar los permisos heredados antes de borrar cualquier permiso y volver a setearlos al terminar.

jueves, 20 de octubre de 2011

Actualizar M3i Zero de DSi

http://img846.imageshack.us/img846/2526/ievolutionconfirmedon3d.jpg


Información General

El ya conocido M3 Team nos ofrece un cartucho completamente compatible con la nueva 3DS (además de las DSi y DSi XL). M3i Zero tiene el mismo menú que el M3 DS Real, intuitivo y fácil de usar.

Incluye un programador externo al igual que la SuperCard DSONEi , del que hablaremos mas tarde, para actualizar el firmware del cartucho para hacerlo compatible con las diferentes actualizaciones de la consola, como ya ocurrió con la actualización de la DSi 1.4.1. Con él podrás escuchar música, visualizar vídeos, ponerla en modo PDA, utilizar él messenger e incluso hacer tus propios programas.


Características

* Compatible con DS, DS Lite, DSi, DSi XL y 3DS (Sólo en modo DS).
* 100% compatibilidad
* Salvado en Tiempo Real
* Soporte multilenguaje (Inglés, Francés, Alemán, Italiano, Español, Portugués, Holandés, Koreano y Thailandés)
* Actualizaciones continuas y frecuentes
* Software y Firmware actualizable
* Firmware actualizable con programador externo, por si Nintendo detecta la Flashcard.
* Soporta tarjetas SDHC (4GB, 8 GB, 16GB, 32GB.. etc)
* Plug&Play
* Uso intuitivo
* Función de códigos y trucos
* Soporta modo "Slow Motion"
* Soporta modo "Sleep"
* Detecta y genera automaticamente los archivos de partida guardada
* Soporta Homebrew y DLDI autoparchea
* Alta compatibilidad ISOS/Homebrew
* Interfaz robusta y completamente personalizable
* Función PassMe
* Moonshell 2.0 integrado
* Soporta Descarga DS
* Soporta Rumble Pack, GBA Expansion Pack y DS Browser
* Soporta 4 niveles de iluminación.
* Soporta varios kernels, como el oficial o el Sakura.


Contenido de la caja

- Cartucho M3i Zero.
- Lector tarjetas MicroSD.
- Cable para actualizar el Firmware.
- MicroSD*.

*: opcional, dependera del pack que hayais adquirido en tienda.


http://img818.imageshack.us/img818/1647/m3izero.jpg

Como actualizar el Firmware y el Kernel de la M3i por primera vez

Como hemos dicho anteriormente,una de las peculiaridades de esta Flash, es que lleva un Firmware interno (instalado en la propia flashcard) y un Kernel externo (instalado en la MicroSD).Como viene siendo norma general, la Flash nos viene sin nada, asi que tenemos que instalarlo todo nostros mismos.Lo primero que haremos es instalar el Firmware, y luego el Kernel, para ello seguid los siguentes pasos:

Instalar el Firmware

Lo primero que debemos hacer es formatear la MicroSD en Fat/Fat 32, nos descargamos la última versión del firw, lo descomprimes y copias en la MicroSD, como muestra la imagen.


http://img25.imageshack.us/img25/2589/m3icore.jpg

Luego introduce la MicroSD en la Flash, y seguidamente al programador externo tal y como muestra la imagen.


http://img685.imageshack.us/img685/8851/cablec.jpg

Ahora, conectamos el programador al USB del PC, y la M3i se actualizará automáticamente.Si lo hemos hecho todo bién, el LED (Lucecita roja) empezará a parpadear, cuando se apague, habrá terminado la actualización, que suele durar unos 30 segundos.
Si el LED, no se enciende, es síntoma de que no hemos conectado todo correctamente, y si se queda fijo, es que no ha encontrado la actualización.

Instalar el Kernel

- Para actualizar el kernel basta con que te descargues la ultima versión de Touchpod o M3 Sakura

- Luego debes descomprimir la carpeta SYSTEM y copiarlo en la raiz de la MicroSD. Se recomienda quitar la antigua carpeta para evitar problemas.


Datos de interés

- Página web oficial: http://www.m3adapter.com
- Usa el mismo kernel que la M3 Real
- Compatible con el YSM3
- Versión del ultimo kernel disponible: Touchpod v4.9a y M3 Sakura v1.49a 3rd
- Versión del ultimo Core disponible: v1.8.2
- Funciona con la version 1.4.2 de DSi
- Funciona con la version de Firmware 1.0.0 y v2.0.0-2 de 3DS


Descargas

Kernel

Touchpod v4.9a (http://www.megaupload.com/?d=O9PQ6MTW)
M3 Sakura 1.49a (http://www.megaupload.com/?d=QUZ52PY3)

Core

Core v1.8.2 (http://www.megaupload.com/?d=4OYBG4YA) (Para actualización v2.0.0-2 de la 3DS)
Core v1.8.2 (http://www.megaupload.com/?d=ETZEO8I5) (Para DSi v1.4.2)
Core v1.7.1 (http://www.megaupload.com/?d=0TPBC598) (Para que funcione en 3DS, no es necesario actualizar si tienes DSi)
Core v1.6.1 (http://www.megaupload.com/?d=LEWA3ZDE) (Para DSi v1.4.1)


http://www.espal3ds.com/foros/archive/index.php/t-216.html?s=b328654e6eec95af6ac2f533a1aa4770

martes, 18 de octubre de 2011

Cambiar configuración por defecto de "Mi Panel de Inicio" Alfresco

Utilizando Alfresco 3.4g.

Cuando nos autenticamos en Alfresco se nos presenta una interfaz web referente a "Mi Alfresco" que el mismo usuario puede configurar, pero ¿Que pasa si queremos cambiar esa configuración por defecto que nos presenta el gestor documental y presentar la nuestra propia?.

La cosa es "muy sencilla y muy fácil" ;)

Vamos a {ALFRESCO_DIR}\Alfresco\tomcat\shared\classes\alfresco\extension, alli encontramos el fichero web-client-config-custom.xml.

Aquí introduciremos los cambios que queramos machacar de la configuración por defecto de Alfresco. Simplemente con incluir estas lineas:














Reiniciamos el servidor y lo lanzamos de nuevo, veremos que al autenticarnos se ha cumplido nuestro deseo.

De igual forma podemos indicarle que layout queremos que se muestre por defecto, para ello debemos añadir estas lineas:








En este caso ponemos por defecto un layout de 2 columnas.Estas lineas se introducen dentro de la etiqueta "<dashboards>"
Arriba