On Welcome page of Jaspersoft, Login is based on Some Roles assigned to particular user ,as per that we have an access on Jaspersoft. If anyone wants to create their own user with Roles, they simply do it by making following changes in particular files.

Let us consider that we are creating following three different Users and Roles with some http://helicaltech.com/wp-admin/post.php?post=3624&action=editrequirement:

1)Create three different Users

i)Reports

ii)Dashboard

iii)Adhoc

2)Create three different Roles

i) ROLE_REPORT

ii)ROLE_ DASHBOARD

iii)ROLE_ ADHOC

3)Assign Role for each User As

i) For Report User Assign ROLE_ REPORTS

ii) For Dashboard User Assign ROLE_ DASHBOARD

iii) For Adhoc User Assign ROLE_ ADHOC

4) In MenuBar only View button should be their which contains only Repository option and for user other than above, it will show all Menus.

5)The Home page contains only three Containers which has only viewlist button at center

that is:

i)Reports

ii)Dashboards

iii) Ad Hoc Views

6) This three containers needs to be modified to display the text as:

i)Reports – Change the existing text to: Click on ‘View list’ to access all Reports in repository.

ii)Dashboards – Change text existing to: Click on ‘View list’ to access links to Dashboards.

iii)Ad Hoc Views – Change the existing text to: Click on ‘View list’ to access all AdHoc Views in Repository.

7) All text present in left side of Home Page will get removed.

Now we have do customization on JasperSoft to accomplish the requirement ,for that we requires to modify the following different files as below:

NOTE: After modifying the files, to see changes done on JasperSoft,it is important to firstly restart the tomcat-server, then and then only you are to able to see the changes.

1) To Grant the permissions for Users:

i)Navigate to the path : C:\Jaspersoft\jasperreports-server-5.6\apache-tomcat\webapps\jasperserver-pro\WEB-INF\jsp\modules\home

/* If this condition is true it redirects to HomePage1.js */<authz:authorize ifAnyGranted=”ROLE_REPORTS,ROLE_ DASHBOARD,ROLE_ ADHOC”><c:set var=”ModuleName” value=”home/HomePage1“/></authz:authorize> 

/* Else it redirects to HomePage.js */

<authz:authorize ifNotGranted=”ROLE_REPORTS,ROLE_DASHBOARD,ROLE_ADHOC”>

<c:set var=”ModuleName” value=”home/HomePage“/>

</authz:authorize>

 

/*Insert this line to add variable created above*/

<t:putAttribute name=”moduleName”>${ModuleName}</t:putAttribute>

 

ii)In that homeForNonDemo.jsp contains code related to grant permissions for the user,so here we have to grant permissions to User Report,Dashboard,Adhoc as follows:

iii) Firstly restart the server, now you are able to logged onto server using different three  users that is Reports,dashboard,AdHoc.

 

2)To change the HomePage which contains HomeView:

i)After logged in with above users, it will redirects to HomePage1

ii)Goto C:\Jaspersoft\jasperreports-server-5.6\apache-tomcat\webapps\jasperserver-   pro\scripts\home

iii)In that create .js file same as HomePage.js,but make following changes in HomePage1.js, which we are already create as HomeView1.js as HomeView.js.

HomeView = require(“home/view/HomeView1“)

 

3)To change the HomeView which contains different views we have to change:

i)From HomePage1 it will redirects to HomeView1

ii)Navigate to path : C:\Jaspersoft\jasperreports-server-5.6\apache- tomcat\webapps\jasperserver-pro\scripts\home\view

iii)create HomeView1.js as HomeView,it is having Listview and WorkflowView,homeTemplate add the ListView1,WorkflowView1,homeTemplate1.js files created by us.

ListView = require(“home/view/ListView1“),WorkflowView = require(“home/view/WorkflowView1“),homeTemplate = require(“text!home/template/homeTemplate1.htm“),

 

4)To change the text which the container displays:

i)Goto C:\Jaspersoft\jasperreports-server-5.6\apache-tomcat\webapps\jasperserver-pro\scripts\home\view

