cancel
Showing results for 
Search instead for 
Did you mean: 

public share link

4lfr3d7115
Champ in-the-making
Champ in-the-making
En alfresco 5.0.d como puedo configurar para que solo usuarios "administradores" puedan compartir "shared"y descompartir "unshared" un archivo hacia el publico.

El problema es que al momento cualquier usuario que tenga el rol de "consumidor" puede compartir y descompartir los ficheros, lo cual provoca que el link que se compartio previamente pueda ser modificado sin control.
3 REPLIES 3

angelborroy
Community Manager Community Manager
Community Manager
Para modificar este comportamiento podrías modificar/sobreescribir el fichero <CODE>/alfresco/site-data/components/global.head-title.xml<CODE>:

[javascript]
<?xml version='1.0' encoding='UTF-8'?>
<component>
   <scope>global</scope>
   <region-id>head-title</region-id>
   <source-id>global</source-id>
   <sub-components>
      <sub-component id="default">
         <evaluations>
            <evaluation id="quickshare">
               <evaluators>
                  <evaluator type="page.component.evaluator">
                     <params>
                        <pages>quickshare</pages>
                     </params>
                  </evaluator>
               </evaluators>
               <url>/components/quickshare/title</url>
               <properties>
                  <shareId>{shareid}</shareId>
               </properties>
            </evaluation>
            <evaluation id="default">
               <url>/components/head/title</url>
            </evaluation>
         </evaluations>
      </sub-component>
   </sub-components>
</component>
[/javascript]

Si ajustas ese <CODE>evaluator</CODE> (page.component.evaluator) podrás mostrar el enlace de "Shared" para administradores y ocultarlo para el resto. Échale un vistazo a http://blogs.alfresco.com/wp/developer/2011/08/26/extensibility-module-deployment/ y a http://experiencewithalfresco.blogspot.dk/2012/06/type-subcomponent-evaluator.html

Para identificar si un usuario es o no administrador, puedes usar este código Java en tu evaluator:

<java>
@Override
    public boolean evaluate(RequestContext context, Map<String, String> arg1) {
         RequestContext rc = ThreadLocalRequestContext.getRequestContext();
         User user = rc.getUser();
         return (user != null && user.isAdmin());
    }
</java>

Hyland Developer Evangelist

tambien puedes configurarlo en share config para que sea visible por los admins o no

angelborroy
Community Manager Community Manager
Community Manager
psantis, ¿puedes detallar ese procedimiento?

No lo conozco, gracias.
Hyland Developer Evangelist