Octroi de droits d'accès aux outils de développement de thème

Par défaut, les outils de développement de thème sont disponibles uniquement pour l'administrateur. Vous pouvez accorder des droits d'accès pour la gestion des thèmes à d'autres utilisateurs et groupes d'utilisateurs, tels qu'une équipe de conception de thème.

Pour créer, supprimer et éditer des thèmes, les utilisateurs doivent disposer de droits d'accès à trois zones :
  1. Accès Affichage aux pages de développement de thème
  2. Accès Utilisateur aux portlets de développement de thème
  3. Accès Responsable à toutes les ressources WebDAV. Vous pouvez définir les droits d'accès Responsable au point d'entrée /wps/mycontenthandler/dav/fs-type1/. Lorsque vous accordez à des utilisateurs des droits d'accès à cette zone, ces utilisateurs disposent de droits d'accès en lecture, écriture et suppression sur tous les fichiers présents dans cette zone de WebDAV.
Pour autoriser les utilisateurs non-administrateurs à mettre à jour ou modifier des fichiers existants, procédez comme suit :
  1. Ouvrez une invite de commande et accédez au répertoire wp_profile_root/ConfigEngine.
  2. Exécutez la tâche ConfigEngine suivante.
    • AIX® HP-UX Linux Solarisz/OS® :
    • IBM® i: ConfigEngine.sh export-nodes -DWasPassword=wpsadmin -DPortalAdminPwd=wpsadmin -Dquery="/filestore/fs-type1/themes" -Dwp.content.repository.output.dir="c:\temp\jcr"
    • Windows : ConfigEngine.bat export-nodes -DWasPassword=wpsadmin -DPortalAdminPwd=wpsadmin -Dquery="/filestore/fs-type1/themes" -Dwp.content.repository.output.dir="c:\temp\jcr"
  3. Editez le fichier qui a été exporté dans le répertoire c:\temp\jcr. Ajoutez le rôle de gestionnaire à un utilisateur ou à un groupe en ajoutant le code suivant :
    • Code pour ajouter le rôle de gestionnaire à un utilisateur :
      <icm:role icm:actions="actionset:Manager,actions:Traverse,View,Edit,Add_Child,Delete,Join,">                                            
               <icm:principal icm:name="uid=testuser,o=defaultwimfilebasedrealm" icm:type="USER" />                                                  
           </icm:role>
    • Code pour ajouter le rôle de gestionnaire à un groupe :
      <icm:role icm:actions="actionset:Manager,actions:Traverse,View,Edit,Add_Child,Delete,Join,">
               <icm:principal icm:name="cn=mygroup,o=defaultWIMFileBasedRealm" icm:type="USER_GROUP" />
           </icm:role>
    Ajoutez-le après l'élément <icm:owner>. Voir le fragment de code complet ci-après.
    <icm:node>
    <icm:access>                                                         
      <icm:wps>                                                           
       <icm:owner>                                                        
        <icm:principal icm:name="uid=wpsadmin,o=defaultwimfilebasedrealm" icm:type="USER" />                                                   
       </icm:owner>                                                       
       <icm:role icm:actions="actionset:Manager,actions:Traverse,View,Edit,Add_Child,Delete,Join,">                                             
        <icm:principal icm:name="uid=testuser,o=defaultwimfilebasedrealm" icm:type="USER" />                                                   
       </icm:role>                                                          
      </icm:wps>                                                          
    </icm:access>                                                        
    </icm:node>       
  4. Importez le fichier à l'aide de la tâche ConfigEngine suivante.
    • AIX® HP-UX Linux Solarisz/OS®:
    • IBM® i: ConfigEngine.sh import-nodes -DWasPassword=wpsadmin -DPortalAdminPwd=wpsadmin -Dwp.content.repository.input.dir="c:\temp\jcr"
    • Windows : ConfigEngine.bat import-nodes -DWasPassword=wpsadmin -DPortalAdminPwd=wpsadmin -Dwp.content.repository.input.dir="c:\temp\jcr"
Vous pouvez accorder des droits XMLAccess aux utilisateurs. Créez des utilisateurs à l'aide du script suivant :
<request type="update" version="8.5.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="PortalConfig_8.5.0.xsd">
	<portal action="locate">

		<!-- Create a user -->
		<user action="update" name="ThemeUser" firstname="A" lastname="ThemeUser" password="secret">
			<description>A user to edit themes</description>
			<parameter name="preferredLanguage" type="string" update="set">en</parameter>
		</user>

		<!-- Create another user -->
		<user action="update" name="AnotherThemeUser" firstname="Another" lastname="ThemeUser" password="secret">
	       	<description>Another user to edit themes</description>
	       	<parameter name="preferredLanguage" type="string" update="set">en</parameter>
		</user>

	</portal>
