/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.core.security.user; import com.enonic.cms.api.client.model.user.UserInfo; import com.enonic.cms.api.plugin.ext.userstore.UserStoreConfig; import com.enonic.cms.api.plugin.ext.userstore.UserStoreConfigField; import com.enonic.cms.api.plugin.ext.userstore.UserFields; import com.enonic.cms.core.user.field.UserInfoTransformer; public class ReadOnlyUserFieldValidator { private UserStoreConfig userStoreConfig; public ReadOnlyUserFieldValidator( UserStoreConfig userStoreConfig ) { this.userStoreConfig = userStoreConfig; } public void validate( UserInfo userInfo ) { validate( new UserInfoTransformer().toUserFields( userInfo ) ); } public void validate( UserFields userFields ) { for ( final UserStoreConfigField userFieldConfig : userStoreConfig.getUserFieldConfigs() ) { if ( userFieldConfig.isReadOnly() && userFields.hasField( userFieldConfig.getType() ) ) { throw new ReadOnlyUserFieldPolicyException( userFieldConfig.getType() ); } } } }