cancel
Showing results for 
Search instead for 
Did you mean: 

Se añada el usuario administrador a los miembros del sitio del usuario (que no sea administrador)

fjsobrino
Champ on-the-rise
Champ on-the-rise
Buenos días a tod@s,

Quiero que se añada automáticamente usuario: "admin" y estado: "administrador" a los miembros del sitio, cuando un usuario (que no sea administrador) haya creado un nuevo sitio, para que el usuario "admin" se pueda ver y tocar cualquier sitio.

Es añadir el usuario “admin” con permisos de “administrador” a cualquier sitio que se cree.

¿¿lo entendéis??

Estaba investigando pero no funciona, no sé cuál es el código del alfresco 4.2.f

Se corresponde con el archivo “colleagues.get.js”, no?

<code lang="java" linenumbers="normal">
function main()
{
   // Call the repo for the site memberships
   var maxItems = getMaxItems(),
      size = maxItems + 1,
      json = remote.call("/api/sites/" + page.url.templateArgs.site + "/memberships?size=" + size + "&authorityType=USER");

   var memberships = [],
      totalResults = 0;

   if (json.status == 200)
   {
      // Create javascript objects from the repo response
      var obj = eval('(' + json + ')');
      if (obj)
      {
         totalResults = obj.length;
         memberships = obj.slice(0, maxItems);

         var member, userStatus;
         for (var i = 0, j = memberships.length; i < j; i++)
         {
            member = memberships;
            userStatus = member.authority.userStatus;
         }
         memberships.sort(sortByName);
      }
   }
</code>
Gracias de antemano

Un Saludo,
9 REPLIES 9

angelborroy
Community Manager Community Manager
Community Manager
Quizá te pueda ayudar este ejemplo de Martin http://www.marversolutions.com/wordpress/2011/02/15/creating-alfresco-share-sites-with-javascript/
Hyland Developer Evangelist

Ah si, muchas gracias!! me voy a investigarlo, a ver si hay suerte!

Lo he investigado pero creo que no lo es…porque solo quiero que se añada automáticamente usuario: "admin" y estado: "administrador" a los miembros del sitio, cuando un usuario (que no sea administrador) haya creado un nuevo sitio, para que el usuario "admin" se pueda ver y tocar cualquier sitio.

Supongo que tiene relación con https://forums.alfresco.com/es/crear-miembros-de-site-automaticamente-en-alfresco-share-12132010-090...

Escribiste el ultimo comentario en este enlace del foro:

La regla va en la carpeta Sites y el javascript sería algo así como:
<code lang="javascript">
var group = groups.getGroup("site_<nombre-sitio>_SiteManager");
group.addAuthority("usuario");
</code>

Y también he leído el apartado 3 "Step 3: Creating a rule that fires the JavaScript" en este tutorial: http://zandadev.com/zach/alf/?p=37 para crear la regla.

Lo he hecho pero no está bien :

<code lang="javascript">
var group = groups.getGroup("siteName");
group.addAuthority("admin");
</code>

me ha salido el error de log, no lo sé muy bien…


      at java.lang.Thread.run(Thread.java:722)
Caused by: org.alfresco.error.AlfrescoRuntimeException: 082216774 TypeError: Cannot call method "addAuthority" of null (workspace://SpacesStore/ac6fd957-615a-46b1-bcec-e0097af5c174#2)
   at org.alfresco.repo.jscript.RhinoScriptProcessor.executeScriptImpl(RhinoScriptProcessor.java:516)
   at org.alfresco.repo.jscript.RhinoScriptProcessor.execute(RhinoScriptProcessor.java:248)
   … 31 more
Caused by: org.mozilla.javascript.EcmaError: TypeError: Cannot call method "addAuthority" of null (workspace://SpacesStore/ac6fd957-615a-46b1-bcec-e0097af5c174#2)
   at org.mozilla.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3350)
   at org.mozilla.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3340)
   at org.mozilla.javascript.ScriptRuntime.typeError(ScriptRuntime.java:3356)
   at org.mozilla.javascript.ScriptRuntime.typeError2(ScriptRuntime.java:3375)
   at org.mozilla.javascript.ScriptRuntime.undefCallError(ScriptRuntime.java:3394)
   at org.mozilla.javascript.ScriptRuntime.getPropFunctionAndThis(ScriptRuntime.java:2026)
   at org.mozilla.javascript.gen.c382._c0(workspace://SpacesStore/ac6fd957-615a-46b1-bcec-e0097af5c174:2)
   at org.mozilla.javascript.gen.c382.call(workspace://SpacesStore/ac6fd957-615a-46b1-bcec-e0097af5c174)
   at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:393)
   at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:2834)
   at org.mozilla.javascript.gen.c382.call(workspace://SpacesStore/ac6fd957-615a-46b1-bcec-e0097af5c174)
   at org.mozilla.javascript.gen.c382.exec(workspace://SpacesStore/ac6fd957-615a-46b1-bcec-e0097af5c174)
   at org.alfresco.repo.jscript.RhinoScriptProcessor.executeScriptImpl(RhinoScriptProcessor.java:492)
   … 32 more

Gracias de antemano

angelborroy
Community Manager Community Manager
Community Manager
No te está recuperando el grupo en la primera línea. Si el nombre corto de tu sitio es "test", el código que debes incluir es:


var group = groups.getGroup("site_test_SiteManager");
group.addAuthority("admin");


Un administrador de sitio pertenece al grupo
"site_<nombre-sitio>_SiteManager"
Hyland Developer Evangelist

Hola Angel,

perdona estaba ocupado haciendo otra cosa de mi trabajo…

Bueno he puesto un nombre corto del sitio en la primera linea y lo he probado, ya funciona perfectamente porque el administrador se puede ver y tocar cualquier sitio.

Pero quiero poner una variable del "nombre del sitio" en esta linea para que un usuario escribe cualquier nombre del sitio y se añada automáticamente el administrador a los miembros entonces:

Estaba investigando que he puesto la variable del nombre sitio "shortName" en "site_shortName_SiteManager" y también he probado poner varias variables similares y tampoco funciona porque me ha salido el mismo error de log

Muchísimas gracias!

angelborroy
Community Manager Community Manager
Community Manager
Entonces tienes que poner algo parecido a esto:


var siteGroup = "site_" + siteShortName + "_SiteManager";
var group = groups.getGroup(siteGroup);
group.addAuthority("admin");
Hyland Developer Evangelist

Perdona no soy un experto en alfresco… porque estaba investigando y probando que tiene un problema de pasar la referencia a la variable, he puesto varias referencias pero aun me ha salido el error de log [font=Courier]"ReferenceError:"[/font]

<code lang="javascript">
var group = groups.getGroup("site_"+ siteShortName +"_SiteManager");
group.addAuthority("admin")
</code>

ó bien

<code lang="javascript">
var siteGroup = "site_"+ siteShortName +"_SiteManager",
   group = groups.getGroup(siteGroup);
group.addAuthority("admin")
</code>

Creo que los dos son mismos, no? Bueno he puesto estos códigos de javascript en el archivo donde está la carpeta de "Script" en la carpeta de "Diccionario de datos", he ejecutado las reglas, me ha salido el error de referencia:


org.alfresco.scripts.ScriptException: 083057439 Failed to execute script 'workspace://SpacesStore/24a9ab04-142b-4a78-ac8a-5330a5c6615c': 083057438 ReferenceError: "siteShortName" is not defined. (workspace://SpacesStore/24a9ab04-142b-4a78-ac8a-5330a5c6615c#1)
   at org.alfresco.repo.jscript.RhinoScriptProcessor.execute(RhinoScriptProcessor.java:252)
   at org.alfresco.repo.processor.ScriptServiceImpl.execute(ScriptServiceImpl.java:237)
   at org.alfresco.repo.processor.ScriptServiceImpl.executeScript(ScriptServiceImpl.java:143)
   at sun.reflect.GeneratedMethodAccessor745.invoke(Unknown Source)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
   at java.lang.reflect.Method.invoke(Method.java:601)
   at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
   at org.alfresco.repo.security.permissions.impl.AlwaysProceedMethodInterceptor.invoke(AlwaysProceedMethodInterceptor.java:34)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
   at org.alfresco.repo.security.permissions.impl.ExceptionTranslatorMethodInterceptor.invoke(ExceptionTranslatorMethodInterceptor.java:46)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
   at org.alfresco.repo.audit.AuditMethodInterceptor.invoke(AuditMethodInterceptor.java:159)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
   at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
   at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
   at $Proxy268.executeScript(Unknown Source)
   at org.alfresco.repo.action.executer.ScriptActionExecuter.executeImpl(ScriptActionExecuter.java:164)
   at org.alfresco.repo.action.executer.ActionExecuterAbstractBase.execute(ActionExecuterAbstractBase.java:241)
   at org.alfresco.repo.action.ActionServiceImpl.directActionExecution(ActionServiceImpl.java:822)
   at org.alfresco.repo.action.executer.CompositeActionExecuter.executeImpl(CompositeActionExecuter.java:66)
   at org.alfresco.repo.action.executer.ActionExecuterAbstractBase.execute(ActionExecuterAbstractBase.java:241)
   at org.alfresco.repo.action.ActionServiceImpl.directActionExecution(ActionServiceImpl.java:822)
   at org.alfresco.repo.action.ActionServiceImpl.executeActionImpl(ActionServiceImpl.java:723)
   at org.alfresco.repo.action.AsynchronousActionExecutionQueueImpl$ActionExecutionWrapper$1$1.execute(AsynchronousActionExecutionQueueImpl.java:405)
   at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:433)
   at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:304)
   at org.alfresco.repo.action.AsynchronousActionExecutionQueueImpl$ActionExecutionWrapper$1.doWork(AsynchronousActionExecutionQueueImpl.java:414)
   at org.alfresco.repo.security.authentication.AuthenticationUtil.runAs(AuthenticationUtil.java:529)
   at org.alfresco.repo.action.AsynchronousActionExecutionQueueImpl$ActionExecutionWrapper.run(AsynchronousActionExecutionQueueImpl.java:417)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
   at java.lang.Thread.run(Thread.java:722)
Caused by: org.alfresco.error.AlfrescoRuntimeException: 083057438 ReferenceError: "siteShortName" is not defined. (workspace://SpacesStore/24a9ab04-142b-4a78-ac8a-5330a5c6615c#1)
   at org.alfresco.repo.jscript.RhinoScriptProcessor.executeScriptImpl(RhinoScriptProcessor.java:516)
   at org.alfresco.repo.jscript.RhinoScriptProcessor.execute(RhinoScriptProcessor.java:248)



¿Qué debo poner algo…?

Muchas gracias otra vez!!

angelborroy
Community Manager Community Manager
Community Manager
Prueba con lo siguiente:

var group = groups.getGroup("site_"+ document.siteShortName +"_SiteManager");
group.addAuthority("admin");


Debería funcionar en reglas definidas para cualquier carpeta que esté dentro de un Sitio, no funcionará en reglas definidas para carpetas que estén en el Repositorio.
Hyland Developer Evangelist

Lo he probado todo, ya funciona! miles de gracias!! Este foro sería bueno para ayudar a alguien como yo jejeje

Gracias!
Getting started

Tags


Find what you came for

We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.