Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / productivity / SharePoint

Hide Fields using Permission Levels in SharePoint using Java Script

5.00/5 (2 votes)
13 Aug 2014CPOL1 min read 14.4K  
Hide Fields using Permission Levels in SharePoint using JavaScript

Introduction

Welcome to a new important tip for all developers where we will hide the form fields based on their permission we require.

So suppose I have a form with 10 fields and I want few of them should be visible only to certain users, so what will I do?

Let’s hit the topic.

  • First, create a group and keep all users you want to have access in all fields in a form in that group.
  • Other users who have access to the form but no access to those special fields can be added anywhere in the site to any permission level.
  • Now in that form, add the following JavaScript code in new, edit as well as view item.
  • For me, I have hidden Status, any comments, reviewed by and Response fields for general users.
  • Now what I am doing is, I am calling sp services to check whether the logged in user is one among my 'Request Team' group.
  • If he is not, he will not be able to view, edit or create the above fields.
  • But if he is one among the users in the group, he will be able to see all other fields as he has special rights to see them.

The code is as follows:

JavaScript
<script type="text/javascript">    
$(document).ready(function () {
  $("Select[title$='Status']").closest('tr').hide();
$("textarea[title$='Any Comments']").parent('span').parent('td').parent('tr').hide();
$("Select[title$='Reviewed By']").closest('tr').hide();
$("[title$='Response']").closest('tr').hide();
    $().SPServices({
        operation: "GetGroupCollectionFromUser",
        userLoginName: $().SPServices.SPGetCurrentUser(),
        async: false,
        completefunc: function (xData, Status) {
            if (($(xData.responseXML).find("Group[Name='Request Team']").length == 1)) {
              $("Select[title$='Status']").closest('tr').show();
$("textarea[title$='Any Comments']").parent('span').parent('td').parent('tr').show();
$("Select[title$='Reviewed By']").closest('tr').show();
$("[title$='Response']").closest('tr').show();
            }
        }
    });
});
</script>

Don’t you think this is a neat job rather than working on Infopath forms and setting up the rules?

Keep learning.

Cheers!

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)