</request>
Utilisez le script suivant pour accorder des droits d'accès à ces utilisateurs :
<request type="update" version="8.5.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="PortalConfig_8.5.0.xsd">
	<portal action="locate">

		<!-- Give the users access to manage themes -->
		<virtual-resource action="update" name="THEME_MANAGEMENT">
			<access-control>
				<role actionset="Manager" update="set">
					<mapping subjectid="ThemeUser" subjecttype="user" update="set"/>
					<mapping subjectid="AnotherThemeUser" subjecttype="user" update="set"/>
				</role>
			</access-control>
		</virtual-resource>

		<!-- Give the users access to use the Theme Manager portlet -->
		<web-app action="update" uid="com.ibm.wps.portlet.thememanager.webmod">
			<portlet-app action="update" uid="com.ibm.wps.portlet.thememanager">
				<portlet action="update" uniquename="wps.p.thememanager">
					<access-control externalized="false" owner="uid=wpsadmin,o=defaultWIMFileBasedRealm" private="false">
						<role actionset="User" update="set">
							<mapping subjectid="ThemeUser" subjecttype="user" update="set"/>
							<mapping subjectid="AnotherThemeUser" subjecttype="user" update="set"/>
						</role>
					</access-control>
				</portlet>
			</portlet-app>
		</web-app>

		<!-- Give the users access to use the Theme Creator portlet -->
		<web-app action="update" uid="com.ibm.wps.portlet.themecreator.webmod">
			<portlet-app action="update" uid="com.ibm.wps.portlet.themecreator">
				<portlet action="update" uniquename="wps.p.themecreator">
					<access-control externalized="false" owner="uid=wpsadmin,o=defaultWIMFileBasedRealm" private="false">
						<role actionset="User" update="set">
							<mapping subjectid="ThemeUser" subjecttype="user" update="set"/>
							<mapping subjectid="AnotherThemeUser" subjecttype="user" update="set"/>
						</role>
					</access-control>
				</portlet>
			</portlet-app>
		</web-app>
		
		<!-- Give the users access to use the Theme Properties portlet -->
		<web-app action="update" uid="com.ibm.wps.portlet.themeproperties.webmod">
			<portlet-app action="update" uid="com.ibm.wps.portlet.themeproperties">
				<portlet action="update" uniquename="wps.p.themeproperties">
					<access-control externalized="false" owner="uid=wpsadmin,o=defaultWIMFileBasedRealm" private="false">
						<role actionset="User" update="set">
							<mapping subjectid="ThemeUser" subjecttype="user" update="set"/>
							<mapping subjectid="AnotherThemeUser" subjecttype="user" update="set"/>
						</role>
					</access-control>
				</portlet>
			</portlet-app>
		</web-app>

		<!-- Give the users access to use the Theme Analyzer portlet -->
		<web-app action="update" uid="com.ibm.wps.portlet.themeoptanalyzer.webmod">
			<portlet-app action="update" uid="com.ibm.wps.portlet.themeoptanalyzer">
				<portlet action="update" uniquename="wps.p.themeoptanalyzer">
					<access-control externalized="false" owner="uid=wpsadmin,o=defaultWIMFileBasedRealm" private="false">
						<role actionset="User" update="set">
							<mapping subjectid="ThemeUser" subjecttype="user" update="set"/>
							<mapping subjectid="AnotherThemeUser" subjecttype="user" update="set"/>
						</role>
					</access-control>
				</portlet>
			</portlet-app>
		</web-app>

		<!-- Give the users access to view the Theme Development pages -->
		<content-node action="update" uniquename="ibm.portal.theme.development">           
			<access-control externalized="false" owner="uid=wpsadmin,o=defaultWIMFileBasedRealm" private="false">
				<role-block actionset="User" type="inheritance"/>
				<role actionset="User" update="set">
					<mapping subjectid="ThemeUser" subjecttype="user" update="set"/>
					<mapping subjectid="AnotherThemeUser" subjecttype="user" update="set"/>
				</role>
			</access-control>
		</content-node>

	</portal>
