Script cambiar contraseña alfresco

cancel
Showing results for 
Search instead for 
Did you mean: 
goja
Member II

Script cambiar contraseña alfresco

Hola a todos,

                   tengo que hacer un script para cambiar la contraseña de un usuario, el caso es qeu cuando cambian la contraseña de LDAP, se ejecute este script y cambie automáticamente la contraseña de alfresco con esa misma. No sé si sería usando algo así:
var usuario=people.getPerson(login);
usuario.properties["cm:password"]=password;
usuario.save();
Alguien ha hecho algo relacionado? También he mirado el change-password.jsp de alfresco, para ver cómo  lo hace él internamente, por si lo puedo hacer sin script, simular lo que hace Alfresco, pero no entiendo muchas cosas, como por ejemplo lo de UserBeans que no sé lo que es, ni msg. Smiley Sad

Muchas gracias a todos!!!
7 Replies
pjcaracuel_2349
Active Member II

Re: Script cambiar contraseña alfresco

Buenas Maria,

En su momento nuestro "guru" Adrian posteo un codigo que quizas podria servirte de algo
http://forums.alfresco.com/es/viewtopic.php?f=11&t=771

De todas maneras, no seria mas facil solo autenticar contra LDAP, cambian la password y no pasa nada, entran automaticamente con la nueva.

Saludos
goja
Member II

Re: Script cambiar contraseña alfresco

Hola Pedro,

voy a echarle un vistazo al enlace. Pues resulta que tenemos unos formularios en php que obligamos a que coincida la contraseña de LDAP con la de alfresco, porque son muy comodones y no quieren autenticar dos veces, entonces cogemos usuario y password de ldap para autenticar contra alfresco.
Y es lo que me toca… Smiley Sad

Muchas gracias.
goja
Member II

Re: Script cambiar contraseña alfresco

Hola a todos, estoy intentando entender sin saber jsp el siguiente archivo change-password.jsp de alfresco:
<%–
* Copyright (C) 2005-2007 Alfresco Software Limited.

* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.

* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU General Public License for more details.

* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

* As a special exception to the terms and conditions of version 2.0 of
* the GPL, you may redistribute this Program in connection with Free/Libre
* and Open Source Software ("FLOSS") applications as described in Alfresco's
* FLOSS exception.  You should have recieved a copy of the text describing
* the FLOSS exception, and it is also available here:
* http://www.alfresco.com/legal/licensing"
–%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="/WEB-INF/alfresco.tld" prefix="a" %>
<%@ taglib uri="/WEB-INF/repo.tld" prefix="r" %>

<%@ page buffer="32kb" contentType="text/html;charset=UTF-8" %>
<%@ page isELIgnored="false" %>
<%@ page import="org.alfresco.web.ui.common.PanelGenerator" %>

<r:page titleId="title_change_password">

<script language="JavaScript1.2">

window.onload = pageLoaded;

function pageLoaded()
{
document.getElementById("edit-pass:password").focus();
updateButtonState();
}

function updateButtonState()
{
if (document.getElementById("edit-pass:password").value.length == 0 ||
document.getElementById("edit-pass:confirm").value.length == 0)
{
document.getElementById("edit-pass:ok-button").disabled = true;
}
else
{
document.getElementById("edit-pass:ok-button").disabled = false;
}
}
</script>

<f:view>

<%– load a bundle of properties with I18N strings –%>
<f:loadBundle basename="alfresco.messages.webclient" var="msg"/>

<%– set the form name here –%>
<h:form acceptcharset="UTF-8" id="edit-pass">

<%– Main outer table –%>
<table cellspacing="0" cellpadding="2">

<%– Title bar –%>
<tr>
<td colspan="2">
<%@ include file="../parts/titlebar.jsp" %>
</td>
</tr>

<%– Main area –%>
<tr valign="top">
<%– Shelf –%>
<td>
<%@ include file="../parts/shelf.jsp" %>
</td>

<%– Work Area –%>
<td width="100%">
<table cellspacing="0" cellpadding="0" width="100%">
<%– Breadcrumb –%>
<%@ include file="../parts/breadcrumb.jsp" %>

<%– Status and Actions –%>
<tr>
<td style="background-image: url(<%=request.getContextPath()%>/images/parts/statuspanel_4.gif)" width="4"></td>
<td bgcolor="#dfe6ed">

<%– Status and Actions inner contents table –%>
<%– Generally this consists of an icon, textual summary and actions for the current object –%>
<table cellspacing="4" cellpadding="0" width="100%">
<tr>
<td width="32">
<h:graphicImage id="wizard-logo" url="/images/icons/edituser_large.gif" />
</td>
<td>
<div class="mainTitle"><h:outputText value="#{msg.change_password}" /></div>
<div class="mainSubText"><h:outputText value="#{msg.change_password_description}" /></div>
</td>
</tr>
</table>

</td>
<td style="background-image: url(<%=request.getContextPath()%>/images/parts/statuspanel_6.gif)" width="4"></td>
</tr>

<%– separator row with gradient shadow –%>
<tr>
<td><img src="<%=request.getContextPath()%>/images/parts/statuspanel_7.gif" width="4" height="9"></td>
<td style="background-image: url(<%=request.getContextPath()%>/images/parts/statuspanel_8.gif)"></td>
<td><img src="<%=request.getContextPath()%>/images/parts/statuspanel_9.gif" width="4" height="9"></td>
</tr>

