mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
User Account enabled/disabled status now shown on User Details screen in new Administration Console.
Repository JavaScript API now supports getting/setting user account enabled status (admin authority required). Repository Template API now supports retrieving user account enabled status. Fixed up line endings on template-services-context.xml. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@13884 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -1,156 +1,159 @@
|
|||||||
<?xml version='1.0' encoding='UTF-8'?>
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
|
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
|
||||||
|
|
||||||
<beans>
|
<beans>
|
||||||
|
|
||||||
<bean id="templateService" class="org.alfresco.repo.processor.TemplateServiceImpl">
|
<bean id="templateService" class="org.alfresco.repo.processor.TemplateServiceImpl">
|
||||||
<property name="defaultTemplateEngine">
|
<property name="defaultTemplateEngine">
|
||||||
<value>freemarker</value>
|
<value>freemarker</value>
|
||||||
</property>
|
</property>
|
||||||
<property name="nodeService">
|
<property name="nodeService">
|
||||||
<ref bean="NodeService"/>
|
<ref bean="NodeService"/>
|
||||||
</property>
|
</property>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="baseTemplateProcessor" abstract="true" init-method="register">
|
<bean id="baseTemplateProcessor" abstract="true" init-method="register">
|
||||||
<property name="templateService">
|
<property name="templateService">
|
||||||
<ref bean="templateService"/>
|
<ref bean="templateService"/>
|
||||||
</property>
|
</property>
|
||||||
<property name="serviceRegistry">
|
<property name="serviceRegistry">
|
||||||
<ref bean="ServiceRegistry"/>
|
<ref bean="ServiceRegistry"/>
|
||||||
</property>
|
</property>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<!-- The beans are not thread safe and therefore we create one per request -->
|
<!-- The beans are not thread safe and therefore we create one per request -->
|
||||||
<bean id="freeMarkerProcessor" parent="baseTemplateProcessor" class="org.alfresco.repo.template.FreeMarkerProcessor">
|
<bean id="freeMarkerProcessor" parent="baseTemplateProcessor" class="org.alfresco.repo.template.FreeMarkerProcessor">
|
||||||
<property name="name">
|
<property name="name">
|
||||||
<value>freemarker</value>
|
<value>freemarker</value>
|
||||||
</property>
|
</property>
|
||||||
<property name="extension">
|
<property name="extension">
|
||||||
<value>ftl</value>
|
<value>ftl</value>
|
||||||
</property>
|
</property>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<!-- base config implementation that template extension beans extend from - for auto registration
|
<!-- base config implementation that template extension beans extend from - for auto registration
|
||||||
as a global template helper with the TemplateService -->
|
as a global template helper with the TemplateService -->
|
||||||
<bean id="baseTemplateImplementation" abstract="true" init-method="register">
|
<bean id="baseTemplateImplementation" abstract="true" init-method="register">
|
||||||
<property name="processor">
|
<property name="processor">
|
||||||
<ref bean="freeMarkerProcessor"/>
|
<ref bean="freeMarkerProcessor"/>
|
||||||
</property>
|
</property>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="avmExtension" parent="baseTemplateImplementation" class="org.alfresco.repo.template.AVM">
|
<bean id="avmExtension" parent="baseTemplateImplementation" class="org.alfresco.repo.template.AVM">
|
||||||
<property name="extensionName">
|
<property name="extensionName">
|
||||||
<value>avm</value>
|
<value>avm</value>
|
||||||
</property>
|
</property>
|
||||||
<property name="serviceRegistry">
|
<property name="serviceRegistry">
|
||||||
<ref bean="ServiceRegistry"/>
|
<ref bean="ServiceRegistry"/>
|
||||||
</property>
|
</property>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="sessionTemplateExtension" parent="baseTemplateImplementation" class="org.alfresco.repo.template.Session">
|
<bean id="sessionTemplateExtension" parent="baseTemplateImplementation" class="org.alfresco.repo.template.Session">
|
||||||
<property name="extensionName">
|
<property name="extensionName">
|
||||||
<value>session</value>
|
<value>session</value>
|
||||||
</property>
|
</property>
|
||||||
<property name="serviceRegistry">
|
<property name="serviceRegistry">
|
||||||
<ref bean="ServiceRegistry"/>
|
<ref bean="ServiceRegistry"/>
|
||||||
</property>
|
</property>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="classificationTemplateExtension" parent="baseTemplateImplementation" class="org.alfresco.repo.template.Classification">
|
<bean id="classificationTemplateExtension" parent="baseTemplateImplementation" class="org.alfresco.repo.template.Classification">
|
||||||
<property name="extensionName">
|
<property name="extensionName">
|
||||||
<value>classification</value>
|
<value>classification</value>
|
||||||
</property>
|
</property>
|
||||||
<property name="storeUrl">
|
<property name="storeUrl">
|
||||||
<value>${spaces.store}</value>
|
<value>${spaces.store}</value>
|
||||||
</property>
|
</property>
|
||||||
<property name="serviceRegistry">
|
<property name="serviceRegistry">
|
||||||
<ref bean="ServiceRegistry"/>
|
<ref bean="ServiceRegistry"/>
|
||||||
</property>
|
</property>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="workflowTemplateExtension" parent="baseTemplateImplementation" class="org.alfresco.repo.template.Workflow">
|
<bean id="workflowTemplateExtension" parent="baseTemplateImplementation" class="org.alfresco.repo.template.Workflow">
|
||||||
<property name="extensionName">
|
<property name="extensionName">
|
||||||
<value>workflow</value>
|
<value>workflow</value>
|
||||||
</property>
|
</property>
|
||||||
<property name="serviceRegistry">
|
<property name="serviceRegistry">
|
||||||
<ref bean="ServiceRegistry"/>
|
<ref bean="ServiceRegistry"/>
|
||||||
</property>
|
</property>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="peopleTemplateExtension" parent="baseTemplateImplementation" class="org.alfresco.repo.template.People">
|
<bean id="peopleTemplateExtension" parent="baseTemplateImplementation" class="org.alfresco.repo.template.People">
|
||||||
<property name="extensionName">
|
<property name="extensionName">
|
||||||
<value>people</value>
|
<value>people</value>
|
||||||
</property>
|
</property>
|
||||||
<property name="storeUrl">
|
<property name="storeUrl">
|
||||||
<value>${spaces.store}</value>
|
<value>${spaces.store}</value>
|
||||||
</property>
|
</property>
|
||||||
<property name="serviceRegistry">
|
<property name="serviceRegistry">
|
||||||
<ref bean="ServiceRegistry"/>
|
<ref bean="ServiceRegistry"/>
|
||||||
</property>
|
</property>
|
||||||
<property name="authorityDAO">
|
<property name="authorityDAO">
|
||||||
<ref bean="authorityDAO"/>
|
<ref bean="authorityDAO"/>
|
||||||
</property>
|
</property>
|
||||||
<property name="authorityService">
|
<property name="authorityService">
|
||||||
<ref bean="AuthorityService"/>
|
<ref bean="AuthorityService"/>
|
||||||
</property>
|
</property>
|
||||||
<property name="personService">
|
<property name="personService">
|
||||||
<ref bean="PersonService"/>
|
<ref bean="PersonService"/>
|
||||||
</property>
|
</property>
|
||||||
</bean>
|
<property name="mutableAuthenticationDao">
|
||||||
|
<ref bean="authenticationDao"/>
|
||||||
<bean id="siteTemplateExtension" parent="baseTemplateImplementation" class="org.alfresco.repo.template.Site">
|
</property>
|
||||||
<property name="extensionName">
|
</bean>
|
||||||
<value>site</value>
|
|
||||||
</property>
|
<bean id="siteTemplateExtension" parent="baseTemplateImplementation" class="org.alfresco.repo.template.Site">
|
||||||
<property name="serviceRegistry">
|
<property name="extensionName">
|
||||||
<ref bean="ServiceRegistry"/>
|
<value>site</value>
|
||||||
</property>
|
</property>
|
||||||
<property name="siteService">
|
<property name="serviceRegistry">
|
||||||
<ref bean="SiteService"/>
|
<ref bean="ServiceRegistry"/>
|
||||||
</property>
|
</property>
|
||||||
</bean>
|
<property name="siteService">
|
||||||
|
<ref bean="SiteService"/>
|
||||||
<bean id="hasAspectTemplateExtension" parent="baseTemplateImplementation" class="org.alfresco.repo.template.HasAspectMethod">
|
</property>
|
||||||
<property name="extensionName">
|
</bean>
|
||||||
<value>hasAspect</value>
|
|
||||||
</property>
|
<bean id="hasAspectTemplateExtension" parent="baseTemplateImplementation" class="org.alfresco.repo.template.HasAspectMethod">
|
||||||
</bean>
|
<property name="extensionName">
|
||||||
|
<value>hasAspect</value>
|
||||||
<bean id="hasPermissionTemplateExtension" parent="baseTemplateImplementation" class="org.alfresco.repo.template.HasPermissionMethod">
|
</property>
|
||||||
<property name="extensionName">
|
</bean>
|
||||||
<value>hasPermission</value>
|
|
||||||
</property>
|
<bean id="hasPermissionTemplateExtension" parent="baseTemplateImplementation" class="org.alfresco.repo.template.HasPermissionMethod">
|
||||||
</bean>
|
<property name="extensionName">
|
||||||
|
<value>hasPermission</value>
|
||||||
<bean id="messageTemplateExtension" parent="baseTemplateImplementation" class="org.alfresco.repo.template.I18NMessageMethod">
|
</property>
|
||||||
<property name="extensionName">
|
</bean>
|
||||||
<value>message</value>
|
|
||||||
</property>
|
<bean id="messageTemplateExtension" parent="baseTemplateImplementation" class="org.alfresco.repo.template.I18NMessageMethod">
|
||||||
</bean>
|
<property name="extensionName">
|
||||||
|
<value>message</value>
|
||||||
<bean id="dateCompareTemplateExtension" parent="baseTemplateImplementation" class="org.alfresco.repo.template.DateCompareMethod">
|
</property>
|
||||||
<property name="extensionName">
|
</bean>
|
||||||
<value>dateCompare</value>
|
|
||||||
</property>
|
<bean id="dateCompareTemplateExtension" parent="baseTemplateImplementation" class="org.alfresco.repo.template.DateCompareMethod">
|
||||||
</bean>
|
<property name="extensionName">
|
||||||
|
<value>dateCompare</value>
|
||||||
<bean id="incrementDateTemplateExtension" parent="baseTemplateImplementation" class="org.alfresco.repo.template.DateIncrementMethod">
|
</property>
|
||||||
<property name="extensionName">
|
</bean>
|
||||||
<value>incrementDate</value>
|
|
||||||
</property>
|
<bean id="incrementDateTemplateExtension" parent="baseTemplateImplementation" class="org.alfresco.repo.template.DateIncrementMethod">
|
||||||
</bean>
|
<property name="extensionName">
|
||||||
|
<value>incrementDate</value>
|
||||||
<bean id="xmlDateTemplateExtension" parent="baseTemplateImplementation" class="org.alfresco.repo.template.ISO8601DateFormatMethod">
|
</property>
|
||||||
<property name="extensionName">
|
</bean>
|
||||||
<value>xmldate</value>
|
|
||||||
</property>
|
<bean id="xmlDateTemplateExtension" parent="baseTemplateImplementation" class="org.alfresco.repo.template.ISO8601DateFormatMethod">
|
||||||
</bean>
|
<property name="extensionName">
|
||||||
|
<value>xmldate</value>
|
||||||
<bean id="cropContentTemplateExtension" parent="baseTemplateImplementation" class="org.alfresco.repo.template.CropContentMethod">
|
</property>
|
||||||
<property name="extensionName">
|
</bean>
|
||||||
<value>cropContent</value>
|
|
||||||
</property>
|
<bean id="cropContentTemplateExtension" parent="baseTemplateImplementation" class="org.alfresco.repo.template.CropContentMethod">
|
||||||
</bean>
|
<property name="extensionName">
|
||||||
|
<value>cropContent</value>
|
||||||
</beans>
|
</property>
|
||||||
|
</bean>
|
||||||
|
|
||||||
|
</beans>
|
@@ -29,6 +29,7 @@ import java.util.StringTokenizer;
|
|||||||
|
|
||||||
import org.alfresco.model.ContentModel;
|
import org.alfresco.model.ContentModel;
|
||||||
import org.alfresco.repo.search.impl.lucene.LuceneQueryParser;
|
import org.alfresco.repo.search.impl.lucene.LuceneQueryParser;
|
||||||
|
import org.alfresco.repo.security.authentication.AuthenticationUtil;
|
||||||
import org.alfresco.repo.security.authentication.MutableAuthenticationDao;
|
import org.alfresco.repo.security.authentication.MutableAuthenticationDao;
|
||||||
import org.alfresco.repo.security.authentication.PasswordGenerator;
|
import org.alfresco.repo.security.authentication.PasswordGenerator;
|
||||||
import org.alfresco.repo.security.authentication.UserNameGenerator;
|
import org.alfresco.repo.security.authentication.UserNameGenerator;
|
||||||
@@ -53,6 +54,7 @@ import org.mozilla.javascript.Scriptable;
|
|||||||
* Scripted People service for describing and executing actions against People & Groups.
|
* Scripted People service for describing and executing actions against People & Groups.
|
||||||
*
|
*
|
||||||
* @author davidc
|
* @author davidc
|
||||||
|
* @author kevinr
|
||||||
*/
|
*/
|
||||||
public final class People extends BaseScopableProcessorExtension
|
public final class People extends BaseScopableProcessorExtension
|
||||||
{
|
{
|
||||||
@@ -174,8 +176,7 @@ public final class People extends BaseScopableProcessorExtension
|
|||||||
* @return the person node (type cm:person) created or null if the person
|
* @return the person node (type cm:person) created or null if the person
|
||||||
* could not be created
|
* could not be created
|
||||||
*/
|
*/
|
||||||
public ScriptNode createPerson(boolean createUserAccount,
|
public ScriptNode createPerson(boolean createUserAccount, boolean setAccountEnabled)
|
||||||
boolean setAccountEnabled)
|
|
||||||
{
|
{
|
||||||
ParameterCheck.mandatory("createUserAccount", createUserAccount);
|
ParameterCheck.mandatory("createUserAccount", createUserAccount);
|
||||||
ParameterCheck.mandatory("setAccountEnabled", setAccountEnabled);
|
ParameterCheck.mandatory("setAccountEnabled", setAccountEnabled);
|
||||||
@@ -213,13 +214,41 @@ public final class People extends BaseScopableProcessorExtension
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Enable person's user account
|
* Enable user account. Can only be called by an Admin authority.
|
||||||
*
|
*
|
||||||
* @param userName user name of person for which to enable user account
|
* @param userName user name for which to enable user account
|
||||||
*/
|
*/
|
||||||
public void enablePerson(String userName)
|
public void enableAccount(String userName)
|
||||||
{
|
{
|
||||||
mutableAuthenticationDao.setEnabled(userName, true);
|
if (this.authorityService.isAdminAuthority(AuthenticationUtil.getFullyAuthenticatedUser()))
|
||||||
|
{
|
||||||
|
this.mutableAuthenticationDao.setEnabled(userName, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Disable user account. Can only be called by an Admin authority.
|
||||||
|
*
|
||||||
|
* @param userName user name for which to disable user account
|
||||||
|
*/
|
||||||
|
public void disableAccount(String userName)
|
||||||
|
{
|
||||||
|
if (this.authorityService.isAdminAuthority(AuthenticationUtil.getFullyAuthenticatedUser()))
|
||||||
|
{
|
||||||
|
this.mutableAuthenticationDao.setEnabled(userName, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return true if the specified user account is enabled.
|
||||||
|
*
|
||||||
|
* @param userName user name to test account
|
||||||
|
*
|
||||||
|
* @return true if account enabled, false if disabled
|
||||||
|
*/
|
||||||
|
public boolean isAccountEnabled(String userName)
|
||||||
|
{
|
||||||
|
return this.mutableAuthenticationDao.getEnabled(userName);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -246,7 +275,6 @@ public final class People extends BaseScopableProcessorExtension
|
|||||||
return person;
|
return person;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the collection of people stored in the repository.
|
* Get the collection of people stored in the repository.
|
||||||
* An optional filter query may be provided by which to filter the people collection.
|
* An optional filter query may be provided by which to filter the people collection.
|
||||||
|
@@ -30,6 +30,7 @@ import java.util.List;
|
|||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import org.alfresco.model.ContentModel;
|
import org.alfresco.model.ContentModel;
|
||||||
|
import org.alfresco.repo.security.authentication.MutableAuthenticationDao;
|
||||||
import org.alfresco.repo.security.authority.AuthorityDAO;
|
import org.alfresco.repo.security.authority.AuthorityDAO;
|
||||||
import org.alfresco.service.ServiceRegistry;
|
import org.alfresco.service.ServiceRegistry;
|
||||||
import org.alfresco.service.cmr.repository.NodeRef;
|
import org.alfresco.service.cmr.repository.NodeRef;
|
||||||
@@ -50,6 +51,7 @@ public class People extends BaseTemplateProcessorExtension
|
|||||||
private ServiceRegistry services;
|
private ServiceRegistry services;
|
||||||
private AuthorityDAO authorityDAO;
|
private AuthorityDAO authorityDAO;
|
||||||
private AuthorityService authorityService;
|
private AuthorityService authorityService;
|
||||||
|
private MutableAuthenticationDao mutableAuthenticationDao;
|
||||||
private PersonService personService;
|
private PersonService personService;
|
||||||
private StoreRef storeRef;
|
private StoreRef storeRef;
|
||||||
|
|
||||||
@@ -109,6 +111,16 @@ public class People extends BaseTemplateProcessorExtension
|
|||||||
this.personService = personService;
|
this.personService = personService;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the mutable authentication dao
|
||||||
|
*
|
||||||
|
* @param mutableAuthenticationDao Mutable Authentication DAO
|
||||||
|
*/
|
||||||
|
public void setMutableAuthenticationDao(MutableAuthenticationDao mutableAuthenticationDao)
|
||||||
|
{
|
||||||
|
this.mutableAuthenticationDao = mutableAuthenticationDao;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the Person given the username
|
* Gets the Person given the username
|
||||||
*
|
*
|
||||||
@@ -212,6 +224,18 @@ public class People extends BaseTemplateProcessorExtension
|
|||||||
ParameterCheck.mandatory("Person", person);
|
ParameterCheck.mandatory("Person", person);
|
||||||
return this.authorityService.isAdminAuthority((String)person.getProperties().get(ContentModel.PROP_USERNAME));
|
return this.authorityService.isAdminAuthority((String)person.getProperties().get(ContentModel.PROP_USERNAME));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return true if the specified user account is enabled.
|
||||||
|
*
|
||||||
|
* @param person to test
|
||||||
|
*
|
||||||
|
* @return true if account enabled, false if disabled
|
||||||
|
*/
|
||||||
|
public boolean isAccountEnabled(TemplateNode person)
|
||||||
|
{
|
||||||
|
return this.mutableAuthenticationDao.getEnabled((String)person.getProperties().get(ContentModel.PROP_USERNAME));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Contained Authorities
|
* Get Contained Authorities
|
||||||
|
Reference in New Issue
Block a user