ii)In that ListView1.js file we need to modify the text as:

render: function () {var nothingToDisplayElement;if (this.collection.length > 0){//cleanup only for ‘nothing’ msg, no listeners to remove herethis.$el.html(“”);

this.collection.forEach(_.bind(function(model){

var name = model.get(‘name’);

               console.log(model);

                if (name == ‘dataSource’ || name == ‘domain’) {return;}

                if(name == ‘dashboard’) {

                model.set(‘description’,’Click on View list to access links to Dashboards in repository’);}

             if(name == ‘adhocView’) {

                model.set(‘description’,’Click on View list to access links to Ad hoc Views in repository’);}
if(name == ‘report’) {

                model.set(‘description’,’Click on View list to access links to Reports in repository’);}

var view = new this.initOptions.listElementView({ model: model });this.subviews.push(view);this.$el.append(view.render().$el);

},this)).

}else{

nothingToDisplayElement = _.template(nothingToDisplayTemplate, {message: this._msgNothingToDisplay});

this.$el.append(nothingToDisplayElement);

}

 

return this;

}

 

 

iv)It will change the containers display text.

5)To change the click event of the Viewlist presents on the container:

i)Navigate to C:\Jaspersoft\jasperreports-server-5.6\apache-tomcat\webapps\jasperserver-pro\scripts\home\view

ii)Goto workflowView1,change the path of template and modify click event as:

template = require(“text!home/template/workflowTemplate1.htm“),events: {     “click .button.left”: “clickOnLeftButton”,”click .button.center“: “clickOnRightButton” },

iii)Now you are able to see Viewlist at Middle.

6)To remove ViewTutorial from Containers:

i)Goto to C:\Jaspersoft\jasperreports-server-5.6\apache-tomcat\webapps\jasperserver-pro\scripts\home\Template

ii)In workflowTemplate.html comment or remove the text which shows the ViewTutorial as

<!–{{ if (tutorialControl) { }}<a href=”{{- tutorialControl.entity.url }}” target=”_blank” >{{- tutorialControl.label }}     </a>{{ } }}–>

 

7)To Remove Left Side text from Home Page:

i)Navigate to var C:\Jaspersoft\jasperreports-server-5.6\apache-tomcat\webapps\jasperserver-pro\scripts\home\Template

ii) Having homeTemplate1.html in that comment or remove the following text as:

<h2 class=”homeSidebar-title” >{{- welcomeMessage }}</h2>

 

8)To display View Menu having only Repository option:

i)Goto /var/lib/tomcat7/webapps/jasperserver-pro/WEB-INF/decorators

ii) In decorators.jsp modify as follows and add assign menu.search,menu.all to administrator

<context name=”main_view_mutton” test=”checkAuthenticationRoles” testArgs=”ROLE_SUPERUSER,ROLE_ADMINISTRATOR,ROLE_REPORTS,ROLE_DASHBOARD,ROLE_ADHOC”> <selectAction labelKey=”menu.repository”>

 

9)To hide Library Menu From Jaspersoft for Above Roles As:

i)Goto C:\Jaspersoft\jasperreports-server-5.6\apache-tomcat\webapps\jasperserver-pro\WEB-INF\decorators

ii) In decorator.jsp modify it as:

<js:authorize ifAllGranted=”ROLE_ADMINISTRATOR”><li id=”main_library” tabIndex=”-1″ class=”leaf”><p class=”wrap button”><span class=”icon”></span><spring:message code=”menu.library”/>

</p>

</li>

</js:authorize>

It means we are hiding the Library menu for Above Roles but it is Visible to Role Administrator.

10)To optimize your javascript code we need make change in js.config.properties file which is present at path:

C:\Jaspersoft\jasperreports-server-5.6\apache-tomcat\webapps\jasperserver-pro\WEB-INF

But now we don’t know to create the optimized js code because of that we will keep it as false:

# Control default value of javascript optimization in runtimejavascript.optimize=false

 

 Thanks,
Sayali Mahale

Leave a Reply