<%– Details –%>
<tr valign=top>
<td style="background-image: url(<%=request.getContextPath()%>/images/parts/whitepanel_4.gif)" width="4"></td>
<td>
<table cellspacing="0" cellpadding="3" border="0" width="100%">
<tr>
<td width="100%" valign="top">

<a:errors message="#{msg.error_wizard}" styleClass="errorMessage" />

<% PanelGenerator.generatePanelStart(out, request.getContextPath(), "white", "white"); %>
<table cellpadding="2" cellspacing="2" border="0" width="100%">
<tr>
<td colspan="2"><h:outputText value="#{msg.change_password_instructions}" /></td>
</tr>
<tr><td colspan="2" class="paddingRow"></td></tr>
<tr>
<td><h:outputText value="#{msg.username}"/>:</td>
<td>
<h:outputText value="#{UsersBean.person.properties.userName}" />
</td>
</tr>
<tr>
<td><h:outputText value="#{msg.password}"/>:</td>
<td>
<h:inputSecret id="password" value="#{UsersBean.password}" size="35" maxlength="1024" validator="#{LoginBean.validatePassword}" onkeyup="updateButtonState();" onchange="updateButtonState();" /> *
 <h:message id="errors1" for="password" style="color:red" />
</td>
</tr>
<tr>
<td><h:outputText value="#{msg.confirm}"/>:</td>
<td>
<h:inputSecret id="confirm" value="#{UsersBean.confirm}" size="35" maxlength="1024" validator="#{LoginBean.validatePassword}" onkeyup="updateButtonState();" onchange="updateButtonState();" /> *
 <h:message id="errors2" for="confirm" style="color:red" />
</td>
</tr>
</table>
<% PanelGenerator.generatePanelEnd(out, request.getContextPath(), "white"); %>
</td>

<td valign="top">
<% PanelGenerator.generatePanelStart(out, request.getContextPath(), "greyround", "#F5F5F5"); %>
<table cellpadding="1" cellspacing="1" border="0">
<tr>
<td align="center">
<h:commandButton value="#{msg.finish_button}" id="ok-button" action="#{UsersBean.changePasswordOK}" styleClass="wizardButton" disabled="true" />
</td>
</tr>
<tr><td class="wizardButtonSpacing"></td></tr>
<tr>
<td align="center">
<h:commandButton value="#{msg.cancel_button}" action="dialog:close" styleClass="wizardButton" immediate="true" />
</td>
</tr>
</table>
<% PanelGenerator.generatePanelEnd(out, request.getContextPath(), "greyround"); %>
</td>
</tr>
</table>
</td>
<td style="background-image: url(<%=request.getContextPath()%>/images/parts/whitepanel_6.gif)" width="4"></td>
</tr>

<%– separator row with bottom panel graphics –%>
<tr>
<td><img src="<%=request.getContextPath()%>/images/parts/whitepanel_7.gif" width="4" height="4"></td>
<td width="100%" align="center" style="background-image: url(<%=request.getContextPath()%>/images/parts/whitepanel_8.gif)"></td>
<td><img src="<%=request.getContextPath()%>/images/parts/whitepanel_9.gif" width="4" height="4"></td>
</tr>

</table>
</td>
</tr>
</table>

</h:form>

</f:view>

<script>
updateButtonState();
</script>

</r:page>
Alguien sabría decirme #{msg.change_password}, qué es lo que es, y si estaría declarado en algún sitio, y si es así, dónde se encuentra?

Gracias. Un saludo.
pjcaracuel_2349
Active Member II

Re: Script cambiar contraseña alfresco

Buenas,

No es que yo este muy puesto en programacion, pero lo que hace #{msg.change_password} es mostrar el contenido de  la entrada del fichero de properties (webclient_es_ES.properties o el que estes utilizando)
# System Users messages
create_user=Crear usuario
change_password=Cambiar contrase\u00f1a
title_change_password=Cambiar la contrase\u00f1a del usuario
change_password_description=Use esta vista para cambiar la contrase\u00f1a de un usuario existente.
change_password_instructions=Introduzca la nueva contrase\u00f1a para este usuario.
show_all=Mostrar Todos

Saludos
pjcaracuel_2349
Active Member II

Re: Script cambiar contraseña alfresco

No se si lo habras visto ya, pero por si te sirve de ayuda en tu autenticacion con php.

http://forums.alfresco.com/en/viewtopic.php?f=21&t=14974

Saludos
goja
Member II

Re: Script cambiar contraseña alfresco

Hola, aquí seguimos dándole vueltas a esto, es lo que tiene no tener mucha idea.

En el foro en inglés (http://forums.alfresco.com/en/viewtopic.php?f=27&t=10212&p=33715&hilit=changePassword#p33715), comentaban que utilizaban un webservice para cambiar la contraseña y que le funcionaba con alfresco 2.1 (que es el que tenemos nosotros), e indicaban este código:

AuthenticationUtils.startSession("admin", "admin");
AdministrationServiceSoapBindingStub admin = WebServiceFactory.getAdministrationService();
admin.changePassword(username, oldpassword, newpassword);
AuthenticationUtils.endSession();
La pregunta es, dónde se guardan los webservices en alfresco?, consta de varios ficheros o de solo uno?

Muchas gracias por todo. Un saludo.
pjcaracuel_2349
Active Member II

Re: Script cambiar contraseña alfresco

Hola Maria,

Para usar los webservices, puedes bajarte ejemplos del SDK
http://wiki.alfresco.com/wiki/Web_Service_Samples_for_Java
Para su uso, te basta con poner en tu proyecto el siguiente jar
alfresco-web-service-client.jar

Saludos