<!-- 
RSS generated by JIRA (9.4.2#940002-sha1:46d1a51de284217efdcb32434eab47a99af2938b) at Mon Feb 12 08:35:42 CET 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>Magnolia - Issue tracker</title>
    <link>https://jira.magnolia-cms.com</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-uk</language>    <build-info>
        <version>9.4.2</version>
        <build-number>940002</build-number>
        <build-date>19-01-2023</build-date>
    </build-info>


<item>
            <title>[MGNLUI-318] Deletion of assigned roles and/or groups should be prevented  </title>
                <link>https://jira.magnolia-cms.com/browse/MGNLUI-318</link>
                <project id="10625" key="MGNLUI">Magnolia UI</project>
                    <description>&lt;p&gt;at the very least a message should warn beforehand that a given role/group is assigned to an existing (AND enabled?) user.&lt;/p&gt;</description>
                <environment></environment>
        <key id="26732">MGNLUI-318</key>
            <summary>Deletion of assigned roles and/or groups should be prevented  </summary>
                <type id="3" iconUrl="https://jira.magnolia-cms.com/secure/viewavatar?size=xsmall&amp;avatarId=10898&amp;avatarType=issuetype">Task</type>
                                            <priority id="2" iconUrl="https://jira.magnolia-cms.com/images/icons/priorities/critical.svg">Critical</priority>
                        <status id="6" iconUrl="https://jira.magnolia-cms.com/images/icons/statuses/closed.png" description="The issue is considered finished, the resolution is correct. Issues which are not closed can be reopened.">Closed</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="1">Fixed</resolution>
                                        <assignee username="jchocholacek">Jozef Chocholacek</assignee>
                                    <reporter username="fgrilli">Federico Grilli</reporter>
                        <labels>
                    </labels>
                <created>Mon, 3 Dec 2012 14:56:29 +0100</created>
                <updated>Fri, 16 Aug 2013 11:15:13 +0200</updated>
                            <resolved>Tue, 16 Jul 2013 12:52:47 +0200</resolved>
                                    <version>5.0</version>
                                    <fixVersion>5.1</fixVersion>
                                    <component>security app</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>4</watches>
                                                                                                                <comments>
                            <comment id="66425" author="jchocholacek" created="Fri, 12 Jul 2013 15:17:14 +0200"  >&lt;p&gt;In contrary to the &lt;a href=&quot;https://jira.magnolia-cms.com/browse/MGNLUI-316&quot; title=&quot;Prevent users from deleting themselves&quot; class=&quot;issue-link&quot; data-issue-key=&quot;MGNLUI-316&quot;&gt;&lt;del&gt;MGNLUI-316&lt;/del&gt;&lt;/a&gt; where I&apos;ve opted for disabling the action for the node corresponding to the current user, here I will change the delete action itself (i.e. create new one) where I will check whether the role/group is already assigned, and display an error message to the user if so. &lt;/p&gt;</comment>
                            <comment id="66576" author="ehechinger" created="Tue, 16 Jul 2013 09:24:46 +0200"  >&lt;p&gt;In DeleteRoleAction&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;in getErrorMessage() you check&lt;br/&gt;
if (assignedTo == null || assignedTo.isEmpty()) {&lt;br/&gt;
but this is already done in the executeAfterConfirmation just before calling getErrorMessage8...&lt;/li&gt;
	&lt;li&gt;in getErrorMessage()&lt;br/&gt;
Should use StringBuffer instead of String concatenation&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Same remarks for DeleteGroupAction.&lt;/p&gt;

&lt;p&gt;Would it not be better to create an Abstract Action that expose getErrorMessage instead of duplicate them.&lt;/p&gt;

</comment>
                            <comment id="66595" author="dlipp" created="Tue, 16 Jul 2013 11:05:20 +0200"  >&lt;p&gt;I think there&apos;s more potential to avoid DRY - the two actions are almost identical. Two proposals to simplify: a) introduced common supertype e.g. AbstractDeleteGroupOrRoleAction (sry - can&apos;t think of a better name now) or even just have one DeleteGroupOrRoleAction that e.g. has a flag telling whether it&apos;s currently used for deleting a Group or a Role.&lt;/p&gt;</comment>
                            <comment id="66619" author="dlipp" created="Tue, 16 Jul 2013 14:03:57 +0200"  >&lt;p&gt;a) there&apos;s more potential to be DRY&lt;/p&gt;

