Skip to content
This repository was archived by the owner on Feb 12, 2022. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
.DS_Store
/config
.apex_file_properties
.apex_script
.debug
.describe
.session
.settings
*.sublime-project
118 changes: 59 additions & 59 deletions UserAccessVisualization/src/classes/UserAccessDetailsController.cls

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,10 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
public class MapHolder {
public class UserAccessMapHolder {
public Map<String, Boolean> it { get; private set; }

public MapHolder(Map<String, Boolean> it) {
public UserAccessMapHolder(Map<String, Boolean> it) {
this.it = it;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -29,23 +29,23 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
global class NameLabel implements Comparable {
global class UserAccessNameLabel implements Comparable {
public Id id { get; private set; }
public String apiName { get; private set; }
public String label { get; private set; }

public NameLabel(String apiName, String label) {
public UserAccessNameLabel(String apiName, String label) {
this(null, apiName, label);
}

public NameLabel(Id id, String apiName, String label) {
public UserAccessNameLabel(Id id, String apiName, String label) {
this.id = id;
this.apiName = apiName;
this.label = label;
}

global Integer compareTo(Object obj) {
NameLabel other = (NameLabel) obj;
UserAccessNameLabel other = (UserAccessNameLabel) obj;
return label.compareTo(other.label);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,9 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-->
<apex:component >
<apex:attribute name="rows" type="NameLabel[]" required="true" description="Permission sets to display"/>
<apex:attribute name="headings" type="NameLabel[]" required="true" description="Column headings"/>
<apex:attribute name="enabledCols" type="MapHolder" description="A map encapsulating whether column should be displayed"/>
<apex:attribute name="rows" type="UserAccessNameLabel[]" required="true" description="Permission sets to display"/>
<apex:attribute name="headings" type="UserAccessNameLabel[]" required="true" description="Column headings"/>
<apex:attribute name="enabledCols" type="UserAccessMapHolder" description="A map encapsulating whether column should be displayed"/>
<apex:attribute name="tableClass" type="String" description="CSS class for table"/>
<apex:attribute name="columnClass" type="String" description="CSS class for each column"/>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@
<ApexComponent xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>25.0</apiVersion>
<description>This is a generic template for Visualforce Component. With this template, you may adjust the default elements and values and add new elements and values.</description>
<label>PermsetAccessTable</label>
<label>UserAccessPermsetAccessTable</label>
</ApexComponent>
41 changes: 24 additions & 17 deletions UserAccessVisualization/src/pages/UserAccessDetails.page
Original file line number Diff line number Diff line change
Expand Up @@ -29,28 +29,35 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-->
<apex:page controller="UserAccessDetailsController" setup="true">
<apex:stylesheet value="{!URLFOR($Resource.jQuery, 'css/smoothness/jquery-ui-1.8.16.custom.css')}"/>
<apex:stylesheet value="{!URLFOR($Resource.css)}"/>
<apex:page controller="UserAccessDetailsController" setup="true" sidebar="false">
<apex:stylesheet value="{!URLFOR($Resource.UserAccessJQuery, 'css/smoothness/jquery-ui-1.8.16.custom.css')}"/>
<apex:stylesheet value="{!URLFOR($Resource.UserAccessCSS)}"/>

<apex:includeScript value="{!URLFOR($Resource.jQuery, 'js/jquery-1.6.2.min.js')}"/>
<apex:includeScript value="{!URLFOR($Resource.jQuery, 'js/jquery-ui-1.8.16.custom.min.js')}"/>
<apex:includeScript value="{!URLFOR($Resource.js)}"/>
<apex:includeScript value="{!URLFOR($Resource.UserAccessJQuery, 'js/jquery-1.6.2.min.js')}"/>
<apex:includeScript value="{!URLFOR($Resource.UserAccessJQuery, 'js/jquery-ui-1.8.16.custom.min.js')}"/>
<apex:includeScript value="{!URLFOR($Resource.UserAccessJS)}"/>

<apex:messages/>

<apex:form >
<apex:outputPanel layout="none">
<apex:outputPanel layout="none" rendered="{!ISNULL($CurrentPage.parameters.uid)}">
<apex:pageBlock title="Error Processing Request">
No user id specified
</apex:pageBlock>
</apex:outputPanel>
<apex:outputPanel layout="none" rendered="{!NOT(ISNULL($CurrentPage.parameters.uid))}">
<apex:sectionHeader title="User Access Details" subtitle="{!userFullName}"/>

<apex:pageBlock title="User Permissions">
<c:PermsetAccessTable tableClass="userPermTable"
<c:UserAccessPermsetAccessTable tableClass="userPermTable"
rows="{!permsetInfo}"
headings="{!userPermLabels}"
enabledCols="{!userPermStatus}">
<div style="width: 21px">
<apex:image value="/img/checkbox_checked.gif" alt="Checked" styleClass="checkImg"
title="Checked" rendered="{!userPerms[row.Id][heading.apiName]}"/>
</div>
</c:PermsetAccessTable>
</c:UserAccessPermsetAccessTable>
</apex:pageBlock>

<apex:pageBlock title="Object Information">
Expand All @@ -65,7 +72,7 @@
<span class="permissionsmodifyallrecords_true">Modify All Records</span>
</apex:pageBlockButtons>

<c:PermsetAccessTable tableClass="objectPermTable" columnClass="objectColumn"
<c:UserAccessPermsetAccessTable tableClass="objectPermTable" columnClass="objectColumn"
rows="{!permsetInfo}"
headings="{!objectLabels}"
enabledCols="{!objectPermStatus}">
Expand All @@ -80,7 +87,7 @@
</apex:repeat>
</tr>
</table>
</c:PermsetAccessTable>
</c:UserAccessPermsetAccessTable>

<!-- Defines a JavaScript function we can call to reload the FLS table -->
<apex:actionFunction action="{!loadFls}" name="loadFls" rerender="flsTable"
Expand All @@ -97,7 +104,7 @@

<apex:outputPanel id="flsTable" layout="block" styleClass="flsTableContainer">
<div class="flsTableContainerHeading">Field Level Security: {!flsObjectType}</div>
<c:PermsetAccessTable tableClass="flsTable" columnClass="flsColumn"
<c:UserAccessPermsetAccessTable tableClass="flsTable" columnClass="flsColumn"
rows="{!permsetInfo}"
headings="{!fieldLabels}"
enabledCols="{!fieldStatus}">
Expand All @@ -110,29 +117,29 @@
</apex:repeat>
</tr>
</table>
</c:PermsetAccessTable>
</c:UserAccessPermsetAccessTable>
</apex:outputPanel>
</apex:outputPanel>
</apex:pageBlock>

<apex:pageBlock title="Apex Classes">
<c:PermsetAccessTable tableClass="apexClassTable" rows="{!permsetInfo}" headings="{!classNames}"
<c:UserAccessPermsetAccessTable tableClass="apexClassTable" rows="{!permsetInfo}" headings="{!classNames}"
enabledCols="{!classStatus}">
<div style="width: 21px">
<apex:image value="/img/checkbox_checked.gif" alt="Checked" styleClass="checkImg"
title="Checked" rendered="{!apexClasses[row.Id][heading.apiName]}"/>
</div>
</c:PermsetAccessTable>
</c:UserAccessPermsetAccessTable>
</apex:pageBlock>

<apex:pageBlock title="Visual Force Pages">
<c:PermsetAccessTable tableClass="vfPageTable" rows="{!permsetInfo}" headings="{!pageNames}"
<c:UserAccessPermsetAccessTable tableClass="vfPageTable" rows="{!permsetInfo}" headings="{!pageNames}"
enabledCols="{!pageStatus}">
<div style="width: 21px">
<apex:image value="/img/checkbox_checked.gif" alt="Checked" styleClass="checkImg"
title="Checked" rendered="{!pages[row.Id][heading.apiName]}"/>
</div>
</c:PermsetAccessTable>
</c:UserAccessPermsetAccessTable>
</apex:pageBlock>
</apex:outputPanel>
</apex:form>
Expand Down