</request>
Vous pouvez également accorder des droits d'accès à des utilisateurs et à des groupes. Utilisez le script suivant pour créer des utilisateurs et des groupes :
<request type="update" version="8.5.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="PortalConfig_8.5.0.xsd">
	<portal action="locate">

		<!-- Create a user -->
		<user action="update" name="ThemeGroupUser" firstname="A" lastname="ThemeGroupUser" password="secret">
			<description>A user to be in the theme editors group</description>
			<parameter name="preferredLanguage" type="string" update="set">en</parameter>
		</user>

		<!-- Create another user -->
		<user action="update" name="AnotherThemeGroupUser" firstname="Another" lastname="ThemeGroupUser" password="secret">
			<description>Another user to be in the theme editors group</description>
			<parameter name="preferredLanguage" type="string" update="set">en</parameter>
		</user>

		<!-- Create a group to hold the two new users -->
		<group action="update" name="ThemeGroup">
			<description>A group of theme editors</description>
			<member-user update="set" id="ThemeGroupUser"/>
			<member-user update="set" id="AnotherThemeGroupUser"/>
		</group>

	</portal>
</request>
Accordez des droits d'accès à des utilisateurs et à des groupes à l'aide du script suivant :
<request type="update" version="8.5.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="PortalConfig_8.5.0.xsd">
	<portal action="locate">

		<!-- Give the user group access to manage themes -->
		<virtual-resource action="update" name="THEME_MANAGEMENT">
			<access-control>
				<role actionset="Manager" update="set">
					<mapping subjectid="ThemeGroup" subjecttype="user_group" update="set"/>
				</role>
			</access-control>
		</virtual-resource>

		<!-- Give the user group access to use the Theme Manager portlet -->
		<web-app action="update" uid="com.ibm.wps.portlet.thememanager.webmod">
			<portlet-app action="update" uid="com.ibm.wps.portlet.thememanager">
				<portlet action="update" uniquename="wps.p.thememanager">
					<access-control externalized="false" owner="uid=wpsadmin,o=defaultWIMFileBasedRealm" private="false">
						<role actionset="User" update="set">
							<mapping subjectid="ThemeGroup" subjecttype="user_group" update="set"/>
						</role>
					</access-control>
				</portlet>
			</portlet-app>
		</web-app>

		<!-- Give the user group access to use the Theme Creator portlet -->
		<web-app action="update" uid="com.ibm.wps.portlet.themecreator.webmod">
			<portlet-app action="update" uid="com.ibm.wps.portlet.themecreator">
				<portlet action="update" uniquename="wps.p.themecreator">
					<access-control externalized="false" owner="uid=wpsadmin,o=defaultWIMFileBasedRealm" private="false">
						<role actionset="User" update="set">
							<mapping subjectid="ThemeGroup" subjecttype="user_group" update="set"/>
						</role>
					</access-control>
				</portlet>
			</portlet-app>
		</web-app>

		<!-- Give the user group access to use the Theme Properties portlet -->
		<web-app action="update" uid="com.ibm.wps.portlet.themeproperties.webmod">
			<portlet-app action="update" uid="com.ibm.wps.portlet.themeproperties">
				<portlet action="update" uniquename="wps.p.themeproperties">
					<access-control externalized="false" owner="uid=wpsadmin,o=defaultWIMFileBasedRealm" private="false">
						<role actionset="User" update="set">
							<mapping subjectid="ThemeGroup" subjecttype="user_group" update="set"/>
						</role>
					</access-control>
				</portlet>
			</portlet-app>
		</web-app>

		<!-- Give the user group access to use the Theme Analyzer portlet -->
		<web-app action="update" uid="com.ibm.wps.portlet.themeoptanalyzer.webmod">
			<portlet-app action="update" uid="com.ibm.wps.portlet.themeoptanalyzer">
				<portlet action="update" uniquename="wps.p.themeoptanalyzer">
					<access-control externalized="false" owner="uid=wpsadmin,o=defaultWIMFileBasedRealm" private="false">
						<role actionset="User" update="set">
							<mapping subjectid="ThemeGroup" subjecttype="user_group" update="set"/>
						</role>
					</access-control>
				</portlet>
			</portlet-app>
		</web-app>

		<!-- Give the user group access to view the Theme Development pages -->
		<content-node action="update" uniquename="ibm.portal.theme.development">
			<access-control externalized="false" owner="uid=wpsadmin,o=defaultWIMFileBasedRealm" private="false">
				<role-block actionset="User" type="inheritance"/>
				<role actionset="User" update="set">
					<mapping subjectid="ThemeGroup" subjecttype="user_group" update="set"/>
				</role>
			</access-control>
		</content-node>

	</portal>
</request>