- Locate your
editmyprofile.vm
file under
<confluence_home>\confluence\users\editmyprofile.vm
- Edit this file with your favorite editor, such as Wordpad, Notepad or Notepad++ (recommended). The file looks something like this:
#macro (renderIfEdit $markup)
#trim()
#if ($editMode == true)
$!generalUtil.htmlEncode($markup)
#else
$!statusTextRenderer.render($markup)
#end
#end
#end
#set($viewingMyProfile = $personalInformationEntity.belongsTo($remoteUser))
<html>
<head>
<title>$generalUtil.htmlEncode($pageTitle)</title>
#requireResource("confluence.web.resources:aui-forms")
#requireResource("confluence.userstatus:userstatus-resources")
</head>
#if ($editMode)
#set($mode = "edit-profile-single")
#else
#set($mode = "edit-profile-three")
#end
#applyDecorator("root")
#decoratorParam("context" "profile")
#decoratorParam("mode" $mode)
#decoratorParam("helper" $action.helper)
#decoratorParam("infopanel-width" "200px")
<body>
<div class="profile-info #if(!$editMode)section-3#end">
#applyDecorator("form-aui")
#decoratorParam("formName" "editmyprofileform")
#decoratorParam("submitAction" "$req.contextPath/users/doeditmyprofile.action")
#decoratorParam("editAction" "$req.contextPath/users/editmyprofile.action")
#decoratorParam("editMode" "$editMode")
#if(!$editMode && $viewingMyProfile)<a href="$req.contextPath/users/editmyprofile.action" class="edit-link">$action.getText("edit.name")</a>#end
<h2 class="subheading first">$action.getText("profile.group.personal")</h2>
#form_xsrfToken()
<fieldset>
#if (!$settingsManager.getGlobalSettings().isExternalUserManagement() && !$userAccessor.isReadOnly($user))
#tag( "TextField" "label='fullname.name'" "name='fullName'" "size='50'" "theme='aui'" )
#tag( "TextField" "label='email.name'" "name='email'" "size='50'" "theme='aui'" )
#else
#if($editMode)
<strong class="extra-info">$action.getText('user.fields.readonly')</strong>
#end
#tag( "TextField" "label='fullname.name'" "name='fullName'" "size='50'" "theme='aui'" "readonly=true" )
#tag( "TextField" "label='email.name'" "name='email'" "size='50'" "theme='aui'" "readonly=true" )
#end
#foreach ($key in $action.getUserDetailsKeys("personal"))
#bodytag( "TextField" "label='confluence.user.profile.$key'" "name='userparam-$key'" "value=getUserProperty('$key')" "size='50'" "theme='aui'" )
#param ("renderWiki" $statusTextRenderer)
#end
#end
#if($editMode)
#bodytag ("Component" "name='personalInformation'" "template='textarea.vm'" "theme='aui'")
#param ("label" "$action.getText('personal.info')")
#param ("rows" 8)
#param ("cols" 70)
#param ("renderWiki" $blockWikiStyleRenderer)
#end
#end
</fieldset>
<h2 class="subheading">$action.getText("profile.group.business")</h2>
<fieldset>
#foreach ($key in $action.getUserDetailsKeys("business"))
#bodytag( "TextField" "label='confluence.user.profile.$key'" "name='userparam-$key'" "value=getUserProperty('$key')" "size='50'" "theme='aui'" )
#param ("renderWiki" $statusTextRenderer)
#end
#end
#if($editMode == true)
#parse ("/pages/includes/captcha-form-elements.vm")
#end
#if($viewingMyProfile == true && $editMode==true)
<br/>
#bodytag( "Submit" "theme='aui'" )
#param ("submitValue" "$action.getText('save.name')")
#end
#end
</fieldset>
#end
</div>
#if(!$editMode)
<div class="profile-main section-2">
<div>
#if($action.userStatusPluginEnabled && $action.currentStatus && !$editMode)
<div class="status-block #if($viewingMyProfile) current-user-latest-status#end">
<span class="status-text">$statusTextRenderer.render($action.currentStatus.status)</span>
<div class="status-actions">
<ul>
<li><a id="view-$action.currentStatus.id" href="$req.contextPath$action.currentStatus.urlPath" title="$action.dateFormatter.formatDateTime($action.currentStatus.lastModificationDate)">$action.formatFriendlyDate($action.currentStatus.lastModificationDate)</a></li>
#if ($viewingMyProfile == true)<li><a id="clear-$action.currentStatus.id" href="$req.contextPath$action.currentStatus.clearPath&#url_xsrfToken()">$action.getText("clear.name")</a></li>#end
</ul>
</div>
</div>
#end
#if($hasAboutMe)
<div class="profile-section" id="profile-about-me">
#if(!$editMode && $viewingMyProfile)<a href="$req.contextPath/users/editmyprofile.action" class="edit-link">$action.getText("edit.name")</a>#end
<h2 class="subheading">$action.getText("personal.info")</h2>
<div id="profile-about-me-content">$renderedAboutMe</div>
</div>
#end
<div class="profile-section" id="profile-status-list">
<h2 class="subheading">$action.getText("activity.name")</h2>
$helper.renderConfluenceMacro("
")
</div>
</div>
</div>
#end
</body>
#end
</html>
- This Red line above is just the Save and Cancel Button, you cannot remove other tags, or it will disappear from Profile Details.
- Let's comment what is shown in Green with <!-- and –>. And let's add a comment saying that the user cannot edit his profile. After the edit, you should have something like this:
#macro (renderIfEdit $markup)
#trim()
#if ($editMode == true)
$!generalUtil.htmlEncode($markup)
#else
$!statusTextRenderer.render($markup)
#end
#end
#end
#set($viewingMyProfile = $personalInformationEntity.belongsTo($remoteUser))
<html>
<head>
<title>$generalUtil.htmlEncode($pageTitle)</title>
#requireResource("confluence.web.resources:aui-forms")
#requireResource("confluence.userstatus:userstatus-resources")
</head>
#if ($editMode)
#set($mode = "edit-profile-single")
#else
#set($mode = "edit-profile-three")
#end
#applyDecorator("root")
#decoratorParam("context" "profile")
#decoratorParam("mode" $mode)
#decoratorParam("helper" $action.helper)
#decoratorParam("infopanel-width" "200px")
<body>
<div class="profile-info #if(!$editMode)section-3#end">
#applyDecorator("form-aui")
#decoratorParam("formName" "editmyprofileform")
#decoratorParam("submitAction" "$req.contextPath/users/doeditmyprofile.action")
#decoratorParam("editAction" "$req.contextPath/users/editmyprofile.action")
#decoratorParam("editMode" "$editMode")
#if(!$editMode && $viewingMyProfile)<a href="$req.contextPath/users/editmyprofile.action" class="edit-link">$action.getText("edit.name")</a>#end
<h2 class="subheading first">$action.getText("profile.group.personal")</h2>
#form_xsrfToken()
<fieldset>
#if (!$settingsManager.getGlobalSettings().isExternalUserManagement() && !$userAccessor.isReadOnly($user))
#tag( "TextField" "label='fullname.name'" "name='fullName'" "size='50'" "theme='aui'" )
#tag( "TextField" "label='email.name'" "name='email'" "size='50'" "theme='aui'" )
#else
#if($editMode)
<strong class="extra-info">$action.getText('user.fields.readonly')</strong>
#end
#tag( "TextField" "label='fullname.name'" "name='fullName'" "size='50'" "theme='aui'" "readonly=true" )
#tag( "TextField" "label='email.name'" "name='email'" "size='50'" "theme='aui'" "readonly=true" )
#end
#foreach ($key in $action.getUserDetailsKeys("personal"))
#bodytag( "TextField" "label='confluence.user.profile.$key'" "name='userparam-$key'" "value=getUserProperty('$key')" "size='50'" "theme='aui'" )
#param ("renderWiki" $statusTextRenderer)
#end
#end
#if($editMode)
#bodytag ("Component" "name='personalInformation'" "template='textarea.vm'" "theme='aui'")
#param ("label" "$action.getText('personal.info')")
#param ("rows" 8)
#param ("cols" 70)
#param ("renderWiki" $blockWikiStyleRenderer)
#end
#end
</fieldset>
<h2 class="subheading">$action.getText("profile.group.business")</h2>
<fieldset>
#foreach ($key in $action.getUserDetailsKeys("business"))
#bodytag( "TextField" "label='confluence.user.profile.$key'" "name='userparam-$key'" "value=getUserProperty('$key')" "size='50'" "theme='aui'" )
#param ("renderWiki" $statusTextRenderer)
#end
#end
#if($editMode == true)
#parse ("/pages/includes/captcha-form-elements.vm")
#end
<!--
#if($viewingMyProfile == true && $editMode==true)
<br/>
#bodytag( "Submit" "theme='aui'" )
#param ("submitValue" "$action.getText('save.name')")
#end
#end
-->
<p><font size="3" color="red">You cannot change your Profile, this is disabled.<br>
If you need to change anything contact the Admin.<br></font></p>
</fieldset>
#end
</div>
#if(!$editMode)
<div class="profile-main section-2">
<div>
#if($action.userStatusPluginEnabled && $action.currentStatus && !$editMode)
<div class="status-block #if($viewingMyProfile) current-user-latest-status#end">
<span class="status-text">$statusTextRenderer.render($action.currentStatus.status)</span>
<div class="status-actions">
<ul>
<li><a id="view-$action.currentStatus.id" href="$req.contextPath$action.currentStatus.urlPath" title="$action.dateFormatter.formatDateTime($action.currentStatus.lastModificationDate)">$action.formatFriendlyDate($action.currentStatus.lastModificationDate)</a></li>
#if ($viewingMyProfile == true)<li><a id="clear-$action.currentStatus.id" href="$req.contextPath$action.currentStatus.clearPath&#url_xsrfToken()">$action.getText("clear.name")</a></li>#end
</ul>
</div>
</div>
#end
#if($hasAboutMe)
<div class="profile-section" id="profile-about-me">
#if(!$editMode && $viewingMyProfile)<a href="$req.contextPath/users/editmyprofile.action" class="edit-link">$action.getText("edit.name")</a>#end
<h2 class="subheading">$action.getText("personal.info")</h2>
<div id="profile-about-me-content">$renderedAboutMe</div>
</div>
#end
<div class="profile-section" id="profile-status-list">
<h2 class="subheading">$action.getText("activity.name")</h2>
$helper.renderConfluenceMacro("
")
</div>
</div>
</div>
#end
</body>
#end
</html>
- Save the file. You can reload your page and see the changes. There is no need to restart Confluence.