&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;getUsersAndGroupsThisItemIsAssignedTo could be implemented in new abstract super type like:
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
    &lt;span class=&quot;code-keyword&quot;&gt;protected&lt;/span&gt; List&amp;lt;&lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt;&amp;gt; getUsersAndGroupsThisItemIsAssignedTo() &lt;span class=&quot;code-keyword&quot;&gt;throws&lt;/span&gt; RepositoryException {
        List&amp;lt;&lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt;&amp;gt; assignedTo = &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; ArrayList&amp;lt;&lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt;&amp;gt;();

        &lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt; groupName = getItem().getJcrItem().getName();
        &lt;span class=&quot;code-comment&quot;&gt;// users
&lt;/span&gt;        &lt;span class=&quot;code-keyword&quot;&gt;for&lt;/span&gt; (User user : Security.getUserManager().getAllUsers()) {
            &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (getGroupsOrRolesFor(user).contains(groupName)) {
                assignedTo.add(PREFIX_USER + user.getName());
            }
        }
        &lt;span class=&quot;code-comment&quot;&gt;// groups
&lt;/span&gt;        &lt;span class=&quot;code-keyword&quot;&gt;for&lt;/span&gt; (Group group : Security.getGroupManager().getAllGroups()) {
            &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (getGroupsOrRolesFor(group).contains(groupName)) {
                assignedTo.add(PREFIX_GROUP + group.getName());
            }
        }
        &lt;span class=&quot;code-keyword&quot;&gt;return&lt;/span&gt; assignedTo;
    }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;only getGroupsOrRolesFor(User) and getGroupsOrRolesFor(Group) have to be implemented in the subclasses&lt;/p&gt;

&lt;p&gt;b) we don&apos;t have i18n for error messages - so executeAfterConfirmation could just have the line&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
            log.error(&lt;span class=&quot;code-quote&quot;&gt;&quot;Cannot get the users/groups the group or role is assigned to.&quot;&lt;/span&gt;, e);
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt; and one log on the abstract supertype would be enough&lt;/p&gt;

&lt;p&gt;c) StringBuilder would be even better than StringBuffer - the builder isn&apos;t synchronized so it&apos;s much faster&lt;/p&gt;

