Class PersonServiceImpl

    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method Description
      void afterCommit()
      Process clean up any duplicates that were flagged during the transaction.
      void beforeCreateNode​(org.alfresco.service.cmr.repository.NodeRef parentRef, org.alfresco.service.namespace.QName assocTypeQName, org.alfresco.service.namespace.QName assocQName, org.alfresco.service.namespace.QName nodeTypeQName)
      Called before a new node is created.
      void beforeCreateNodeValidation​(org.alfresco.service.cmr.repository.NodeRef parentRef, org.alfresco.service.namespace.QName assocTypeQName, org.alfresco.service.namespace.QName assocQName, org.alfresco.service.namespace.QName nodeTypeQName)  
      void beforeDeleteNode​(org.alfresco.service.cmr.repository.NodeRef nodeRef)
      Called before a node is deleted.
      void beforeDeleteNodeValidation​(org.alfresco.service.cmr.repository.NodeRef nodeRef)  
      int countPeople()
      Counts the number of persons registered with the system.
      boolean createMissingPeople()
      Does this service create people on demand if they are missing.
      org.alfresco.service.cmr.repository.NodeRef createPerson​(java.util.Map<org.alfresco.service.namespace.QName,​java.io.Serializable> properties)
      Create a new person with the given properties.
      org.alfresco.service.cmr.repository.NodeRef createPerson​(java.util.Map<org.alfresco.service.namespace.QName,​java.io.Serializable> properties, java.util.Set<java.lang.String> zones)
      Create a new person with the given properties, recording them against the given zone name (usually identifying an external user registry from which the details were obtained).
      void deletePerson​(java.lang.String userName)
      Delete the person identified by the given user name.
      void deletePerson​(org.alfresco.service.cmr.repository.NodeRef personRef)
      Delete the person identified by the given ref.
      void deletePerson​(org.alfresco.service.cmr.repository.NodeRef personRef, boolean deleteAuthentication)
      Delete the person identified by the given ref, and optionally delete the associated authentication, if one.
      boolean equals​(java.lang.Object obj)  
      java.util.Set<org.alfresco.service.cmr.repository.NodeRef> getAllPeople()
      Deprecated.
      see getPeople
      java.util.Set<org.alfresco.service.namespace.QName> getMutableProperties()
      Get the list of properties that are mutable.
      org.alfresco.query.PagingResults<PersonService.PersonInfo> getPeople​(java.lang.String pattern, java.util.List<org.alfresco.service.namespace.QName> filterStringProps, java.util.List<org.alfresco.util.Pair<org.alfresco.service.namespace.QName,​java.lang.Boolean>> sortProps, org.alfresco.query.PagingRequest pagingRequest)
      Get paged list of people optionally filtered and/or sorted Note: the pattern is applied to filter props (0 to 3) as startsWithIgnoreCase, which are OR'ed together, for example: cm:userName or cm:firstName or cm:lastName
      org.alfresco.query.PagingResults<PersonService.PersonInfo> getPeople​(java.lang.String pattern, java.util.List<org.alfresco.service.namespace.QName> filterStringProps, java.util.Set<org.alfresco.service.namespace.QName> inclusiveAspects, java.util.Set<org.alfresco.service.namespace.QName> exclusiveAspects, boolean includeAdministraotrs, java.util.List<org.alfresco.util.Pair<org.alfresco.service.namespace.QName,​java.lang.Boolean>> sortProps, org.alfresco.query.PagingRequest pagingRequest)
      Get paged list of people optionally filtered and/or sorted
      org.alfresco.query.PagingResults<PersonService.PersonInfo> getPeople​(java.util.List<org.alfresco.util.Pair<org.alfresco.service.namespace.QName,​java.lang.String>> stringPropFilters, boolean filterIgnoreCase, java.util.List<org.alfresco.util.Pair<org.alfresco.service.namespace.QName,​java.lang.Boolean>> sortProps, org.alfresco.query.PagingRequest pagingRequest)
      Deprecated.
      see getPeople(String pattern, List filterProps, List> sortProps, PagingRequest pagingRequest)
      org.alfresco.service.cmr.repository.NodeRef getPeopleContainer()
      Return the container that stores people.
      java.util.Set<org.alfresco.service.cmr.repository.NodeRef> getPeopleFilteredByProperty​(org.alfresco.service.namespace.QName propertyKey, java.io.Serializable propertyValue, int count)
      Get people filtered by the given property name/value pair.
      org.alfresco.service.cmr.repository.NodeRef getPerson​(java.lang.String userName)
      Get a person by userName.
      org.alfresco.service.cmr.repository.NodeRef getPerson​(java.lang.String userName, boolean autoCreateHomeFolderAndMissingPersonIfAllowed)
      Retrieve the person NodeRef for a username, optionally creating the home folder if it does not exist and optionally creating the person if they don't exist AND the PersonService is configured to allow the creation of missing persons PersonService.setCreateMissingPeople(boolean).
      PersonService.PersonInfo getPerson​(org.alfresco.service.cmr.repository.NodeRef personRef)
      Retrieve the person info for an existing person NodeRef
      org.alfresco.service.cmr.repository.NodeRef getPersonOrNull​(java.lang.String userName)
      Get a person by userName.
      java.lang.String getUserIdentifier​(java.lang.String caseSensitiveUserName)
      Given the case sensitive user name find the approriate identifier from the person service.
      boolean getUserNamesAreCaseSensitive()
      Are user names case sensitive?
      int hashCode()  
      void init()
      Spring bean init method
      boolean isEnabled​(java.lang.String userName)
      Is the specified user, enabled
      boolean isMutable()
      Can this service create, delete and update person information?
      void notifyPerson​(java.lang.String userName, java.lang.String password)
      Notifies a user by email that their account has been created, and the details of it.
      void onCreateNode​(org.alfresco.service.cmr.repository.ChildAssociationRef childAssocRef)
      Called when a new node has been created.
      void onUpdateProperties​(org.alfresco.service.cmr.repository.NodeRef nodeRef, java.util.Map<org.alfresco.service.namespace.QName,​java.io.Serializable> before, java.util.Map<org.alfresco.service.namespace.QName,​java.io.Serializable> after)
      When a uid is changed we need to create an alias for the old uid so permissions are not broken.
      void onUpdatePropertiesUser​(org.alfresco.service.cmr.repository.NodeRef nodeRef, java.util.Map<org.alfresco.service.namespace.QName,​java.io.Serializable> before, java.util.Map<org.alfresco.service.namespace.QName,​java.io.Serializable> after)
      Track the enabled/disabled flag on cm:user.
      boolean personExists​(java.lang.String caseSensitiveUserName)
      Check if a person exists.
      void setAclDAO​(AclDAO aclDao)  
      void setAuthenticationService​(MutableAuthenticationService authenticationService)  
      void setAuthorityService​(AuthorityService authorityService)  
      void setCannedQueryRegistry​(org.alfresco.util.registry.NamedObjectRegistry<org.alfresco.query.CannedQueryFactory<org.alfresco.service.cmr.repository.NodeRef>> cannedQueryRegistry)
      Set the registry of canned queries
      void setCreateMissingPeople​(boolean createMissingPeople)
      Set if missing people should be created.
      void setDictionaryService​(org.alfresco.service.cmr.dictionary.DictionaryService dictionaryService)  
      void setDuplicateMode​(java.lang.String duplicateMode)  
      void setEventPublisher​(org.alfresco.sync.repo.events.EventPublisher eventPublisher)  
      void setHomeFolderCreationDisabled​(boolean homeFolderCreationDisabled)
      Indicates if home folder creation should be disabled.
      void setHomeFolderCreationEager​(boolean homeFolderCreationEager)
      Indicates if home folders should be created when the person is created or delayed until first accessed.
      void setHomeFolderManager​(HomeFolderManager homeFolderManager)  
      void setIncludeAutoCreated​(boolean includeAutoCreated)  
      void setLastIsBest​(boolean lastIsBest)  
      void setNamespacePrefixResolver​(org.alfresco.service.namespace.NamespacePrefixResolver namespacePrefixResolver)  
      void setNodeService​(org.alfresco.service.cmr.repository.NodeService nodeService)  
      void setPermissionServiceSPI​(PermissionServiceSPI permissionServiceSPI)  
      void setPermissionsManager​(PermissionsManager permissionsManager)  
      void setPersonCache​(org.alfresco.repo.cache.SimpleCache<java.lang.String,​java.util.Set<org.alfresco.service.cmr.repository.NodeRef>> personCache)
      Set the username to person cache.
      void setPersonProperties​(java.lang.String userName, java.util.Map<org.alfresco.service.namespace.QName,​java.io.Serializable> properties)
      Set the properties on a person - some of these may be persisted in different locations - the home folder is created if it doesn't exist
      void setPersonProperties​(java.lang.String userName, java.util.Map<org.alfresco.service.namespace.QName,​java.io.Serializable> properties, boolean autoCreateHomeFolder)
      Set the properties on a person - some of these may be persisted in different locations.
      void setPolicyComponent​(PolicyComponent policyComponent)  
      void setProcessDuplicates​(boolean processDuplicates)  
      void setRepoAdminService​(RepoAdminService repoAdminService)  
      void setSearchService​(org.alfresco.service.cmr.search.SearchService searchService)  
      void setServiceRegistry​(ServiceRegistry serviceRegistry)  
      void setSingletonCache​(org.alfresco.repo.cache.SimpleCache<java.lang.String,​java.lang.Object> singletonCache)  
      void setStoreUrl​(java.lang.String storeUrl)  
      void setTenantService​(org.alfresco.repo.tenant.TenantService tenantService)  
      void setTransactionService​(TransactionService transactionService)  
      void setUserNameMatcher​(UserNameMatcher userNameMatcher)  
      static java.lang.String updateUsernameForTenancy​(java.lang.String username, org.alfresco.repo.tenant.TenantService tenantService)
      Helper for when creating new users and people: Updates the supplied username with any required tenant details, and ensures that the tenant domains match.
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • SYSTEM_FOLDER_SHORT_QNAME

        public static final java.lang.String SYSTEM_FOLDER_SHORT_QNAME
        See Also:
        Constant Field Values
      • PEOPLE_FOLDER_SHORT_QNAME

        public static final java.lang.String PEOPLE_FOLDER_SHORT_QNAME
        See Also:
        Constant Field Values
      • KEY_ALLOW_UID_UPDATE

        public static final java.lang.String KEY_ALLOW_UID_UPDATE
        See Also:
        Constant Field Values
    • Constructor Detail

      • PersonServiceImpl

        public PersonServiceImpl()
    • Method Detail

      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • init

        public void init()
        Spring bean init method
      • setNamespacePrefixResolver

        public void setNamespacePrefixResolver​(org.alfresco.service.namespace.NamespacePrefixResolver namespacePrefixResolver)
      • setAuthorityService

        public void setAuthorityService​(AuthorityService authorityService)
      • setDictionaryService

        public void setDictionaryService​(org.alfresco.service.cmr.dictionary.DictionaryService dictionaryService)
      • setPermissionServiceSPI

        public void setPermissionServiceSPI​(PermissionServiceSPI permissionServiceSPI)
      • setTransactionService

        public void setTransactionService​(TransactionService transactionService)
      • setServiceRegistry

        public void setServiceRegistry​(ServiceRegistry serviceRegistry)
      • setNodeService

        public void setNodeService​(org.alfresco.service.cmr.repository.NodeService nodeService)
      • setTenantService

        public void setTenantService​(org.alfresco.repo.tenant.TenantService tenantService)
      • setSingletonCache

        public void setSingletonCache​(org.alfresco.repo.cache.SimpleCache<java.lang.String,​java.lang.Object> singletonCache)
      • setSearchService

        public void setSearchService​(org.alfresco.service.cmr.search.SearchService searchService)
      • setRepoAdminService

        public void setRepoAdminService​(RepoAdminService repoAdminService)
      • setPolicyComponent

        public void setPolicyComponent​(PolicyComponent policyComponent)
      • setStoreUrl

        public void setStoreUrl​(java.lang.String storeUrl)
      • setUserNameMatcher

        public void setUserNameMatcher​(UserNameMatcher userNameMatcher)
      • setDuplicateMode

        public void setDuplicateMode​(java.lang.String duplicateMode)
      • setIncludeAutoCreated

        public void setIncludeAutoCreated​(boolean includeAutoCreated)
      • setLastIsBest

        public void setLastIsBest​(boolean lastIsBest)
      • setProcessDuplicates

        public void setProcessDuplicates​(boolean processDuplicates)
      • setHomeFolderManager

        public void setHomeFolderManager​(HomeFolderManager homeFolderManager)
      • setHomeFolderCreationEager

        public void setHomeFolderCreationEager​(boolean homeFolderCreationEager)
        Indicates if home folders should be created when the person is created or delayed until first accessed.
      • setHomeFolderCreationDisabled

        public void setHomeFolderCreationDisabled​(boolean homeFolderCreationDisabled)
        Indicates if home folder creation should be disabled.
      • setAclDAO

        public void setAclDAO​(AclDAO aclDao)
      • setPermissionsManager

        public void setPermissionsManager​(PermissionsManager permissionsManager)
      • setCannedQueryRegistry

        public void setCannedQueryRegistry​(org.alfresco.util.registry.NamedObjectRegistry<org.alfresco.query.CannedQueryFactory<org.alfresco.service.cmr.repository.NodeRef>> cannedQueryRegistry)
        Set the registry of canned queries
      • setPersonCache

        public void setPersonCache​(org.alfresco.repo.cache.SimpleCache<java.lang.String,​java.util.Set<org.alfresco.service.cmr.repository.NodeRef>> personCache)
        Set the username to person cache.
      • getPersonOrNull

        public org.alfresco.service.cmr.repository.NodeRef getPersonOrNull​(java.lang.String userName)
        Get a person by userName. The person is store in the repository. No missing person objects will be created as a side effect of this call. If the person is missing from the repository null will be returned.
        Specified by:
        getPersonOrNull in interface PersonService
        Parameters:
        userName - - the userName key to find the person
        Returns:
        Returns the existing person node, or null if does not exist.
        See Also:
        PersonService.createMissingPeople()
      • getPerson

        public org.alfresco.service.cmr.repository.NodeRef getPerson​(java.lang.String userName,
                                                                     boolean autoCreateHomeFolderAndMissingPersonIfAllowed)
        Retrieve the person NodeRef for a username, optionally creating the home folder if it does not exist and optionally creating the person if they don't exist AND the PersonService is configured to allow the creation of missing persons PersonService.setCreateMissingPeople(boolean). If not allowed to create missing persons and the person does not exist a NoSuchPersonException exception will be thrown.
        Specified by:
        getPerson in interface PersonService
        Parameters:
        userName - of the person NodeRef to retrieve
        autoCreateHomeFolderAndMissingPersonIfAllowed - If the person exits: should we create the home folder if it does not exist? If the person exists AND the creation of missing persons is allowed should we create both the person and home folder.
        Returns:
        NodeRef of the person as specified by the username
      • personExists

        public boolean personExists​(java.lang.String caseSensitiveUserName)
        Check if a person exists.
        Specified by:
        personExists in interface PersonService
        Parameters:
        caseSensitiveUserName - the user name
        Returns:
        Returns true if the user exists, otherwise false
      • createMissingPeople

        public boolean createMissingPeople()
        Does this service create people on demand if they are missing. If this is true, a call to getPerson() will create a person if they are missing.
        Specified by:
        createMissingPeople in interface PersonService
        Returns:
        true if people are created on demand and false otherwise.
      • getMutableProperties

        public java.util.Set<org.alfresco.service.namespace.QName> getMutableProperties()
        Get the list of properties that are mutable. Some service may only allow a limited list of properties to be changed. This may be those persisted in the repository or those that can be changed in some other implementation such as LDAP.
        Specified by:
        getMutableProperties in interface PersonService
        Returns:
        A set of QNames that identify properties that can be changed
      • setPersonProperties

        public void setPersonProperties​(java.lang.String userName,
                                        java.util.Map<org.alfresco.service.namespace.QName,​java.io.Serializable> properties)
        Set the properties on a person - some of these may be persisted in different locations - the home folder is created if it doesn't exist
        Specified by:
        setPersonProperties in interface PersonService
        Parameters:
        userName - - the user for which the properties should be set.
        properties - - the map of properties to set (as the NodeService)
      • setPersonProperties

        public void setPersonProperties​(java.lang.String userName,
                                        java.util.Map<org.alfresco.service.namespace.QName,​java.io.Serializable> properties,
                                        boolean autoCreateHomeFolder)
        Set the properties on a person - some of these may be persisted in different locations.
        Specified by:
        setPersonProperties in interface PersonService
        Parameters:
        userName - - the user for which the properties should be set.
        properties - - the map of properties to set (as the NodeService)
        autoCreateHomeFolder - should we auto-create the home folder if it doesn't exist.
      • isMutable

        public boolean isMutable()
        Can this service create, delete and update person information?
        Specified by:
        isMutable in interface PersonService
        Returns:
        true if this service allows mutation to people.
      • createPerson

        public org.alfresco.service.cmr.repository.NodeRef createPerson​(java.util.Map<org.alfresco.service.namespace.QName,​java.io.Serializable> properties)
        Create a new person with the given properties. The userName is one of the properties. Users with duplicate userNames are not allowed.
        Specified by:
        createPerson in interface PersonService
        Returns:
        NodeRef
      • createPerson

        public org.alfresco.service.cmr.repository.NodeRef createPerson​(java.util.Map<org.alfresco.service.namespace.QName,​java.io.Serializable> properties,
                                                                        java.util.Set<java.lang.String> zones)
        Create a new person with the given properties, recording them against the given zone name (usually identifying an external user registry from which the details were obtained). The userName is one of the properties. Users with duplicate userNames are not allowed.
        Specified by:
        createPerson in interface PersonService
        Parameters:
        properties - the properties
        zones - a set if zones including the identifier for the external user registry owning the person information, or null or an empty set
        Returns:
        the node ref
      • getPeopleContainer

        public org.alfresco.service.cmr.repository.NodeRef getPeopleContainer()
        Return the container that stores people.
        Specified by:
        getPeopleContainer in interface PersonService
        Returns:
        NodeRef
      • deletePerson

        public void deletePerson​(java.lang.String userName)
        Delete the person identified by the given user name.
        Specified by:
        deletePerson in interface PersonService
        Parameters:
        userName - String
      • deletePerson

        public void deletePerson​(org.alfresco.service.cmr.repository.NodeRef personRef)
        Delete the person identified by the given ref.
        Specified by:
        deletePerson in interface PersonService
        Parameters:
        personRef - NodeRef
      • deletePerson

        public void deletePerson​(org.alfresco.service.cmr.repository.NodeRef personRef,
                                 boolean deleteAuthentication)
        Delete the person identified by the given ref, and optionally delete the associated authentication, if one.
        Specified by:
        deletePerson in interface PersonService
        Parameters:
        personRef - NodeRef
        deleteAuthentication - boolean
      • getAllPeople

        public java.util.Set<org.alfresco.service.cmr.repository.NodeRef> getAllPeople()
        Deprecated.
        see getPeople
        Get all the people we know about.
        Specified by:
        getAllPeople in interface PersonService
        Returns:
        a set of people in no specific order.
      • getPeople

        public org.alfresco.query.PagingResults<PersonService.PersonInfo> getPeople​(java.lang.String pattern,
                                                                                    java.util.List<org.alfresco.service.namespace.QName> filterStringProps,
                                                                                    java.util.List<org.alfresco.util.Pair<org.alfresco.service.namespace.QName,​java.lang.Boolean>> sortProps,
                                                                                    org.alfresco.query.PagingRequest pagingRequest)
        Get paged list of people optionally filtered and/or sorted Note: the pattern is applied to filter props (0 to 3) as startsWithIgnoreCase, which are OR'ed together, for example: cm:userName or cm:firstName or cm:lastName
        Specified by:
        getPeople in interface PersonService
        Parameters:
        pattern - pattern to apply to filter props - "startsWith" and "ignoreCase"
        filterStringProps - list of filter properties (these are OR'ed)
        sortProps - sort property, eg. cm:username ascending
        pagingRequest - skip, max + optional query execution id

        author janv
      • getPeople

        public org.alfresco.query.PagingResults<PersonService.PersonInfo> getPeople​(java.lang.String pattern,
                                                                                    java.util.List<org.alfresco.service.namespace.QName> filterStringProps,
                                                                                    java.util.Set<org.alfresco.service.namespace.QName> inclusiveAspects,
                                                                                    java.util.Set<org.alfresco.service.namespace.QName> exclusiveAspects,
                                                                                    boolean includeAdministraotrs,
                                                                                    java.util.List<org.alfresco.util.Pair<org.alfresco.service.namespace.QName,​java.lang.Boolean>> sortProps,
                                                                                    org.alfresco.query.PagingRequest pagingRequest)
        Get paged list of people optionally filtered and/or sorted
        Specified by:
        getPeople in interface PersonService
        Parameters:
        pattern - String
        filterStringProps - list of filter properties (with "startsWith" values), eg. cm:username "al" might match "alex", "alice", ...
        inclusiveAspects - if set, filter out any people that don't have one of these aspects
        exclusiveAspects - if set, filter out any people that do have one of these aspects
        includeAdministraotrs - true to include administrators in the results.
        sortProps - sort property, eg. cm:username ascending
        pagingRequest - skip, max + optional query execution id
      • getPeople

        public org.alfresco.query.PagingResults<PersonService.PersonInfo> getPeople​(java.util.List<org.alfresco.util.Pair<org.alfresco.service.namespace.QName,​java.lang.String>> stringPropFilters,
                                                                                    boolean filterIgnoreCase,
                                                                                    java.util.List<org.alfresco.util.Pair<org.alfresco.service.namespace.QName,​java.lang.Boolean>> sortProps,
                                                                                    org.alfresco.query.PagingRequest pagingRequest)
        Deprecated.
        see getPeople(String pattern, List filterProps, List> sortProps, PagingRequest pagingRequest)
        Get paged list of people optionally filtered and/or sorted
        Specified by:
        getPeople in interface PersonService
        Parameters:
        stringPropFilters - list of filter properties (with "startsWith" values), eg. cm:username "al" might match "alex", "alice", ...
        filterIgnoreCase - true to ignore case when filtering, false to be case-sensitive when filtering
        sortProps - sort property, eg. cm:username ascending
        pagingRequest - skip, max + optional query execution id

        author janv
      • onCreateNode

        public void onCreateNode​(org.alfresco.service.cmr.repository.ChildAssociationRef childAssocRef)
        Called when a new node has been created.
        Specified by:
        onCreateNode in interface NodeServicePolicies.OnCreateNodePolicy
        Parameters:
        childAssocRef - the created child association reference
      • beforeCreateNode

        public void beforeCreateNode​(org.alfresco.service.cmr.repository.NodeRef parentRef,
                                     org.alfresco.service.namespace.QName assocTypeQName,
                                     org.alfresco.service.namespace.QName assocQName,
                                     org.alfresco.service.namespace.QName nodeTypeQName)
        Description copied from interface: NodeServicePolicies.BeforeCreateNodePolicy
        Called before a new node is created.
        Specified by:
        beforeCreateNode in interface NodeServicePolicies.BeforeCreateNodePolicy
        Parameters:
        parentRef - the parent node reference
        assocTypeQName - the association type qualified name
        assocQName - the association qualified name
        nodeTypeQName - the node type qualified name
      • beforeCreateNodeValidation

        public void beforeCreateNodeValidation​(org.alfresco.service.cmr.repository.NodeRef parentRef,
                                               org.alfresco.service.namespace.QName assocTypeQName,
                                               org.alfresco.service.namespace.QName assocQName,
                                               org.alfresco.service.namespace.QName nodeTypeQName)
      • beforeDeleteNodeValidation

        public void beforeDeleteNodeValidation​(org.alfresco.service.cmr.repository.NodeRef nodeRef)
      • getUserIdentifier

        public java.lang.String getUserIdentifier​(java.lang.String caseSensitiveUserName)
        Given the case sensitive user name find the approriate identifier from the person service. If the system is case sensitive it will return the same string. If case insentive it will return the common object. If the user does not exist it will return null;
        Specified by:
        getUserIdentifier in interface PersonService
        Parameters:
        caseSensitiveUserName - String
        Returns:
        String
      • onUpdateProperties

        public void onUpdateProperties​(org.alfresco.service.cmr.repository.NodeRef nodeRef,
                                       java.util.Map<org.alfresco.service.namespace.QName,​java.io.Serializable> before,
                                       java.util.Map<org.alfresco.service.namespace.QName,​java.io.Serializable> after)
        When a uid is changed we need to create an alias for the old uid so permissions are not broken. This can happen when an already existing user is updated via LDAP e.g. migration to LDAP, or when a user is auto created and then updated by LDAP This is probably less likely after 3.2 and sync on missing person See https://issues.alfresco.com/jira/browse/ETWOTWO-389 (non-Javadoc)
        Specified by:
        onUpdateProperties in interface NodeServicePolicies.OnUpdatePropertiesPolicy
        Parameters:
        nodeRef - reference to the updated node
        before - the node's properties before the change
        after - the node's properties after the change
      • onUpdatePropertiesUser

        public void onUpdatePropertiesUser​(org.alfresco.service.cmr.repository.NodeRef nodeRef,
                                           java.util.Map<org.alfresco.service.namespace.QName,​java.io.Serializable> before,
                                           java.util.Map<org.alfresco.service.namespace.QName,​java.io.Serializable> after)
        Track the enabled/disabled flag on cm:user.
      • countPeople

        public int countPeople()
        Description copied from interface: PersonService
        Counts the number of persons registered with the system.
        Specified by:
        countPeople in interface PersonService
        Returns:
        int
      • updateUsernameForTenancy

        public static java.lang.String updateUsernameForTenancy​(java.lang.String username,
                                                                org.alfresco.repo.tenant.TenantService tenantService)
                                                         throws TenantDomainMismatchException
        Helper for when creating new users and people: Updates the supplied username with any required tenant details, and ensures that the tenant domains match. If Multi-Tenant is disabled, returns the same username.
        Throws:
        TenantDomainMismatchException
      • isEnabled

        public boolean isEnabled​(java.lang.String userName)
        Description copied from interface: PersonService
        Is the specified user, enabled
        Specified by:
        isEnabled in interface PersonService
        Returns:
        true = enabled.
      • setEventPublisher

        public void setEventPublisher​(org.alfresco.sync.repo.events.EventPublisher eventPublisher)