&lt;p&gt;d) looks like there&apos;s no unit-tests for the new types - pls add&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                            <customfield id="customfield_14166" key="com.okapya.jira.checklist:checklist">
                        <customfieldname>Acceptance criteria</customfieldname>
                        <customfieldvalues>
                            
        <checklist>
        <![CDATA[
                            




                
                                    <div class="o-completion" style="display: flex; flex-shrink: 0;"><span  class="aui-lozenge aui-lozenge-complete" style="font-size: 12px; font-weight: normal; display: flex; flex-direction: row; align-items: center;" ><span style="padding-right: 4px; vertical-align: middle;"><svg width="15" height="15" viewBox="0 0 15 15" xmlns="http://www.w3.org/2000/svg" fill="white"><path clip-rule="evenodd" d="m10.41037,3.42544l-7.86501,0c-0.72395,0 -1.31084,0.58688 -1.31084,1.31084l0,7.86508c0,0.7239 0.58689,1.3108 1.31084,1.3108l7.86501,0c0.724,0 1.3109,-0.5869 1.3109,-1.3108l0,-7.86508c0,-0.72396 -0.5869,-1.31084 -1.3109,-1.31084zm-7.86501,-0.65542c-1.08593,0 -1.96626,0.88032 -1.96626,1.96626l0,7.86508c0,1.0859 0.88033,1.9662 1.96626,1.9662l7.86501,0c1.086,0 1.9663,-0.8803 1.9663,-1.9662l0,-7.86508c0,-1.08594 -0.8803,-1.96626 -1.9663,-1.96626l-7.86501,0z" fill-rule="evenodd"/><path d="m5.09049,10.18526l-1.82767,-1.82766l-0.78479,0.78479l2.61246,2.61246l5.38758,-5.38754l-0.78483,-0.78479l-4.60275,4.60274z"/></svg></span><span>Empty</span></span></div>
                        ]]>
    </checklist>


                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10111" key="com.atlassian.jira.toolkit:reporterdomain">
                        <customfieldname>Company</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>magnolia-cms.com</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_10031" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of First Response</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Fri, 26 Apr 2013 17:01:49 +0200</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_12730" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_14151" key="com.atlassian.jira.toolkit:message">
                        <customfieldname>Docu info</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10061" key="com.atlassian.jira.toolkit:lastusercommented">
                        <customfieldname>Last comm is not jira-dev</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>true</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10071" key="com.atlassian.jira.toolkit:lastupdaterorcommenter">
                        <customfieldname>Last participant</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>mmuehlebach</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_13136" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            10 years, 31 weeks, 5 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                            <customfield id="customfield_10020" key="com.atlassian.jira.toolkit:attachments">
                        <customfieldname>Number of attachments</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10150" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname>Number of comments</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>4.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10011" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>dlipp</customfieldvalue>
            <customfieldvalue>ehechinger</customfieldvalue>
            <customfieldvalue>fgrilli</customfieldvalue>
            <customfieldvalue>jchocholacek</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                <customfield id="customfield_10833" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i00auf:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10244" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1793</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_14167" key="com.okapya.jira.checklist:checklist">
                        <customfieldname>Task DoR</customfieldname>
                        <customfieldvalues>
                            
        <checklist>
        <![CDATA[
                            




                
                                    <div class="o-completion" style="display: flex; flex-shrink: 0;"><span  class="aui-lozenge aui-lozenge-complete" style="font-size: 12px; font-weight: normal; display: flex; flex-direction: row; align-items: center;" ><span style="padding-right: 4px; vertical-align: middle;"><svg width="15" height="15" viewBox="0 0 15 15" xmlns="http://www.w3.org/2000/svg" fill="white"><path clip-rule="evenodd" d="m10.41037,3.42544l-7.86501,0c-0.72395,0 -1.31084,0.58688 -1.31084,1.31084l0,7.86508c0,0.7239 0.58689,1.3108 1.31084,1.3108l7.86501,0c0.724,0 1.3109,-0.5869 1.3109,-1.3108l0,-7.86508c0,-0.72396 -0.5869,-1.31084 -1.3109,-1.31084zm-7.86501,-0.65542c-1.08593,0 -1.96626,0.88032 -1.96626,1.96626l0,7.86508c0,1.0859 0.88033,1.9662 1.96626,1.9662l7.86501,0c1.086,0 1.9663,-0.8803 1.9663,-1.9662l0,-7.86508c0,-1.08594 -0.8803,-1.96626 -1.9663,-1.96626l-7.86501,0z" fill-rule="evenodd"/><path d="m5.09049,10.18526l-1.82767,-1.82766l-0.78479,0.78479l2.61246,2.61246l5.38758,-5.38754l-0.78483,-0.78479l-4.60275,4.60274z"/></svg></span><span>Empty</span></span></div>
                        ]]>
    </checklist>


                        </customfieldvalues>
                    </customfield>
                                                                                                                                                    <customfield id="customfield_14145" key="com.intenso.jira.issue-templates:issue-templates-customfield">
                        <customfieldname>Template</customfieldname>
                        <customfieldvalues>
                            


                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                            <customfield id="customfield_15131" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Time in Discovery</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10032" key="com.atlassian.jira.ext.charting:timeinstatus">
                        <customfieldname>Time in Status</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        </customfields>
    </item>
</channel>
</rss>