From af4e9985ea0cfc96c7e875f2bc1d1f4cdf4cf592 Mon Sep 17 00:00:00 2001
From: satish <satish.dvnk@vtiger.com>
Date: Wed, 27 Jul 2016 13:07:16 +0530
Subject: [PATCH] Separating Create/Edit into 2 separate Role/Profile
 permissions

---
 include/Webservices/Create.php                |   2 +-
 include/Webservices/EntityMeta.php            |   1 +
 include/Webservices/VtigerActorOperation.php  |   2 +-
 include/Webservices/VtigerCRMActorMeta.php    |  10 +-
 include/Webservices/VtigerCRMObjectMeta.php   |  19 ++-
 languages/en_us/Settings/Profiles.php         |  35 ++---
 .../Calendar/CalendarViewPreProcess.tpl       |   3 +
 .../modules/Calendar/ListViewContents.tpl     |   2 +-
 .../Calendar/resources/CalendarView.js        |  72 ++++++-----
 .../modules/Settings/Profiles/DetailView.tpl  |  29 ++---
 .../modules/Settings/Profiles/EditView.tpl    |  12 +-
 .../Settings/Profiles/EditViewContents.tpl    |  12 +-
 .../Settings/Profiles/resources/Profiles.js   |  51 ++++++--
 layouts/vlayout/modules/Vtiger/Comment.tpl    | 120 +++++++++---------
 .../modules/Vtiger/CommentThreadList.tpl      |  98 +++++++-------
 .../vlayout/modules/Vtiger/CommonActions.tpl  |   2 +-
 .../modules/Vtiger/FindDuplicateContents.tpl  |  38 +++---
 .../modules/Vtiger/ListViewContents.tpl       |   2 +-
 layouts/vlayout/modules/Vtiger/MenuBar.tpl    |   2 +-
 .../vlayout/modules/Vtiger/RecentComments.tpl |  80 ++++++------
 .../modules/Vtiger/RelatedActivities.tpl      |  30 +++--
 .../modules/Vtiger/ShowAllComments.tpl        |  56 ++++----
 modules/Calendar/models/ListView.php          |   4 +-
 modules/Calendar/views/Calendar.php           |   7 +-
 modules/Campaigns/models/ListView.php         |   2 +-
 modules/Documents/Documents.php               |   2 +-
 modules/Documents/models/ListView.php         |   2 +-
 modules/Documents/views/AddFolder.php         |   2 +-
 modules/HelpDesk/actions/ConvertFAQ.php       |   2 +-
 modules/HelpDesk/models/DetailView.php        |   2 +-
 modules/Inventory/models/ListView.php         |   2 +-
 modules/Inventory/models/RelationListView.php |  42 +++---
 modules/Leads/models/Record.php               |   6 +-
 modules/Potentials/models/DetailView.php      |  14 +-
 modules/Users/DefaultDataPopulator.php        |   1 +
 modules/Vtiger/models/Action.php              |   2 +-
 modules/Vtiger/models/DetailView.php          |   2 +-
 modules/Vtiger/models/ListView.php            |   4 +-
 modules/Vtiger/models/RelationListView.php    |  56 ++++----
 modules/Vtiger/views/Edit.php                 |   7 +-
 modules/Vtiger/views/FindDuplicates.php       |  18 ++-
 modules/Vtiger/views/Import.php               |   2 +-
 modules/Vtiger/views/List.php                 |   1 +
 modules/Vtiger/views/QuickCreateAjax.php      |   2 +-
 packages/vtiger/mandatory/Import.zip          | Bin 52482 -> 52571 bytes
 packages/vtiger/mandatory/MailManager.zip     | Bin 124241 -> 124246 bytes
 packages/vtiger/optional/ModComments.zip      | Bin 25178 -> 25206 bytes
 packages/vtiger/optional/Projects.zip         | Bin 43561 -> 43561 bytes
 .../Import/modules/Import/actions/Data.php    |  66 +++++-----
 .../Import/modules/Import/helpers/Utils.php   |  12 +-
 .../modules/MailManager/MailManager.php       |   2 +-
 .../modules/MailManager/views/Relation.php    |   2 +
 .../modules/ModComments/views/Edit.php        |   7 +-
 .../modules/Project/models/DetailView.php     |   8 +-
 .../modules/ProjectTask/ProjectTask.php       |   2 +-
 tabdata.php                                   |   2 +-
 ...igration-split-create-edit-permissions.php |  38 ++++++
 57 files changed, 580 insertions(+), 419 deletions(-)
 create mode 100644 wip-migration-split-create-edit-permissions.php

diff --git a/include/Webservices/Create.php b/include/Webservices/Create.php
index 394ddf7d3..6c12d905a 100644
--- a/include/Webservices/Create.php
+++ b/include/Webservices/Create.php
@@ -33,7 +33,7 @@ function vtws_create($elementType, $element, $user) {
 
     $handler = new $handlerClass($webserviceObject, $user, $adb, $log);
     $meta = $handler->getMeta();
-    if ($meta->hasWriteAccess() !== true) {
+    if ($meta->hasCreateAccess() !== true) {
         throw new WebServiceException(WebServiceErrorCode::$ACCESSDENIED, "Permission to write is denied");
     }
 
diff --git a/include/Webservices/EntityMeta.php b/include/Webservices/EntityMeta.php
index ee1af2949..68845eafb 100644
--- a/include/Webservices/EntityMeta.php
+++ b/include/Webservices/EntityMeta.php
@@ -259,6 +259,7 @@ abstract class EntityMeta{
 	abstract function hasDeleteAccess();
 	abstract function hasAccess();
 	abstract function hasReadAccess();
+	abstract function hasCreateAccess();
 	abstract function hasWriteAccess();
 	abstract function getEntityName();
 	abstract function getEntityId();
diff --git a/include/Webservices/VtigerActorOperation.php b/include/Webservices/VtigerActorOperation.php
index 8099d3c3b..6b26288df 100644
--- a/include/Webservices/VtigerActorOperation.php
+++ b/include/Webservices/VtigerActorOperation.php
@@ -245,7 +245,7 @@ class VtigerActorOperation extends WebserviceEntityOperation {
 		$app_strings = VTWS_PreserveGlobal::getGlobal('app_strings');
 		$current_user = vtws_preserveGlobal('current_user',$this->user);;
 		$label = (isset($app_strings[$elementType]))? $app_strings[$elementType]:$elementType;
-		$createable = $this->meta->hasWriteAccess();
+		$createable = $this->meta->hasCreateAccess();
 		$updateable = $this->meta->hasWriteAccess();
 		$deleteable = $this->meta->hasDeleteAccess();
 		$retrieveable = $this->meta->hasReadAccess();
diff --git a/include/Webservices/VtigerCRMActorMeta.php b/include/Webservices/VtigerCRMActorMeta.php
index f36c5513e..cab7a7c92 100644
--- a/include/Webservices/VtigerCRMActorMeta.php
+++ b/include/Webservices/VtigerCRMActorMeta.php
@@ -241,7 +241,15 @@ class VtigerCRMActorMeta extends EntityMeta {
 	public function hasReadAccess(){
 		return true;
 	}
-	
+
+	public function hasCreateAccess() {
+		if (is_admin($this->user)) {
+			return true;
+		} else {
+			return false;
+		}
+	}
+
 	public function hasWriteAccess(){
 		if(is_admin($this->user)){
 			return true;
diff --git a/include/Webservices/VtigerCRMObjectMeta.php b/include/Webservices/VtigerCRMObjectMeta.php
index 46d70feb5..19ee9e0da 100644
--- a/include/Webservices/VtigerCRMObjectMeta.php
+++ b/include/Webservices/VtigerCRMObjectMeta.php
@@ -16,7 +16,8 @@ class VtigerCRMObjectMeta extends EntityMeta {
 	private $assign;
 	private $hasAccess;
 	private $hasReadAccess;
-	private $hasWriteAccess;
+	private $hasCreateAccess;
+	private $hasWriteAccess;//Edit Access
 	private $hasDeleteAccess;
 	private $assignUsers;
 	
@@ -34,6 +35,7 @@ class VtigerCRMObjectMeta extends EntityMeta {
 		$this->moduleFields = array();
 		$this->hasAccess = false;
 		$this->hasReadAccess = false;
+		$this->hasCreateAccess = false;
 		$this->hasWriteAccess = false;
 		$this->hasDeleteAccess = false;
 		$instance = vtws_getModuleInstance($this->webserviceObject);
@@ -84,6 +86,7 @@ class VtigerCRMObjectMeta extends EntityMeta {
 		if($active == false){
 			$this->hasAccess = false;
 			$this->hasReadAccess = false;
+			$this->hasCreateAccess = false;
 			$this->hasWriteAccess = false;
 			$this->hasDeleteAccess = false;
 			return;
@@ -93,6 +96,7 @@ class VtigerCRMObjectMeta extends EntityMeta {
 		if($is_admin == true || $profileGlobalPermission[1] == 0 || $profileGlobalPermission[2] == 0){
 			$this->hasAccess = true;
 			$this->hasReadAccess = true;
+			$this->hasCreateAccess = true;
 			$this->hasWriteAccess = true;
 			$this->hasDeleteAccess = true;
 		}else{
@@ -113,6 +117,7 @@ class VtigerCRMObjectMeta extends EntityMeta {
 				if($permission != 1 || $permission != "1"){
 					$this->hasAccess = true;
 					if($globalactionid == 2 || $globalactionid == "2"){
+						$this->hasCreateAccess = true;
 						$this->hasWriteAccess = true;
 						$this->hasDeleteAccess = true;
 					}else{
@@ -158,11 +163,14 @@ class VtigerCRMObjectMeta extends EntityMeta {
 						$this->hasDeleteAccess = true;
 					}else if($operation == 4 || $operation == "4"){
 						$this->hasReadAccess = true;
+					}else if($operation == 7 || $operation == "7"){
+						$this->hasCreateAccess = true;
 					}
 				}
 			}
 			if(!$standardDefined){
 				$this->hasReadAccess = true;
+				$this->hasCreateAccess = true;
 				$this->hasWriteAccess = true;
 				$this->hasDeleteAccess = true;
 			}
@@ -183,7 +191,14 @@ class VtigerCRMObjectMeta extends EntityMeta {
 		}
 		return $this->hasWriteAccess;
 	}
-	
+
+	function hasCreateAccess() {
+		if(!$this->meta) {
+			$this->retrieveMeta();
+		}
+		return $this->hasCreateAccess;
+	}
+
 	function hasReadAccess(){
 		if(!$this->meta){
 			$this->retrieveMeta();
diff --git a/languages/en_us/Settings/Profiles.php b/languages/en_us/Settings/Profiles.php
index f0e9de052..26c394bf2 100644
--- a/languages/en_us/Settings/Profiles.php
+++ b/languages/en_us/Settings/Profiles.php
@@ -17,10 +17,11 @@ $languageStrings = array(
 	'LBL_DESCRIPTION' => 'Description',
 	'LBL_DUPLICATE_RECORD' => 'Duplicate',
 	'LBL_DUPLICATES_EXIST' => 'Duplicate Profile Exists',
-        'LBL_EDIT_ALL_DESC' => 'Can edit all the module\'s information',
-        'LBL_EDIT_ALL' => 'Edit All',
+	'LBL_EDIT_ALL_DESC' => 'Can edit all the module\'s information',
+	'LBL_EDIT_ALL' => 'Edit All',
 	'LBL_EDIT_PRIVILIGES_FOR_THIS_PROFILE' => 'Edit privileges for this profile',
-	'LBL_EDIT_PRVILIGE' => 'Create/Edit',
+	'LBL_CREATE_PRVILIGE' => 'Create',
+	'LBL_EDIT_PRVILIGE' => 'Edit',
 	'LBL_EDIT_RECORD' => 'Edit',
 	'LBL_FIELD_AND_TOOL_PRVILIGES' => 'Field and Tool Privileges',
 	'LBL_FIELDS' => 'Fields',
@@ -32,25 +33,25 @@ $languageStrings = array(
 	'LBL_READ_ONLY' => 'Read only',
 	'LBL_TOOLS' => 'Tools',
 	'LBL_TRANSFER_ROLES_TO_PROFILE' => 'Transfer roles to profile',
-        'LBL_VIEW_ALL_DESC' => 'Can view all the module\'s information',
-        'LBL_VIEW_ALL' => 'View All',
+	'LBL_VIEW_ALL_DESC' => 'Can view all the module\'s information',
+	'LBL_VIEW_ALL' => 'View All',
 	'LBL_VIEW_PRVILIGE' => 'View',
 	'LBL_WRITE' => 'Write',
 	'Profiles' => 'Profiles',
 	'SINGLE_Profiles' => 'Profile',
-    
-        'Import' => 'Import',
-        'Export' => 'Export',
+
+	'Import' => 'Import',
+	'Export' => 'Export',
 	'Merge'  => 'Merge',
-        'ConvertLead' => 'Convert Lead',
-        'DuplicatesHandling' => 'Duplicates Handling',
-        'ReceiveIncomingCalls' => 'Receive Incoming Calls',
-        'MakeOutgoingCalls' => 'Make Outgoing Calls',
-        'Print' => 'Print',
-        
-         //Patch provided by http://trac.vtiger.com/cgi-bin/trac.cgi/ticket/7884
-        //Field names 
-        'Name' => 'Profile Name', 
+	'ConvertLead' => 'Convert Lead',
+	'DuplicatesHandling' => 'Duplicates Handling',
+	'ReceiveIncomingCalls' => 'Receive Incoming Calls',
+	'MakeOutgoingCalls' => 'Make Outgoing Calls',
+	'Print' => 'Print',
+
+	 //Patch provided by http://trac.vtiger.com/cgi-bin/trac.cgi/ticket/7884
+	//Field names 
+	'Name' => 'Profile Name', 
 );
 
 $jsLanguageStrings = array(
diff --git a/layouts/vlayout/modules/Calendar/CalendarViewPreProcess.tpl b/layouts/vlayout/modules/Calendar/CalendarViewPreProcess.tpl
index 490bb8d60..a54007762 100644
--- a/layouts/vlayout/modules/Calendar/CalendarViewPreProcess.tpl
+++ b/layouts/vlayout/modules/Calendar/CalendarViewPreProcess.tpl
@@ -18,5 +18,8 @@
 		<div class="span2 row-fluid">
 			{include file="SideBar.tpl"|vtemplate_path:$MODULE_NAME}
 		</div>
+		<input type="hidden" class="isRecordCreatable" value="{$IS_RECORD_CREATABLE}">
+		<input type="hidden" class="isModuleEditable" value="{$IS_MODULE_EDITABLE}">
+		<input type="hidden" class="isModuleDeletable" value="{$IS_MODULE_DELETABLE}">
 		<div class="contentsDiv span10 marginLeftZero">
 {/strip}
\ No newline at end of file
diff --git a/layouts/vlayout/modules/Calendar/ListViewContents.tpl b/layouts/vlayout/modules/Calendar/ListViewContents.tpl
index bed13072c..9f2c3d350 100755
--- a/layouts/vlayout/modules/Calendar/ListViewContents.tpl
+++ b/layouts/vlayout/modules/Calendar/ListViewContents.tpl
@@ -159,7 +159,7 @@
 			<tr>
 				<td>
 					{assign var=SINGLE_MODULE value="SINGLE_$MODULE"}
-					{vtranslate('LBL_EQ_ZERO')} {vtranslate($MODULE, $MODULE)} {vtranslate('LBL_FOUND')}.{if $IS_MODULE_EDITABLE} {vtranslate('LBL_CREATE')} <a href="{$MODULE_MODEL->getCreateRecordUrl()}">{vtranslate($SINGLE_MODULE, $MODULE)}</a>{/if}
+					{vtranslate('LBL_EQ_ZERO')} {vtranslate($MODULE, $MODULE)} {vtranslate('LBL_FOUND')}.{if $IS_RECORD_CREATABLE} {vtranslate('LBL_CREATE')} <a href="{$MODULE_MODEL->getCreateRecordUrl()}">{vtranslate($SINGLE_MODULE, $MODULE)}</a>{/if}
 				</td>
 			</tr>
 		</tbody>
diff --git a/layouts/vlayout/modules/Calendar/resources/CalendarView.js b/layouts/vlayout/modules/Calendar/resources/CalendarView.js
index 5ef342d31..276b3cd3a 100644
--- a/layouts/vlayout/modules/Calendar/resources/CalendarView.js
+++ b/layouts/vlayout/modules/Calendar/resources/CalendarView.js
@@ -62,17 +62,20 @@ jQuery.Class("Calendar_CalendarView_Js",{
 			aDeferred.resolve(this.calendarCreateView.clone(true,true));
 			return aDeferred.promise();
 		}
-		var progressInstance = jQuery.progressIndicator();
-		this.loadCalendarCreateView().then(
-			function(data){
-				progressInstance.hide();
-				thisInstance.calendarCreateView = data;
-				aDeferred.resolve(data.clone(true,true));
-			},
-			function(){
-				progressInstance.hide();
-			}
-		);
+
+		if (jQuery('.isRecordCreatable').val()) {
+			var progressInstance = jQuery.progressIndicator();
+			this.loadCalendarCreateView().then(
+				function(data){
+					progressInstance.hide();
+					thisInstance.calendarCreateView = data;
+					aDeferred.resolve(data.clone(true,true));
+				},
+				function(){
+					progressInstance.hide();
+				}
+			);
+		}
 		return aDeferred.promise();
 	},
 
@@ -501,15 +504,17 @@ jQuery.Class("Calendar_CalendarView_Js",{
                 var targetElement = jQuery(this).find('.fc-event-time');
                 var trashElement = jQuery(this).find('a.delete');
                 if(!trashElement.length) {
-                    if(!targetElement.length) {
-                        targetElement = jQuery(this).find('.fc-event-title');
-                            targetElement.append('<a class="delete" style="position:absolute;right:1px;" href="javascript:void(0)"><i class="icon-trash icon-white"></i></a>'); 
-                    }
-                    else {
-                        if(view.name == 'month') targetElement = jQuery(this).find('.fc-event-inner');
-                        targetElement.append('<a class="delete" style="position:absolute;right:1px;" href="javascript:void(0)"><i class="icon-trash icon-white"></i></a>');                    
-                    }
-                    thisInstance.registerEventDelete(targetElement,calEvent);
+					if (jQuery('.isModuleDeletable').val()) {
+						if(!targetElement.length) {
+							targetElement = jQuery(this).find('.fc-event-title');
+							targetElement.append('<a class="delete" style="position:absolute;right:1px;" href="javascript:void(0)"><i class="icon-trash icon-white"></i></a>'); 
+						}
+						else {
+							if(view.name == 'month') targetElement = jQuery(this).find('.fc-event-inner');
+							targetElement.append('<a class="delete" style="position:absolute;right:1px;" href="javascript:void(0)"><i class="icon-trash icon-white"></i></a>');                    
+						}
+						thisInstance.registerEventDelete(targetElement,calEvent);
+					}
                 }
                 else {
                     trashElement.removeClass('hide');
@@ -521,22 +526,29 @@ jQuery.Class("Calendar_CalendarView_Js",{
                 jQuery(this).find('.delete').addClass('hide');
 			}
 		}
+
+		if (!jQuery('.isModuleEditable').val()) {
+			config['editable'] = false;
+		}
+
 		if(typeof customConfig != 'undefined'){
 			config = jQuery.extend(config,customConfig);
 		}
 		calendarview.fullCalendar(config);
 
-		//To create custom button to create event or task
-		jQuery('<span class="pull-left"><button class="btn addButton">'+ app.vtranslate('LBL_ADD_EVENT_TASK') +'</button></span>')
-				.prependTo(calendarview.find('.fc-header .fc-header-right')).on('click', 'button', function(e){
-					thisInstance.getCalendarCreateView().then(function(data){
-						var headerInstance = new Vtiger_Header_Js();
-						headerInstance.handleQuickCreateData(data,{callbackFunction:function(data){
-								thisInstance.addCalendarEvent(data.result);
-						}});
-					});
+		if (jQuery('.isRecordCreatable').val()) {
+			//To create custom button to create event or task
+			jQuery('<span class="pull-left"><button class="btn addButton">'+ app.vtranslate('LBL_ADD_EVENT_TASK') +'</button></span>')
+			.prependTo(calendarview.find('.fc-header .fc-header-right')).on('click', 'button', function(e){
+				thisInstance.getCalendarCreateView().then(function(data){
+					var headerInstance = new Vtiger_Header_Js();
+					headerInstance.handleQuickCreateData(data,{callbackFunction:function(data){
+						thisInstance.addCalendarEvent(data.result);
+					}});
+				});
 
-				})
+			})
+		}
 		jQuery('<span class="pull-right marginLeft5px"><button class="btn"><i id="calendarSettings" class="icon-cog"></i></button></span>')
 		.prependTo(calendarview.find('.fc-header .fc-header-right')).on('click', 'button', function(e){
 			var params = {
diff --git a/layouts/vlayout/modules/Settings/Profiles/DetailView.tpl b/layouts/vlayout/modules/Settings/Profiles/DetailView.tpl
index e5799f0b9..8f2fa3a0f 100644
--- a/layouts/vlayout/modules/Settings/Profiles/DetailView.tpl
+++ b/layouts/vlayout/modules/Settings/Profiles/DetailView.tpl
@@ -58,22 +58,19 @@
 							<th width="27%" style="border-left: 1px solid #DDD !important;">
 								{vtranslate('LBL_MODULES', $QUALIFIED_MODULE)}
 							</th>
-							<th width="11%" style="border-left: 1px solid #DDD !important;">
-								<span class="horizontalAlignCenter">
-
-									&nbsp;{'LBL_VIEW_PRVILIGE'|vtranslate:$QUALIFIED_MODULE}
-								</span>
+							<th width="12%" style="border-left: 1px solid #DDD !important; text-align: center;">
+								<span>{'LBL_VIEW_PRVILIGE'|vtranslate:$QUALIFIED_MODULE}</span>
 							</th>
-							<th width="12%" style="border-left: 1px solid #DDD !important;">
-								<span class="horizontalAlignCenter" >
-
-									&nbsp;{'LBL_EDIT_PRVILIGE'|vtranslate:$QUALIFIED_MODULE}
-								</span>
+							<th width="12%" style="border-left: 1px solid #DDD !important; text-align: center;">
+								<span>{'LBL_CREATE_PRVILIGE'|vtranslate:$QUALIFIED_MODULE}</span>
+							</th>
+							<th width="12%" style="border-left: 1px solid #DDD !important; text-align: center;">
+								<span>{'LBL_EDIT_PRVILIGE'|vtranslate:$QUALIFIED_MODULE}</span>
 							</th>
-							<th width="11%" style="border-left: 1px solid #DDD !important;">
-								<span class="horizontalAlignCenter" >{'LBL_DELETE_PRVILIGE'|vtranslate:$QUALIFIED_MODULE}</span>
+							<th width="12%" style="border-left: 1px solid #DDD !important; text-align: center;">
+								<span>{'LBL_DELETE_PRVILIGE'|vtranslate:$QUALIFIED_MODULE}</span>
 							</th>
-							<th width="39%" style="border-left: 1px solid #DDD !important;" nowrap="nowrap">{'LBL_FIELD_AND_TOOL_PRVILIGES'|vtranslate:$QUALIFIED_MODULE}</th>
+							<th width="12%" style="border-left: 1px solid #DDD !important; text-align: center;" nowrap="nowrap">{'LBL_FIELD_AND_TOOL_PRVILIGES'|vtranslate:$QUALIFIED_MODULE}</th>
 						</tr>
 					</thead>
 					<tbody>
@@ -83,12 +80,12 @@
 								<td>
 									<img src="{if $RECORD_MODEL->hasModulePermission($PROFILE_MODULE)}{$ENABLE_IMAGE_PATH}{else}{$DISABLE_IMAGE_PATH}{/if}" class="alignMiddle" />&nbsp;{$PROFILE_MODULE->get('label')|vtranslate:$PROFILE_MODULE->getName()}
 								</td>
-								{assign var="BASIC_ACTION_ORDER" value=array(2,0,1)}
+								{assign var="BASIC_ACTION_ORDER" value=array(2,3,0,1)}
 								{foreach from=$BASIC_ACTION_ORDER item=ACTION_ID}
-									<td style="border-left: 1px solid #DDD !important;">
+									<td style="border-left: 1px solid #DDD !important; text-align: center;">
 										{assign var="ACTION_MODEL" value=$ALL_BASIC_ACTIONS[$ACTION_ID]}
 										{if !$IS_RESTRICTED_MODULE && $ACTION_MODEL->isModuleEnabled($PROFILE_MODULE)}
-											<img style="margin-left: 40%" class="alignMiddle" src="{if $RECORD_MODEL->hasModuleActionPermission($PROFILE_MODULE, $ACTION_MODEL)}{$ENABLE_IMAGE_PATH}{else}{$DISABLE_IMAGE_PATH}{/if}" />
+											<img class="alignMiddle" src="{if $RECORD_MODEL->hasModuleActionPermission($PROFILE_MODULE, $ACTION_MODEL)}{$ENABLE_IMAGE_PATH}{else}{$DISABLE_IMAGE_PATH}{/if}" />
 										{/if}
 									</td>
 								{/foreach}
diff --git a/layouts/vlayout/modules/Settings/Profiles/EditView.tpl b/layouts/vlayout/modules/Settings/Profiles/EditView.tpl
index d814a90ca..0057cf167 100644
--- a/layouts/vlayout/modules/Settings/Profiles/EditView.tpl
+++ b/layouts/vlayout/modules/Settings/Profiles/EditView.tpl
@@ -40,7 +40,7 @@
             <div class="summaryWidgetContainer">
                 <label class="checkbox">
                     <input type="hidden" name="viewall" value="0" />
-                    <input type="checkbox" name="viewall" {if $RECORD_MODEL->hasGlobalReadPermission()}checked="true"{/if} value="1" />
+                    <input type="checkbox" name="viewall" {if $RECORD_MODEL->hasGlobalReadPermission()}checked="true"{/if} value="1" />&nbsp;
                     {vtranslate('LBL_VIEW_ALL',$QUALIFIED_MODULE)}
                     <span style="margin-left:25px">
                         <i class="icon-info-sign"></i>
@@ -49,7 +49,7 @@
                 </label>
                 <label class="checkbox">
                     <input type="hidden" name="editall" value="0" />
-                    <input type="checkbox" name="editall" {if $RECORD_MODEL->hasGlobalWritePermission()}checked="true"{/if} value="1"/>
+                    <input type="checkbox" name="editall" {if $RECORD_MODEL->hasGlobalWritePermission()}checked="true"{/if} value="1"/>&nbsp;
                     {vtranslate('LBL_EDIT_ALL',$QUALIFIED_MODULE)}
                     <span style="margin-left:30px">
                         <i class="icon-info-sign"></i>
@@ -70,6 +70,10 @@
 								<input {if empty($RECORD_ID) && empty($IS_DUPLICATE_RECORD)} class="alignTop"  checked="true" {/if} type="checkbox" id="mainAction4CheckBox" />&nbsp;
 								{'LBL_VIEW_PRVILIGE'|vtranslate:$QUALIFIED_MODULE}
 							</th>
+							<th width="14%" style="border-left: 1px solid #DDD !important;">
+								<input {if empty($RECORD_ID) && empty($IS_DUPLICATE_RECORD)} class="alignTop" checked="true"{/if} type="checkbox" id="mainAction7CheckBox" />&nbsp;
+								{'LBL_CREATE_PRVILIGE'|vtranslate:$QUALIFIED_MODULE}
+							</th>
 							<th width="14%" style="border-left: 1px solid #DDD !important;">
 								<input {if empty($RECORD_ID) && empty($IS_DUPLICATE_RECORD)} class="alignTop" checked="true"{/if} type="checkbox" id="mainAction1CheckBox" />&nbsp;
 								{'LBL_EDIT_PRVILIGE'|vtranslate:$QUALIFIED_MODULE}
@@ -78,7 +82,7 @@
 								<input checked="true" class="alignTop" type="checkbox" id="mainAction2CheckBox" />&nbsp;
 								{'LBL_DELETE_PRVILIGE'|vtranslate:$QUALIFIED_MODULE}
 							</th>
-							<th width="28%" style="border-left: 1px solid #DDD !important;" nowrap="nowrap">{'LBL_FIELD_AND_TOOL_PRVILIGES'|vtranslate:$QUALIFIED_MODULE}</th>
+							<th width="14%" style="border-left: 1px solid #DDD !important;" nowrap="nowrap">{'LBL_FIELD_AND_TOOL_PRVILIGES'|vtranslate:$QUALIFIED_MODULE}</th>
 						</tr>
 					</thead>
 					<tbody>
@@ -91,7 +95,7 @@
 								<td>
 									<input class="modulesCheckBox alignTop" type="checkbox" name="permissions[{$TABID}][is_permitted]" data-value="{$TABID}" data-module-state="" {if $RECORD_MODEL->hasModulePermission($PROFILE_MODULE)}checked="true"{else} data-module-unchecked="true" {/if}> {$PROFILE_MODULE->get('label')|vtranslate:$PROFILE_MODULE->getName()}
 								</td>
-								{assign var="BASIC_ACTION_ORDER" value=array(2,0,1)}
+								{assign var="BASIC_ACTION_ORDER" value=array(2,3,0,1)}
 								{foreach from=$BASIC_ACTION_ORDER item=ORDERID}
 									<td style="border-left: 1px solid #DDD !important;">
 										{assign var="ACTION_MODEL" value=$ALL_BASIC_ACTIONS[$ORDERID]}
diff --git a/layouts/vlayout/modules/Settings/Profiles/EditViewContents.tpl b/layouts/vlayout/modules/Settings/Profiles/EditViewContents.tpl
index 5aca8602f..9f3fccb38 100644
--- a/layouts/vlayout/modules/Settings/Profiles/EditViewContents.tpl
+++ b/layouts/vlayout/modules/Settings/Profiles/EditViewContents.tpl
@@ -30,7 +30,7 @@
     <div class="summaryWidgetContainer">
         <label class="checkbox">
             <input type="hidden" name="viewall" value="0" />
-            <input type="checkbox" name="viewall" {if $RECORD_MODEL->hasGlobalReadPermission()}checked="true"{/if} />
+            <input type="checkbox" name="viewall" {if $RECORD_MODEL->hasGlobalReadPermission()}checked="true"{/if} />&nbsp;
             {vtranslate('LBL_VIEW_ALL',$QUALIFIED_MODULE)}
             <span style="margin-left:25px">
                 <i class="icon-info-sign"></i>
@@ -39,7 +39,7 @@
         </label>
         <label class="checkbox">
             <input type="hidden" name="editall" value="0" />
-            <input type="checkbox" name="editall" {if $RECORD_MODEL->hasGlobalWritePermission()}checked="true"{/if} />
+            <input type="checkbox" name="editall" {if $RECORD_MODEL->hasGlobalWritePermission()}checked="true"{/if} />&nbsp;
             {vtranslate('LBL_EDIT_ALL',$QUALIFIED_MODULE)}
             <span style="margin-left:30px">
                 <i class="icon-info-sign"></i>
@@ -58,6 +58,10 @@
 					<input type="checkbox" {if !$RECORD_ID} class="alignTop" checked="true" {/if} id="mainAction4CheckBox" />&nbsp;
 					{'LBL_VIEW_PRVILIGE'|vtranslate:$QUALIFIED_MODULE}
 				</th>
+				<th width="14%" style="border-left: 1px solid #DDD !important;">
+					<input {if empty($RECORD_ID) && empty($IS_DUPLICATE_RECORD)} class="alignTop" checked="true"{/if} type="checkbox" id="mainAction7CheckBox" />&nbsp;
+					{'LBL_CREATE_PRVILIGE'|vtranslate:$QUALIFIED_MODULE}
+				</th>
 				<th width="14%" style="border-left: 1px solid #DDD !important;">
 					<input {if !$RECORD_ID} class="alignTop"  checked="true" {/if} type="checkbox" id="mainAction1CheckBox" />&nbsp;
 					{'LBL_EDIT_PRVILIGE'|vtranslate:$QUALIFIED_MODULE}
@@ -66,7 +70,7 @@
 					<input checked="true" class="alignTop" type="checkbox" id="mainAction2CheckBox" />&nbsp;
 					{'LBL_DELETE_PRVILIGE'|vtranslate:$QUALIFIED_MODULE}
 				</th>
-				<th width="28%" style="border-left: 1px solid #DDD !important;" nowrap="nowrap">{'LBL_FIELD_AND_TOOL_PRVILIGES'|vtranslate:$QUALIFIED_MODULE}</th>
+				<th width="14%" style="border-left: 1px solid #DDD !important;" nowrap="nowrap">{'LBL_FIELD_AND_TOOL_PRVILIGES'|vtranslate:$QUALIFIED_MODULE}</th>
 			</tr>
 		</thead>
 		<tbody>
@@ -79,7 +83,7 @@
 					<td>
 						<input class="modulesCheckBox alignTop" type="checkbox" name="permissions[{$TABID}][is_permitted]" data-value="{$TABID}" data-module-state="" {if $RECORD_MODEL->hasModulePermission($PROFILE_MODULE)}checked="true"{else} data-module-unchecked="true" {/if}> {$PROFILE_MODULE->get('label')|vtranslate:$PROFILE_MODULE->getName()}
 					</td>
-					{assign var="BASIC_ACTION_ORDER" value=array(2,0,1)}
+					{assign var="BASIC_ACTION_ORDER" value=array(2,3,0,1)}
 					{foreach from=$BASIC_ACTION_ORDER item=ORDERID}
 						<td style="border-left: 1px solid #DDD !important;">
 							{assign var="ACTION_MODEL" value=$ALL_BASIC_ACTIONS[$ORDERID]}
diff --git a/layouts/vlayout/modules/Settings/Profiles/resources/Profiles.js b/layouts/vlayout/modules/Settings/Profiles/resources/Profiles.js
index b873ba298..1191e556b 100644
--- a/layouts/vlayout/modules/Settings/Profiles/resources/Profiles.js
+++ b/layouts/vlayout/modules/Settings/Profiles/resources/Profiles.js
@@ -60,8 +60,7 @@ var Settings_Profiles_Js = {
 			var target = jQuery(e.currentTarget);
 			var parent = target.closest('tr');
 			var checked = target.attr('checked')? true : false;
-			
-			if (target.data('action-state') == 'EditView' || target.data('action-state') == 'Delete') {
+			if (jQuery.inArray(target.data('action-state'), ['EditView', 'Delete', 'CreateView']) != -1) {
 				if (checked) {
 					jQuery('[data-action-state="DetailView"]', parent).attr('checked', 'checked');
 					jQuery('[data-module-state]', parent).attr('checked', 'checked');
@@ -93,7 +92,7 @@ var Settings_Profiles_Js = {
 		
 		jQuery('[data-module-state]').change(handleModuleSelectionState);
 		jQuery('[data-action-state]').change(handleActionSelectionState);
-		jQuery('#mainAction1CheckBox,#mainAction2CheckBox').change(selectAllModulesViewAndToolPriviliges);
+		jQuery('#mainAction1CheckBox,#mainAction2CheckBox,#mainAction7CheckBox').change(selectAllModulesViewAndToolPriviliges);
 		
 		jQuery('[data-togglehandler]').click(toggleEditViewTableRow);
 		jQuery('[data-range]').each(function(index, item) {
@@ -116,8 +115,9 @@ var Settings_Profiles_Js = {
 	registerSelectAllModulesEvent : function() {
 		var moduleCheckBoxes = jQuery('.modulesCheckBox');
 		var viewAction = jQuery('#mainAction4CheckBox');
-		var createAction = jQuery('#mainAction1CheckBox');
-		var deleteACtion = jQuery('#mainAction2CheckBox');
+		var editAction = jQuery('#mainAction1CheckBox');
+		var createAction = jQuery('#mainAction7CheckBox');
+		var deleteAction = jQuery('#mainAction2CheckBox');
 		var mainModulesCheckBox = jQuery('#mainModulesCheckBox');
 		mainModulesCheckBox.on('change',function(e) {
 			var mainCheckBox = jQuery(e.currentTarget);
@@ -125,22 +125,25 @@ var Settings_Profiles_Js = {
 				moduleCheckBoxes.attr('checked',true);
 				viewAction.attr('checked',true);
 				createAction.show().attr('checked',true);
-				deleteACtion.show().attr('checked',true);
+				editAction.show().attr('checked',true);
+				deleteAction.show().attr('checked',true);
 				moduleCheckBoxes.trigger('change');
 			} else {
 				moduleCheckBoxes.attr('checked',false);
-				moduleCheckBoxes.trigger('change');
 				viewAction.attr('checked',false);
 				createAction.attr('checked', false);
-				deleteACtion.attr('checked', false);
+				editAction.attr('checked', false);
+				deleteAction.attr('checked', false);
+				moduleCheckBoxes.trigger('change');
 			}
 		});
 		
 		moduleCheckBoxes.on('change',function(){
 			Settings_Profiles_Js.checkSelectAll(moduleCheckBoxes,mainModulesCheckBox);
 			Settings_Profiles_Js.checkSelectAll(jQuery('.action4CheckBox'),viewAction);
-			Settings_Profiles_Js.checkSelectAll(jQuery('.action1CheckBox'),createAction);
-			Settings_Profiles_Js.checkSelectAll(jQuery('.action2CheckBox'),deleteACtion);
+			Settings_Profiles_Js.checkSelectAll(jQuery('.action7CheckBox'),createAction);
+			Settings_Profiles_Js.checkSelectAll(jQuery('.action1CheckBox'),editAction);
+			Settings_Profiles_Js.checkSelectAll(jQuery('.action2CheckBox'),deleteAction);
 		});
 	},
 	
@@ -167,8 +170,8 @@ var Settings_Profiles_Js = {
 	},
 	
 	registerSelectAllCreateActionsEvent : function() {
-		var createActionCheckBoxes = jQuery('.action1CheckBox');
-		var mainCreateActionCheckBox =  jQuery('#mainAction1CheckBox');
+		var createActionCheckBoxes = jQuery('.action7CheckBox');
+		var mainCreateActionCheckBox =  jQuery('#mainAction7CheckBox');
 		mainCreateActionCheckBox.on('change',function(e){
 			var mainCheckBox = jQuery(e.currentTarget);
 			if(mainCheckBox.is(':checked')){
@@ -182,7 +185,23 @@ var Settings_Profiles_Js = {
 		});
 		
 	},
-	
+
+	registerSelectAllEditActionsEvent: function () {
+		var editActionCheckBoxes	= jQuery('.action1CheckBox');
+		var mainEditActionCheckBox	= jQuery('#mainAction1CheckBox');
+		mainEditActionCheckBox.on('change', function (e) {
+			var mainCheckBox = jQuery(e.currentTarget);
+			if (mainCheckBox.is(':checked')) {
+				editActionCheckBoxes.attr('checked', true);
+			} else {
+				editActionCheckBoxes.attr('checked', false);
+			}
+		});
+		editActionCheckBoxes.on('change', function () {
+			Settings_Profiles_Js.checkSelectAll(editActionCheckBoxes, mainEditActionCheckBox);
+		});
+	},
+
 	registerSelectAllDeleteActionsEvent : function() {
 		var deleteActionCheckBoxes = jQuery('.action2CheckBox');
 		var mainDeleteActionCheckBox =  jQuery('#mainAction2CheckBox');
@@ -223,7 +242,10 @@ var Settings_Profiles_Js = {
 		if(jQuery('[data-module-unchecked]').length > 0){
 			jQuery('#mainModulesCheckBox').attr('checked',false);
 		}
-        
+
+		if (jQuery('[data-action7-unchecked]').length <= 0) {
+			jQuery('#mainAction7CheckBox').attr('checked', true);
+		}
 		if(jQuery('[data-action4-unchecked]').length <= 0){
 			jQuery('#mainAction4CheckBox').attr('checked',true);
 		}
@@ -345,6 +367,7 @@ var Settings_Profiles_Js = {
 		Settings_Profiles_Js.registerSelectAllModulesEvent();
 		Settings_Profiles_Js.registerSelectAllViewActionsEvent();
 		Settings_Profiles_Js.registerSelectAllCreateActionsEvent();
+		Settings_Profiles_Js.registerSelectAllEditActionsEvent();
 		Settings_Profiles_Js.registerSelectAllDeleteActionsEvent();
 		Settings_Profiles_Js.performSelectAllActionsOnLoad();
 		Settings_Profiles_Js.registerSubmitEvent();
diff --git a/layouts/vlayout/modules/Vtiger/Comment.tpl b/layouts/vlayout/modules/Vtiger/Comment.tpl
index ecedc2526..0a865f945 100644
--- a/layouts/vlayout/modules/Vtiger/Comment.tpl
+++ b/layouts/vlayout/modules/Vtiger/Comment.tpl
@@ -38,72 +38,72 @@
 			</div>
 		</div>
 		<div class="row-fluid commentActionsContainer">
-			
-			{assign var="REASON_TO_EDIT" value=$COMMENT->get('reasontoedit')}
-			<div class="row-fluid editedStatus"  name="editStatus">
-				<div class="row-fluid">
-					<span class="{if empty($REASON_TO_EDIT)}hide{/if} span6 editReason">
-						<p><small>[ {vtranslate('LBL_EDIT_REASON',$MODULE_NAME)} ] : <span  name="editReason" class="textOverflowEllipsis">{nl2br($REASON_TO_EDIT)}</span></small></p>
-					</span>
-					{if $COMMENT->getCommentedTime() neq $COMMENT->getModifiedTime()}
-						<span class="{if empty($REASON_TO_EDIT)}row-fluid{else} span6{/if}">
-							<span class="pull-right">
-								<p class="muted"><small><em>{vtranslate('LBL_MODIFIED',$MODULE_NAME)}</em></small>&nbsp;<small title="{Vtiger_Util_Helper::formatDateTimeIntoDayString($COMMENT->getModifiedTime())}" class="commentModifiedTime">{Vtiger_Util_Helper::formatDateDiffInStrings($COMMENT->getModifiedTime())}</small></p>
-							</span>
+			{if $EDIT_PERMISSION}
+				{assign var="REASON_TO_EDIT" value=$COMMENT->get('reasontoedit')}
+				<div class="row-fluid editedStatus"  name="editStatus">
+					<div class="row-fluid">
+						<span class="{if empty($REASON_TO_EDIT)}hide{/if} span6 editReason">
+							<p><small>[ {vtranslate('LBL_EDIT_REASON',$MODULE_NAME)} ] : <span  name="editReason" class="textOverflowEllipsis">{nl2br($REASON_TO_EDIT)}</span></small></p>
 						</span>
-					{/if}
+						{if $COMMENT->getCommentedTime() neq $COMMENT->getModifiedTime()}
+							<span class="{if empty($REASON_TO_EDIT)}row-fluid{else} span6{/if}">
+								<span class="pull-right">
+									<p class="muted"><small><em>{vtranslate('LBL_MODIFIED',$MODULE_NAME)}</em></small>&nbsp;<small title="{Vtiger_Util_Helper::formatDateTimeIntoDayString($COMMENT->getModifiedTime())}" class="commentModifiedTime">{Vtiger_Util_Helper::formatDateDiffInStrings($COMMENT->getModifiedTime())}</small></p>
+								</span>
+							</span>
+						{/if}
+					</div>
 				</div>
-			</div>
+			{/if}
 			<div class="row-fluid commentActionsDiv">
-				{assign var=COMMENTS_MODULE_MODEL value = Vtiger_Module_Model::getInstance('ModComments')}
-					<div class="pull-right commentActions">
-						{if $CHILDS_ROOT_PARENT_MODEL}
-							{assign var=CHILDS_ROOT_PARENT_ID value=$CHILDS_ROOT_PARENT_MODEL->getId()}
+				<div class="pull-right commentActions">
+					{if $CHILDS_ROOT_PARENT_MODEL}
+						{assign var=CHILDS_ROOT_PARENT_ID value=$CHILDS_ROOT_PARENT_MODEL->getId()}
+					{/if}
+					<span>
+						{if $CREATE_PERMISSION}
+							<a class="cursorPointer replyComment"><i class="icon-share-alt"></i>{vtranslate('LBL_REPLY',$MODULE_NAME)}</a>
 						{/if}
-						{if $COMMENTS_MODULE_MODEL->isPermitted('EditView')}
-							<span>
-								<a class="cursorPointer replyComment"><i class="icon-share-alt"></i>{vtranslate('LBL_REPLY',$MODULE_NAME)}</a>
-								{if $CURRENTUSER->getId() eq $COMMENT->get('userid')}
-									&nbsp;<span style="color:black">|</span>&nbsp;
-									<a class="cursorPointer editComment feedback">
-										{vtranslate('LBL_EDIT',$MODULE_NAME)}
-									</a>
-								{/if}
-							</span>
+						{if $CURRENTUSER->getId() eq $COMMENT->get('userid') && $EDIT_PERMISSION}
+							{if $CREATE_PERMISSION}&nbsp;<span style="color:black">|</span>&nbsp;{/if}
+							<a class="cursorPointer editComment feedback">
+								{vtranslate('LBL_EDIT',$MODULE_NAME)}
+							</a>
 						{/if}
-						{assign var=CHILD_COMMENTS_COUNT value=$COMMENT->getChildCommentsCount()}
-						{if $CHILD_COMMENTS_MODEL neq null and ($CHILDS_ROOT_PARENT_ID neq $PARENT_COMMENT_ID)}
-							{if $COMMENTS_MODULE_MODEL->isPermitted('EditView')}&nbsp;<span style="color:black">|</span>&nbsp;{/if}
-							<span class="viewThreadBlock" data-child-comments-count="{$CHILD_COMMENTS_COUNT}">
-								<a class="cursorPointer viewThread">
-									<span class="childCommentsCount">{$CHILD_COMMENTS_COUNT}</span>&nbsp;{if $CHILD_COMMENTS_COUNT eq 1}{vtranslate('LBL_REPLY',$MODULE_NAME)}{else}{vtranslate('LBL_REPLIES',$MODULE_NAME)}{/if}&nbsp;
-									<img class="alignMiddle" src="{vimage_path('rightArrowSmall.png')}" />
-								</a>
-							</span>
-							<span class="hide hideThreadBlock" data-child-comments-count="{$CHILD_COMMENTS_COUNT}">
-								<a class="cursorPointer hideThread">
-									<span class="childCommentsCount">{$CHILD_COMMENTS_COUNT}</span>&nbsp;{if $CHILD_COMMENTS_COUNT eq 1}{vtranslate('LBL_REPLY',$MODULE_NAME)}{else}{vtranslate('LBL_REPLIES',$MODULE_NAME)}{/if}&nbsp;
-									<img class="alignMiddle" src="{vimage_path('downArrowSmall.png')}" />
-								</a>
-							</span>
+					</span>
+					{assign var=CHILD_COMMENTS_COUNT value=$COMMENT->getChildCommentsCount()}
+					{if $CHILD_COMMENTS_MODEL neq null and ($CHILDS_ROOT_PARENT_ID neq $PARENT_COMMENT_ID)}
+						{if $EDIT_PERMISSION}&nbsp;<span style="color:black">|</span>&nbsp;{/if}
+						<span class="viewThreadBlock" data-child-comments-count="{$CHILD_COMMENTS_COUNT}">
+							<a class="cursorPointer viewThread">
+								<span class="childCommentsCount">{$CHILD_COMMENTS_COUNT}</span>&nbsp;{if $CHILD_COMMENTS_COUNT eq 1}{vtranslate('LBL_REPLY',$MODULE_NAME)}{else}{vtranslate('LBL_REPLIES',$MODULE_NAME)}{/if}&nbsp;
+								<img class="alignMiddle" src="{vimage_path('rightArrowSmall.png')}" />
+							</a>
+						</span>
+						<span class="hide hideThreadBlock" data-child-comments-count="{$CHILD_COMMENTS_COUNT}">
+							<a class="cursorPointer hideThread">
+								<span class="childCommentsCount">{$CHILD_COMMENTS_COUNT}</span>&nbsp;{if $CHILD_COMMENTS_COUNT eq 1}{vtranslate('LBL_REPLY',$MODULE_NAME)}{else}{vtranslate('LBL_REPLIES',$MODULE_NAME)}{/if}&nbsp;
+								<img class="alignMiddle" src="{vimage_path('downArrowSmall.png')}" />
+							</a>
+						</span>
 
-						{elseif $CHILD_COMMENTS_MODEL neq null and ($CHILDS_ROOT_PARENT_ID eq $PARENT_COMMENT_ID)}
-							{if $COMMENTS_MODULE_MODEL->isPermitted('EditView')}&nbsp;<span style="color:black">|</span>&nbsp;{/if}
-							<span class="hide viewThreadBlock" data-child-comments-count="{$CHILD_COMMENTS_COUNT}">
-								<a class="cursorPointer viewThread">
-									<span class="childCommentsCount">{$CHILD_COMMENTS_COUNT}</span>&nbsp;{if $CHILD_COMMENTS_COUNT eq 1}{vtranslate('LBL_REPLY',$MODULE_NAME)}{else}{vtranslate('LBL_REPLIES',$MODULE_NAME)}{/if}&nbsp;
-									<img class="alignMiddle" src="{vimage_path('rightArrowSmall.png')}" />
-								</a>
-							</span>
-							<span class="hideThreadBlock" data-child-comments-count="{$CHILD_COMMENTS_COUNT}">
-								<a class="cursorPointer hideThread">
-									<span class="childCommentsCount">{$CHILD_COMMENTS_COUNT}</span>&nbsp;{if $CHILD_COMMENTS_COUNT eq 1}{vtranslate('LBL_REPLY',$MODULE_NAME)}{else}{vtranslate('LBL_REPLIES',$MODULE_NAME)}{/if}&nbsp;
-									<img class="alignMiddle" src="{vimage_path('downArrowSmall.png')}" />
-								</a>
-							</span>
-						{/if}
-						</small></p>
-					</div>
+					{elseif $CHILD_COMMENTS_MODEL neq null and ($CHILDS_ROOT_PARENT_ID eq $PARENT_COMMENT_ID)}
+						{if $CREATE_PERMISSION || $EDIT_PERMISSION}&nbsp;<span style="color:black">|</span>&nbsp;{/if}
+						<span class="hide viewThreadBlock" data-child-comments-count="{$CHILD_COMMENTS_COUNT}">
+							<a class="cursorPointer viewThread">
+								<span class="childCommentsCount">{$CHILD_COMMENTS_COUNT}</span>&nbsp;{if $CHILD_COMMENTS_COUNT eq 1}{vtranslate('LBL_REPLY',$MODULE_NAME)}{else}{vtranslate('LBL_REPLIES',$MODULE_NAME)}{/if}&nbsp;
+								<img class="alignMiddle" src="{vimage_path('rightArrowSmall.png')}" />
+							</a>
+						</span>
+						<span class="hideThreadBlock" data-child-comments-count="{$CHILD_COMMENTS_COUNT}">
+							<a class="cursorPointer hideThread">
+								<span class="childCommentsCount">{$CHILD_COMMENTS_COUNT}</span>&nbsp;{if $CHILD_COMMENTS_COUNT eq 1}{vtranslate('LBL_REPLY',$MODULE_NAME)}{else}{vtranslate('LBL_REPLIES',$MODULE_NAME)}{/if}&nbsp;
+								<img class="alignMiddle" src="{vimage_path('downArrowSmall.png')}" />
+							</a>
+						</span>
+					{/if}
+					</small></p>
+				</div>
 			</div>
 		</div>
 	</div>
diff --git a/layouts/vlayout/modules/Vtiger/CommentThreadList.tpl b/layouts/vlayout/modules/Vtiger/CommentThreadList.tpl
index cfa8bcecb..00263201e 100644
--- a/layouts/vlayout/modules/Vtiger/CommentThreadList.tpl
+++ b/layouts/vlayout/modules/Vtiger/CommentThreadList.tpl
@@ -37,60 +37,60 @@
 			</div>
 		</div>
 		<div class="row-fluid commentActionsContainer">
-			
-			{assign var="REASON_TO_EDIT" value=$COMMENT->get('reasontoedit')}
-			<div class="row-fluid editedStatus"  name="editStatus">
-				<div class="row-fluid">
-					<p class="span6 marginLeftZero"><small>
-					<span class="{if empty($REASON_TO_EDIT)}hide{/if} span6 marginLeftZero editReason">
-						[ {vtranslate('LBL_EDIT_REASON',$MODULE_NAME)} ] : <span  name="editReason" class="textOverflowEllipsis">{nl2br($REASON_TO_EDIT)}</span>
-					</span>
-					</small></p>
-					{if $COMMENT->getCommentedTime() neq $COMMENT->getModifiedTime()}
-						<span class="{if empty($REASON_TO_EDIT)}row-fluid{else} span6{/if}">
-							<span class="pull-right">
-								<p class="muted"><small title="{Vtiger_Util_Helper::formatDateTimeIntoDayString($COMMENT->getModifiedTime())}">{Vtiger_Util_Helper::formatDateDiffInStrings($COMMENT->getModifiedTime())}</small></p>
-							</span>
+			{if $EDIT_PERMISSION}
+				{assign var="REASON_TO_EDIT" value=$COMMENT->get('reasontoedit')}
+				<div class="row-fluid editedStatus"  name="editStatus">
+					<div class="row-fluid">
+						<p class="span6 marginLeftZero"><small>
+						<span class="{if empty($REASON_TO_EDIT)}hide{/if} span6 marginLeftZero editReason">
+							[ {vtranslate('LBL_EDIT_REASON',$MODULE_NAME)} ] : <span  name="editReason" class="textOverflowEllipsis">{nl2br($REASON_TO_EDIT)}</span>
 						</span>
-					{/if}
-					
+						</small></p>
+						{if $COMMENT->getCommentedTime() neq $COMMENT->getModifiedTime()}
+							<span class="{if empty($REASON_TO_EDIT)}row-fluid{else} span6{/if}">
+								<span class="pull-right">
+									<p class="muted"><small title="{Vtiger_Util_Helper::formatDateTimeIntoDayString($COMMENT->getModifiedTime())}">{Vtiger_Util_Helper::formatDateDiffInStrings($COMMENT->getModifiedTime())}</small></p>
+								</span>
+							</span>
+						{/if}
+
+					</div>
 				</div>
-			</div>
+			{/if}
 			<div class="row-fluid commentActionsDiv">
-				{assign var=COMMENTS_MODULE_MODEL value = Vtiger_Module_Model::getInstance('ModComments')}
-					<span class="pull-right commentActions">
-						{assign var=CHILD_COMMENTS_COUNT value=$COMMENT->getChildCommentsCount()}
-						{if $COMMENTS_MODULE_MODEL->isPermitted('EditView')}
-							<span>
-								<a class="cursorPointer replyComment">&nbsp;
-									<i class="icon-share-alt"></i>
-									{vtranslate('LBL_REPLY',$MODULE_NAME)}
-								</a>
-								{if $CURRENTUSER->getId() eq $COMMENT->get('userid')}
-									&nbsp;<span style="color:black">|</span>&nbsp;
-									<a class="cursorPointer editComment feedback">
-										{vtranslate('LBL_EDIT',$MODULE_NAME)}
-									</a>
-								{/if}
-							</span>
+				<span class="pull-right commentActions">
+					{assign var=CHILD_COMMENTS_COUNT value=$COMMENT->getChildCommentsCount()}
+					<span>
+						{if $CREATE_PERMISSION}
+							<a class="cursorPointer replyComment">&nbsp;
+								<i class="icon-share-alt"></i>
+								{vtranslate('LBL_REPLY',$MODULE_NAME)}
+							</a>
 						{/if}
-						{if $CHILD_COMMENTS_COUNT neq 0}
-							{if $COMMENTS_MODULE_MODEL->isPermitted('EditView')}&nbsp;<span style="color:black">|</span>&nbsp;{/if}
-							<span class="hide viewThreadBlock" data-child-comments-count="{$COMMENT->getChildCommentsCount()}">
-									<a class="cursorPointer viewThread">
-										<span class="childCommentsCount">{$COMMENT->getChildCommentsCount()}</span>&nbsp;{if $CHILD_COMMENTS_COUNT eq 1}{vtranslate('LBL_REPLY',$MODULE_NAME)}{else}{vtranslate('LBL_REPLIES',$MODULE_NAME)}{/if}&nbsp;
-										<img class="alignMiddle" src="{vimage_path('rightArrowSmall.png')}" />
-									</a>
-							</span>
-							<span class="hideThreadBlock" data-child-comments-count="{$COMMENT->getChildCommentsCount()}">
-								<a class="cursorPointer hideThread">
-									<span class="childCommentsCount">{$COMMENT->getChildCommentsCount()}</span>&nbsp;{if $CHILD_COMMENTS_COUNT eq 1}{vtranslate('LBL_REPLY',$MODULE_NAME)}{else}{vtranslate('LBL_REPLIES',$MODULE_NAME)}{/if}&nbsp;
-									<img class="alignMiddle" src="{vimage_path('downArrowSmall.png')}" />
-								</a>
-							</span>
+						{if $CURRENTUSER->getId() eq $COMMENT->get('userid') && $EDIT_PERMISSION}
+							{if $CREATE_PERMISSION}&nbsp;<span style="color:black">|</span>&nbsp;{/if}
+							<a class="cursorPointer editComment feedback">
+								{vtranslate('LBL_EDIT',$MODULE_NAME)}
+							</a>
 						{/if}
 					</span>
+					{if $CHILD_COMMENTS_COUNT neq 0}
+						{if $CREATE_PERMISSION || $EDIT_PERMISSION}&nbsp;<span style="color:black">|</span>&nbsp;{/if}
+						<span class="hide viewThreadBlock" data-child-comments-count="{$COMMENT->getChildCommentsCount()}">
+								<a class="cursorPointer viewThread">
+									<span class="childCommentsCount">{$COMMENT->getChildCommentsCount()}</span>&nbsp;{if $CHILD_COMMENTS_COUNT eq 1}{vtranslate('LBL_REPLY',$MODULE_NAME)}{else}{vtranslate('LBL_REPLIES',$MODULE_NAME)}{/if}&nbsp;
+									<img class="alignMiddle" src="{vimage_path('rightArrowSmall.png')}" />
+								</a>
+						</span>
+						<span class="hideThreadBlock" data-child-comments-count="{$COMMENT->getChildCommentsCount()}">
+							<a class="cursorPointer hideThread">
+								<span class="childCommentsCount">{$COMMENT->getChildCommentsCount()}</span>&nbsp;{if $CHILD_COMMENTS_COUNT eq 1}{vtranslate('LBL_REPLY',$MODULE_NAME)}{else}{vtranslate('LBL_REPLIES',$MODULE_NAME)}{/if}&nbsp;
+								<img class="alignMiddle" src="{vimage_path('downArrowSmall.png')}" />
+							</a>
+						</span>
+					{/if}
+				</span>
 			</div>
 		</div>
-					</div>
-				</div>
+	</div>
+</div>
diff --git a/layouts/vlayout/modules/Vtiger/CommonActions.tpl b/layouts/vlayout/modules/Vtiger/CommonActions.tpl
index 8ef98a1f9..4cb0a213c 100644
--- a/layouts/vlayout/modules/Vtiger/CommonActions.tpl
+++ b/layouts/vlayout/modules/Vtiger/CommonActions.tpl
@@ -67,7 +67,7 @@
                                         <div class="row-fluid">
                                             <div class="span12">
                                                 {foreach key=moduleName item=moduleModel from=$MENUS}
-                                                    {if $moduleModel->isPermitted('EditView')}
+                                                    {if $moduleModel->isPermitted('CreateView')}
                                                         {assign var='quickCreateModule' value=$moduleModel->isQuickCreateSupported()}
                                                         {assign var='singularLabel' value=$moduleModel->getSingularLabelKey()}
 														{if $singularLabel == 'SINGLE_Calendar'}
diff --git a/layouts/vlayout/modules/Vtiger/FindDuplicateContents.tpl b/layouts/vlayout/modules/Vtiger/FindDuplicateContents.tpl
index 82314b357..6b52fca0b 100644
--- a/layouts/vlayout/modules/Vtiger/FindDuplicateContents.tpl
+++ b/layouts/vlayout/modules/Vtiger/FindDuplicateContents.tpl
@@ -37,16 +37,20 @@
 	<table class="table-bordered row-fluid textAlignCenter">
 		<thead>
 			<tr class="listViewHeaders">
-				<th width="5%">
-					<input type="checkbox" id="listViewEntriesMainCheckBox" />
-				</th>
+				{if $LISTVIEW_LINKS}
+					<th width="5%">
+						<input type="checkbox" id="listViewEntriesMainCheckBox" />
+					</th>
+				{/if}
 				{foreach item=LISTVIEW_HEADER from=$LISTVIEW_HEADERS}
 				<th nowrap {*if $LISTVIEW_HEADER@last} colspan="2" {/if*}>
 					<a class="listViewHeaderValues">{vtranslate($LISTVIEW_HEADER->get('label'), $MODULE)}</a>
 				</th>
 				{/foreach}
-				<th>{vtranslate('LBL_MERGE_SELECT', $MODULE)}</th>
-				<th>{vtranslate('LBL_ACTION', $MODULE)}</th>
+				{if $IS_MODULE_EDITABLE}
+					<th>{vtranslate('LBL_MERGE_SELECT', $MODULE)}</th>
+					<th>{vtranslate('LBL_ACTION', $MODULE)}</th>
+				{/if}
 			</tr>
 		</thead>
 		{assign var=mergeRecordCount value=0}
@@ -55,9 +59,11 @@
 			{assign var=recordCount value=0}
 			{foreach item=RECORD from=$LISTVIEW_ENTRY name=listview}
 				<tr class="listViewEntries" data-id='{$RECORD.recordid}' id="{$MODULE}_listView_row_{$smarty.foreach.listview.index+1}">
-					<td width="5%" style='border-bottom:1px solid #DDD;'>
-						<input type="checkbox" value="{$RECORD.recordid}" class="listViewEntriesCheckBox"/>
-					</td>
+					{if $LISTVIEW_LINKS}
+						<td width="5%" style='border-bottom:1px solid #DDD;'>
+							<input type="checkbox" value="{$RECORD.recordid}" class="listViewEntriesCheckBox"/>
+						</td>
+					{/if}
 					{assign var=sameRowValues value=true}
 					{foreach item=LISTVIEW_HEADER from=$LISTVIEW_HEADERS}
 					{if $LISTVIEW_HEADER->get('name') eq 'recordid'}
@@ -70,13 +76,15 @@
 						</td>
 					{/if}
 					{/foreach}
-					<td style='border-bottom:1px solid #DDD;'>
-						<input type="checkbox" data-id='{$RECORD.recordid}' name="mergeRecord" data-group="{$GROUP_NAME}"/>
-					</td>
-					{if $recordCount eq 0}
-					<td align='center' rowspan="{$groupCount}" style="border-left:1px solid #DDD;border-bottom:1px solid #DDD;vertical-align: middle;text-align: center">
-						<input type="button" value="{vtranslate("LBL_MERGE",'Vtiger')}" name="merge" class="btn btn-success" data-group="{$GROUP_NAME}">
-					</td>
+					{if $IS_MODULE_EDITABLE}
+						<td style='border-bottom:1px solid #DDD;'>
+							<input type="checkbox" data-id='{$RECORD.recordid}' name="mergeRecord" data-group="{$GROUP_NAME}"/>
+						</td>
+						{if $recordCount eq 0}
+						<td align='center' rowspan="{$groupCount}" style="border-left:1px solid #DDD;border-bottom:1px solid #DDD;vertical-align: middle;text-align: center">
+							<input type="button" value="{vtranslate("LBL_MERGE",'Vtiger')}" name="merge" class="btn btn-success" data-group="{$GROUP_NAME}">
+						</td>
+						{/if}
 					{/if}
 					{assign var=recordCount value=$recordCount+1}
 				</tr>
diff --git a/layouts/vlayout/modules/Vtiger/ListViewContents.tpl b/layouts/vlayout/modules/Vtiger/ListViewContents.tpl
index 3a3e316d6..3b3d99416 100644
--- a/layouts/vlayout/modules/Vtiger/ListViewContents.tpl
+++ b/layouts/vlayout/modules/Vtiger/ListViewContents.tpl
@@ -137,7 +137,7 @@
 			<tr>
 				<td>
 					{assign var=SINGLE_MODULE value="SINGLE_$MODULE"}
-					{vtranslate('LBL_EQ_ZERO')} {vtranslate($SINGLE_MODULE, $MODULE)} {vtranslate('LBL_FOUND')}.{if $IS_MODULE_EDITABLE} {vtranslate('LBL_CREATE')} <a href="{$MODULE_MODEL->getCreateRecordUrl()}">{vtranslate($SINGLE_MODULE, $MODULE)}</a>{/if}
+					{vtranslate('LBL_EQ_ZERO')} {vtranslate($SINGLE_MODULE, $MODULE)} {vtranslate('LBL_FOUND')}.{if $IS_RECORD_CREATABLE} {vtranslate('LBL_CREATE')} <a href="{$MODULE_MODEL->getCreateRecordUrl()}">{vtranslate($SINGLE_MODULE, $MODULE)}</a>{/if}
 				</td>
 			</tr>
 		</tbody>
diff --git a/layouts/vlayout/modules/Vtiger/MenuBar.tpl b/layouts/vlayout/modules/Vtiger/MenuBar.tpl
index 2fdfcdc5a..a9e38089e 100644
--- a/layouts/vlayout/modules/Vtiger/MenuBar.tpl
+++ b/layouts/vlayout/modules/Vtiger/MenuBar.tpl
@@ -198,7 +198,7 @@
 								<li id="compactquickCreate">
 									<div class="CompactQC">
 										{foreach key=moduleName item=moduleModel from=$MENUS}
-											{if $moduleModel->isPermitted('EditView')}
+											{if $moduleModel->isPermitted('CreateView')}
 												{assign var='quickCreateModule' value=$moduleModel->isQuickCreateSupported()}
 												{assign var='singularLabel' value=$moduleModel->getSingularLabelKey()}
 												{if $quickCreateModule == '1'}
diff --git a/layouts/vlayout/modules/Vtiger/RecentComments.tpl b/layouts/vlayout/modules/Vtiger/RecentComments.tpl
index 5c6380f07..4506357c6 100644
--- a/layouts/vlayout/modules/Vtiger/RecentComments.tpl
+++ b/layouts/vlayout/modules/Vtiger/RecentComments.tpl
@@ -16,7 +16,9 @@
 
 <div class="commentContainer recentComments">
 	<div class="commentTitle row-fluid">
-		{if $COMMENTS_MODULE_MODEL->isPermitted('EditView')}
+		{assign var=CREATE_PERMISSION value=$COMMENTS_MODULE_MODEL->isPermitted('CreateView')}
+		{assign var=EDIT_PERMISSION value=$COMMENTS_MODULE_MODEL->isPermitted('EditView')}
+		{if $CREATE_PERMISSION}
 			<div class="addCommentBlock">
 				<div>
 					<textarea name="commentcontent" class="commentcontent"  placeholder="{vtranslate('LBL_ADD_YOUR_COMMENT_HERE', $MODULE_NAME)}" rows="{$COMMENT_TEXTAREA_DEFAULT_ROWS}"></textarea>
@@ -82,22 +84,22 @@
 								</div>
 								<div class="row-fluid">
 									<div class="pull-right commentActions">
-										{if $COMMENTS_MODULE_MODEL->isPermitted('EditView')}
-											<span>
+										<span>
+											{if $CREATE_PERMISSION}
 												<a class="cursorPointer replyComment feedback">
 													<i class="icon-share-alt"></i>{vtranslate('LBL_REPLY',$MODULE_NAME)}
 												</a>
-												{if $CURRENTUSER->getId() eq $COMMENT->get('userid')}
-													&nbsp;<span>|</span>&nbsp;
-													<a class="cursorPointer editComment feedback">
-														{vtranslate('LBL_EDIT',$MODULE_NAME)}
-													</a>
-												{/if}
-											</span>
-										{/if}
+											{/if}
+											{if $CURRENTUSER->getId() eq $COMMENT->get('userid') && $EDIT_PERMISSION}
+												{if $CREATE_PERMISSION}&nbsp;<span>|</span>&nbsp;{/if}
+												<a class="cursorPointer editComment feedback">
+													{vtranslate('LBL_EDIT',$MODULE_NAME)}
+												</a>
+											{/if}
+										</span>
 										<span>
 											{if $PARENT_COMMENT_MODEL neq false or $CHILD_COMMENTS_MODEL neq null}
-												{if $COMMENTS_MODULE_MODEL->isPermitted('EditView')}&nbsp;<span>|</span>&nbsp;{/if}
+												{if $CREATE_PERMISSION || $EDIT_PERMISSION}&nbsp;<span>|</span>&nbsp;{/if}
 												<a href="javascript:void(0);" class="cursorPointer detailViewThread">{vtranslate('LBL_VIEW_THREAD',$MODULE_NAME)}</a>
 											{/if}
 										</span>
@@ -119,35 +121,39 @@
 			</div>
 		</div>
 	{/if}
-	<div class="hide basicAddCommentBlock">
-		<div class="row-fluid">
-			<span class="span1">&nbsp;</span>
-			<div class="span11">
-				<textarea class="commentcontenthidden fullWidthAlways" name="commentcontent" rows="{$COMMENT_TEXTAREA_DEFAULT_ROWS}" placeholder="{vtranslate('LBL_ADD_YOUR_COMMENT_HERE', $MODULE_NAME)}"></textarea>
+	{if $CREATE_PERMISSION}
+		<div class="hide basicAddCommentBlock">
+			<div class="row-fluid">
+				<span class="span1">&nbsp;</span>
+				<div class="span11">
+					<textarea class="commentcontenthidden fullWidthAlways" name="commentcontent" rows="{$COMMENT_TEXTAREA_DEFAULT_ROWS}" placeholder="{vtranslate('LBL_ADD_YOUR_COMMENT_HERE', $MODULE_NAME)}"></textarea>
+				</div>
 			</div>
-		</div>
-		<div class="pull-right">
-			<button class="btn btn-success detailViewSaveComment" type="button" data-mode="add"><strong>{vtranslate('LBL_POST', $MODULE_NAME)}</strong></button>
-			<a class="cursorPointer closeCommentBlock cancelLink" type="reset">{vtranslate('LBL_CANCEL', $MODULE_NAME)}</a>
-		</div>
-	</div>
-	<div class="hide basicEditCommentBlock" style="min-height: 150px;">
-		<div class="row-fluid">
-			<span class="span1">&nbsp;</span>
-			<div class="span11">
-				<input type="text" name="reasonToEdit" placeholder="{vtranslate('LBL_REASON_FOR_CHANGING_COMMENT', $MODULE_NAME)}" class="input-block-level"/>
+			<div class="pull-right">
+				<button class="btn btn-success detailViewSaveComment" type="button" data-mode="add"><strong>{vtranslate('LBL_POST', $MODULE_NAME)}</strong></button>
+				<a class="cursorPointer closeCommentBlock cancelLink" type="reset">{vtranslate('LBL_CANCEL', $MODULE_NAME)}</a>
 			</div>
 		</div>
-		<div class="row-fluid">
-			<span class="span1">&nbsp;</span>
-			<div class="span11">
-				<textarea class="commentcontenthidden fullWidthAlways" name="commentcontent" rows="{$COMMENT_TEXTAREA_DEFAULT_ROWS}"></textarea>
+	{/if}
+	{if $EDIT_PERMISSION}
+		<div class="hide basicEditCommentBlock" style="min-height: 150px;">
+			<div class="row-fluid">
+				<span class="span1">&nbsp;</span>
+				<div class="span11">
+					<input type="text" name="reasonToEdit" placeholder="{vtranslate('LBL_REASON_FOR_CHANGING_COMMENT', $MODULE_NAME)}" class="input-block-level"/>
+				</div>
+			</div>
+			<div class="row-fluid">
+				<span class="span1">&nbsp;</span>
+				<div class="span11">
+					<textarea class="commentcontenthidden fullWidthAlways" name="commentcontent" rows="{$COMMENT_TEXTAREA_DEFAULT_ROWS}"></textarea>
+				</div>
+			</div>
+			<div class="pull-right">
+				<button class="btn btn-success detailViewSaveComment" type="button" data-mode="edit"><strong>{vtranslate('LBL_POST', $MODULE_NAME)}</strong></button>
+				<a class="cursorPointer closeCommentBlock cancelLink" type="reset">{vtranslate('LBL_CANCEL', $MODULE_NAME)}</a>
 			</div>
 		</div>
-		<div class="pull-right">
-			<button class="btn btn-success detailViewSaveComment" type="button" data-mode="edit"><strong>{vtranslate('LBL_POST', $MODULE_NAME)}</strong></button>
-			<a class="cursorPointer closeCommentBlock cancelLink" type="reset">{vtranslate('LBL_CANCEL', $MODULE_NAME)}</a>
-		</div>
-	</div>
+	{/if}
 </div>
 {/strip}
\ No newline at end of file
diff --git a/layouts/vlayout/modules/Vtiger/RelatedActivities.tpl b/layouts/vlayout/modules/Vtiger/RelatedActivities.tpl
index 5bfc7a414..e930cc68b 100644
--- a/layouts/vlayout/modules/Vtiger/RelatedActivities.tpl
+++ b/layouts/vlayout/modules/Vtiger/RelatedActivities.tpl
@@ -14,7 +14,13 @@
 <div  class="summaryWidgetContainer">
 	<div class="widget_header row-fluid">
 		<span class="span8"><h4 class="textOverflowEllipsis">{vtranslate('LBL_ACTIVITIES',$MODULE_NAME)}</h4></span>
-		<span class="span4"><button class="btn pull-right addButton createActivity" data-url="sourceModule={$RECORD->getModuleName()}&sourceRecord={$RECORD->getId()}&relationOperation=true" type="button"><strong>{vtranslate('LBL_ADD',$MODULE_NAME)}</strong></button></span>
+		<span class="span4">
+			{if isPermitted('Calendar', 'CreateView') eq 'yes'}
+				<button class="btn pull-right addButton createActivity" data-url="sourceModule={$RECORD->getModuleName()}&sourceRecord={$RECORD->getId()}&relationOperation=true" type="button">
+					<strong>{vtranslate('LBL_ADD',$MODULE_NAME)}</strong>
+				</button>
+			{/if}
+			</span>
 	</div>
 	<div class="widget_contents">
 		{if count($ACTIVITIES) neq '0'}
@@ -33,16 +39,18 @@
 							{assign var=MODULE_NAME value=$RECORD->getModuleName()}
 							<input type="hidden" class="activityModule" value="{$RECORD->getModuleName()}"/>
 							<input type="hidden" class="activityType" value="{$RECORD->get('activitytype')}"/>
-							<div class="pull-right">
-								<strong><span class="value">{vtranslate($RECORD->get('status'),$MODULE_NAME)}</span></strong>&nbsp&nbsp;
-								<span class="editStatus cursorPointer"><i class="icon-pencil" title="{vtranslate('LBL_EDIT',$MODULE_NAME)}"></i></span>
-								<span class="edit hide">
-								{assign var=FIELD_MODEL value=$RECORD->getModule()->getField('taskstatus')}
-								{assign var=FIELD_VALUE value=$FIELD_MODEL->set('fieldvalue', $RECORD->get('status'))}
-								{include file=vtemplate_path($FIELD_MODEL->getUITypeModel()->getTemplateName(),$MODULE_NAME) FIELD_MODEL=$FIELD_MODEL USER_MODEL=$USER_MODEL MODULE=$MODULE_NAME OCCUPY_COMPLETE_WIDTH='true'}
-								<input type="hidden" class="fieldname" value='{$FIELD_MODEL->get('name')}' data-prev-value='{$FIELD_MODEL->get('fieldvalue')}' />
-								</span>
-							</div>
+							{if $EDITVIEW_PERMITTED == 'yes'}
+								<div class="pull-right">
+									<strong><span class="value">{vtranslate($RECORD->get('status'),$MODULE_NAME)}</span></strong>&nbsp&nbsp;
+									<span class="editStatus cursorPointer"><i class="icon-pencil" title="{vtranslate('LBL_EDIT',$MODULE_NAME)}"></i></span>
+									<span class="edit hide">
+									{assign var=FIELD_MODEL value=$RECORD->getModule()->getField('taskstatus')}
+									{assign var=FIELD_VALUE value=$FIELD_MODEL->set('fieldvalue', $RECORD->get('status'))}
+									{include file=vtemplate_path($FIELD_MODEL->getUITypeModel()->getTemplateName(),$MODULE_NAME) FIELD_MODEL=$FIELD_MODEL USER_MODEL=$USER_MODEL MODULE=$MODULE_NAME OCCUPY_COMPLETE_WIDTH='true'}
+									<input type="hidden" class="fieldname" value='{$FIELD_MODEL->get('name')}' data-prev-value='{$FIELD_MODEL->get('fieldvalue')}' />
+									</span>
+								</div>
+							{/if}
 						</div>
 						{else}
 							{assign var=MODULE_NAME value="Events"}
diff --git a/layouts/vlayout/modules/Vtiger/ShowAllComments.tpl b/layouts/vlayout/modules/Vtiger/ShowAllComments.tpl
index 3c0854d48..5a4acbb71 100644
--- a/layouts/vlayout/modules/Vtiger/ShowAllComments.tpl
+++ b/layouts/vlayout/modules/Vtiger/ShowAllComments.tpl
@@ -15,7 +15,9 @@
 
 <div class="commentContainer">
 	<div class="commentTitle row-fluid">
-		{if $COMMENTS_MODULE_MODEL->isPermitted('EditView')}
+		{assign var=CREATE_PERMISSION value=$COMMENTS_MODULE_MODEL->isPermitted('CreateView')}
+		{assign var=EDIT_PERMISSION value=$COMMENTS_MODULE_MODEL->isPermitted('EditView')}
+		{if $CREATE_PERMISSION}
 			<div class="addCommentBlock">
 				<div>
 					<textarea name="commentcontent" rows="{$COMMENT_TEXTAREA_DEFAULT_ROWS}" class="commentcontent"  placeholder="{vtranslate('LBL_ADD_YOUR_COMMENT_HERE', $MODULE_NAME)}"></textarea>
@@ -30,34 +32,38 @@
 	<div class="commentsList commentsBody">
 		{include file='CommentsList.tpl'|@vtemplate_path COMMENT_MODULE_MODEL=$COMMENTS_MODULE_MODEL}
 	</div>
-	<div class="hide basicAddCommentBlock">
-		<div class="row-fluid">
-			<span class="span1">&nbsp;</span>
-			<div class="span11">
-				<textarea class="commentcontenthidden fullWidthAlways" rows="{$COMMENT_TEXTAREA_DEFAULT_ROWS}" name="commentcontent" placeholder="{vtranslate('LBL_ADD_YOUR_COMMENT_HERE', $MODULE_NAME)}"></textarea>
+	{if $CREATE_PERMISSION}
+		<div class="hide basicAddCommentBlock">
+			<div class="row-fluid">
+				<span class="span1">&nbsp;</span>
+				<div class="span11">
+					<textarea class="commentcontenthidden fullWidthAlways" rows="{$COMMENT_TEXTAREA_DEFAULT_ROWS}" name="commentcontent" placeholder="{vtranslate('LBL_ADD_YOUR_COMMENT_HERE', $MODULE_NAME)}"></textarea>
+				</div>
+			</div>
+			<div class="pull-right">
+				<button class="btn btn-success saveComment" type="button" data-mode="add"><strong>{vtranslate('LBL_POST', $MODULE_NAME)}</strong></button>
+				<a class="cursorPointer closeCommentBlock" type="reset">{vtranslate('LBL_CANCEL', $MODULE_NAME)}</a>
 			</div>
 		</div>
-		<div class="pull-right">
-			<button class="btn btn-success saveComment" type="button" data-mode="add"><strong>{vtranslate('LBL_POST', $MODULE_NAME)}</strong></button>
-			<a class="cursorPointer closeCommentBlock" type="reset">{vtranslate('LBL_CANCEL', $MODULE_NAME)}</a>
-		</div>
-	</div>
+	{/if}
+	{if $EDIT_PERMISSION}
 		<div class="hide basicEditCommentBlock" style="min-height: 150px;">
-		<div class="row-fluid">
-			<span class="span1">&nbsp;</span>
-			<div class="span11">
-				<input type="text" name="reasonToEdit" placeholder="{vtranslate('LBL_REASON_FOR_CHANGING_COMMENT', $MODULE_NAME)}" class="input-block-level"/>
+			<div class="row-fluid">
+				<span class="span1">&nbsp;</span>
+				<div class="span11">
+					<input type="text" name="reasonToEdit" placeholder="{vtranslate('LBL_REASON_FOR_CHANGING_COMMENT', $MODULE_NAME)}" class="input-block-level"/>
+				</div>
 			</div>
-		</div>
-		<div class="row-fluid">
-			<span class="span1">&nbsp;</span>
-			<div class="span11">
-				<textarea class="commentcontenthidden fullWidthAlways" name="commentcontent" rows="{$COMMENT_TEXTAREA_DEFAULT_ROWS}"></textarea>
+			<div class="row-fluid">
+				<span class="span1">&nbsp;</span>
+				<div class="span11">
+					<textarea class="commentcontenthidden fullWidthAlways" name="commentcontent" rows="{$COMMENT_TEXTAREA_DEFAULT_ROWS}"></textarea>
+				</div>
+			</div>
+			<div class="pull-right">
+				<button class="btn btn-success saveComment" type="button" data-mode="edit"><strong>{vtranslate('LBL_POST', $MODULE_NAME)}</strong></button>
+				<a class="cursorPointer closeCommentBlock cancelLink" type="reset">{vtranslate('LBL_CANCEL', $MODULE_NAME)}</a>
 			</div>
 		</div>
-		<div class="pull-right">
-			<button class="btn btn-success saveComment" type="button" data-mode="edit"><strong>{vtranslate('LBL_POST', $MODULE_NAME)}</strong></button>
-			<a class="cursorPointer closeCommentBlock cancelLink" type="reset">{vtranslate('LBL_CANCEL', $MODULE_NAME)}</a>
-		</div>
-	</div>
+	{/if}
 </div>
\ No newline at end of file
diff --git a/modules/Calendar/models/ListView.php b/modules/Calendar/models/ListView.php
index b189c02da..6b1588aec 100644
--- a/modules/Calendar/models/ListView.php
+++ b/modules/Calendar/models/ListView.php
@@ -17,7 +17,7 @@ class Calendar_ListView_Model extends Vtiger_ListView_Model {
 	public function getBasicLinks() {
 		$basicLinks = array();
 		$moduleModel = $this->getModule();
-		$createPermission = Users_Privileges_Model::isPermitted($moduleModel->getName(), 'EditView');
+		$createPermission = Users_Privileges_Model::isPermitted($moduleModel->getName(), 'CreateView');
 		if($createPermission) {
 			$basicLinks[] = array(
 					'linktype' => 'LISTVIEWBASIC',
@@ -43,7 +43,7 @@ class Calendar_ListView_Model extends Vtiger_ListView_Model {
 	 */
 	public function getAdvancedLinks(){
 		$moduleModel = $this->getModule();
-		$createPermission = Users_Privileges_Model::isPermitted($moduleModel->getName(), 'EditView');
+		$createPermission = Users_Privileges_Model::isPermitted($moduleModel->getName(), 'CreateView');
 		$advancedLinks = array();
 		$importPermission = Users_Privileges_Model::isPermitted($moduleModel->getName(), 'Import');
 		if($importPermission && $createPermission) {
diff --git a/modules/Calendar/views/Calendar.php b/modules/Calendar/views/Calendar.php
index 8b0f2ece6..cd5009b67 100644
--- a/modules/Calendar/views/Calendar.php
+++ b/modules/Calendar/views/Calendar.php
@@ -12,7 +12,12 @@ class Calendar_Calendar_View extends Vtiger_Index_View {
 
 	public function preProcess(Vtiger_Request $request, $display = true) {
 		$viewer = $this->getViewer($request);
-		$viewer->assign('MODULE_NAME', $request->getModule());
+		$moduleName = $request->getModule();
+		$viewer->assign('MODULE_NAME', $moduleName);
+		$moduleModel = Vtiger_Module_Model::getInstance($moduleName);
+		$viewer->assign('IS_RECORD_CREATABLE', $moduleModel->isPermitted('CreateView'));
+		$viewer->assign('IS_MODULE_EDITABLE', $moduleModel->isPermitted('EditView'));
+		$viewer->assign('IS_MODULE_DELETABLE', $moduleModel->isPermitted('Delete'));
 
 		parent::preProcess($request, false);
 		if($display) {
diff --git a/modules/Campaigns/models/ListView.php b/modules/Campaigns/models/ListView.php
index e496ee06d..07d1e2042 100644
--- a/modules/Campaigns/models/ListView.php
+++ b/modules/Campaigns/models/ListView.php
@@ -24,7 +24,7 @@ class Campaigns_ListView_Model extends Vtiger_ListView_Model {
 
 		$basicLinks = array();
 
-		$createPermission = Users_Privileges_Model::isPermitted($moduleModel->getName(), 'EditView');
+		$createPermission = Users_Privileges_Model::isPermitted($moduleModel->getName(), 'CreateView');
 		if($createPermission) {
 			$basicLinks[] = array(
 					'linktype' => 'LISTVIEWBASIC',
diff --git a/modules/Documents/Documents.php b/modules/Documents/Documents.php
index 163d239e0..843f8aad5 100644
--- a/modules/Documents/Documents.php
+++ b/modules/Documents/Documents.php
@@ -524,7 +524,7 @@ class Documents extends CRMEntity {
 	 */
 	static function isLinkPermitted($linkData) {
 		$moduleName = "Documents";
-		if(vtlib_isModuleActive($moduleName) && isPermitted($moduleName, 'EditView') == 'yes') {
+		if(vtlib_isModuleActive($moduleName) && isPermitted($moduleName, 'CreateView') == 'yes') {
 			return true;
 		}
 		return false;
diff --git a/modules/Documents/models/ListView.php b/modules/Documents/models/ListView.php
index 53b7513bd..a143b8099 100644
--- a/modules/Documents/models/ListView.php
+++ b/modules/Documents/models/ListView.php
@@ -22,7 +22,7 @@ class Documents_ListView_Model extends Vtiger_ListView_Model {
 		$linkTypes = array('LISTVIEWBASIC', 'LISTVIEW', 'LISTVIEWSETTING');
 		$links = Vtiger_Link_Model::getAllByType($moduleModel->getId(), $linkTypes, $linkParams);
 
-		$createPermission = Users_Privileges_Model::isPermitted($moduleModel->getName(), 'EditView');
+		$createPermission = Users_Privileges_Model::isPermitted($moduleModel->getName(), 'CreateView');
 		if($createPermission) {
 			$basicLinks = array(
 					array(
diff --git a/modules/Documents/views/AddFolder.php b/modules/Documents/views/AddFolder.php
index 500596016..eed645d58 100644
--- a/modules/Documents/views/AddFolder.php
+++ b/modules/Documents/views/AddFolder.php
@@ -13,7 +13,7 @@ class Documents_AddFolder_View extends Vtiger_IndexAjax_View {
 	public function checkPermission(Vtiger_Request $request) {
 		$moduleName = $request->getModule();
 
-		if(!Users_Privileges_Model::isPermitted($moduleName, 'EditView')) {
+		if(!Users_Privileges_Model::isPermitted($moduleName, 'CreateView')) {
 			throw new AppException(vtranslate('LBL_PERMISSION_DENIED', $moduleName));
 		}
 	}
diff --git a/modules/HelpDesk/actions/ConvertFAQ.php b/modules/HelpDesk/actions/ConvertFAQ.php
index b64eb2f4f..797453abb 100644
--- a/modules/HelpDesk/actions/ConvertFAQ.php
+++ b/modules/HelpDesk/actions/ConvertFAQ.php
@@ -11,7 +11,7 @@
 class HelpDesk_ConvertFAQ_Action extends Vtiger_Action_Controller {
 
 	public function checkPermission(Vtiger_Request $request) {
-		$recordPermission = Users_Privileges_Model::isPermitted('Faq', 'EditView');
+		$recordPermission = Users_Privileges_Model::isPermitted('Faq', 'CreateView');
 
 		if(!$recordPermission) {
 			throw new AppException('LBL_PERMISSION_DENIED');
diff --git a/modules/HelpDesk/models/DetailView.php b/modules/HelpDesk/models/DetailView.php
index 9212955bc..22a57bf6d 100644
--- a/modules/HelpDesk/models/DetailView.php
+++ b/modules/HelpDesk/models/DetailView.php
@@ -47,7 +47,7 @@ class HelpDesk_DetailView_Model extends Vtiger_DetailView_Model {
 		
 		$documentsInstance = Vtiger_Module_Model::getInstance('Documents');
 		if($userPrivilegesModel->hasModuleActionPermission($documentsInstance->getId(), 'DetailView')) {
-			$createPermission = $userPrivilegesModel->hasModuleActionPermission($documentsInstance->getId(), 'EditView');
+			$createPermission = $userPrivilegesModel->hasModuleActionPermission($documentsInstance->getId(), 'CreateView');
 			$widgets[] = array(
 					'linktype' => 'DETAILVIEWWIDGET',
 					'linklabel' => 'Documents',
diff --git a/modules/Inventory/models/ListView.php b/modules/Inventory/models/ListView.php
index af9d7e6a9..8acb18a73 100644
--- a/modules/Inventory/models/ListView.php
+++ b/modules/Inventory/models/ListView.php
@@ -35,7 +35,7 @@ class Inventory_ListView_Model extends Vtiger_ListView_Model {
 
 		$basicLinks = array();
 
-		$createPermission = Users_Privileges_Model::isPermitted($moduleModel->getName(), 'EditView');
+		$createPermission = Users_Privileges_Model::isPermitted($moduleModel->getName(), 'CreateView');
 		if($createPermission) {
 			$basicLinks[] = array(
 					'linktype' => 'LISTVIEWBASIC',
diff --git a/modules/Inventory/models/RelationListView.php b/modules/Inventory/models/RelationListView.php
index c4665b6ea..561ef7d0f 100644
--- a/modules/Inventory/models/RelationListView.php
+++ b/modules/Inventory/models/RelationListView.php
@@ -19,26 +19,28 @@ class Inventory_RelationListView_Model extends Vtiger_RelationListView_Model {
 		}
 		$relatedModel = $relationModel->getRelationModuleModel();
 
-		if($relatedModel->get('label') == 'Calendar'){
-			$addLinkList[] = array(
-					'linktype' => 'LISTVIEWBASIC',
-					'linklabel' => vtranslate('LBL_ADD_TASK'),
-					'linkurl' => $this->getCreateTaskRecordUrl(),
-					'linkicon' => '',
-			);
-		}else{
-			$addLinkList = array(
-				array(
-					'linktype' => 'LISTVIEWBASIC',
-					'linklabel' => vtranslate('LBL_ADD')." ".vtranslate($relatedModel->get('label')),
-					'linkurl' => $this->getCreateViewUrl(),
-					'linkicon' => '',
-				)
-			);
-		}
-		
-		foreach($addLinkList as $addLink) {
-			$addLinkModel[] = Vtiger_Link_Model::getInstanceFromValues($addLink);
+		if ($relatedModel->isPermitted('CreateView')) {
+			if($relatedModel->get('label') == 'Calendar'){
+				$addLinkList[] = array(
+						'linktype' => 'LISTVIEWBASIC',
+						'linklabel' => vtranslate('LBL_ADD_TASK'),
+						'linkurl' => $this->getCreateTaskRecordUrl(),
+						'linkicon' => '',
+				);
+			}else{
+				$addLinkList = array(
+					array(
+						'linktype' => 'LISTVIEWBASIC',
+						'linklabel' => vtranslate('LBL_ADD')." ".vtranslate($relatedModel->get('label')),
+						'linkurl' => $this->getCreateViewUrl(),
+						'linkicon' => '',
+					)
+				);
+			}
+
+			foreach($addLinkList as $addLink) {
+				$addLinkModel[] = Vtiger_Link_Model::getInstanceFromValues($addLink);
+			}
 		}
 		return $addLinkModel;
 	}
diff --git a/modules/Leads/models/Record.php b/modules/Leads/models/Record.php
index a519cce82..c56f41381 100644
--- a/modules/Leads/models/Record.php
+++ b/modules/Leads/models/Record.php
@@ -59,7 +59,7 @@ class Leads_Record_Model extends Vtiger_Record_Model {
 		$privilegeModel = Users_Privileges_Model::getCurrentUserPrivilegesModel();
 		$moduleName = 'Accounts';
 
-		if(!Users_Privileges_Model::isPermitted($moduleName, 'EditView')) {
+		if(!Users_Privileges_Model::isPermitted($moduleName, 'CreateView')) {
 			return;
 		}
 
@@ -101,7 +101,7 @@ class Leads_Record_Model extends Vtiger_Record_Model {
 		$privilegeModel = Users_Privileges_Model::getCurrentUserPrivilegesModel();
 		$moduleName = 'Contacts';
 
-		if(!Users_Privileges_Model::isPermitted($moduleName, 'EditView')) {
+		if(!Users_Privileges_Model::isPermitted($moduleName, 'CreateView')) {
 			return;
 		}
 
@@ -148,7 +148,7 @@ class Leads_Record_Model extends Vtiger_Record_Model {
 		$privilegeModel = Users_Privileges_Model::getCurrentUserPrivilegesModel();
 		$moduleName = 'Potentials';
 
-		if(!Users_Privileges_Model::isPermitted($moduleName, 'EditView')) {
+		if(!Users_Privileges_Model::isPermitted($moduleName, 'CreateView')) {
 			return;
 		}
 
diff --git a/modules/Potentials/models/DetailView.php b/modules/Potentials/models/DetailView.php
index 1b9ca0c45..2e17e7cdb 100644
--- a/modules/Potentials/models/DetailView.php
+++ b/modules/Potentials/models/DetailView.php
@@ -23,7 +23,7 @@ class Potentials_DetailView_Model extends Vtiger_DetailView_Model {
 		$invoiceModuleModel = Vtiger_Module_Model::getInstance('Invoice');
         $quoteModuleModel = Vtiger_Module_Model::getInstance('Quotes');
 
-		if($currentUserModel->hasModuleActionPermission($invoiceModuleModel->getId(), 'EditView')) {
+		if($currentUserModel->hasModuleActionPermission($invoiceModuleModel->getId(), 'CreateView')) {
 			$basicActionLink = array(
 				'linktype' => 'DETAILVIEW',
 				'linklabel' => vtranslate('LBL_CREATE').' '.vtranslate($invoiceModuleModel->getSingularLabelKey(), 'Invoice'),
@@ -32,8 +32,8 @@ class Potentials_DetailView_Model extends Vtiger_DetailView_Model {
 			);
 			$linkModelList['DETAILVIEW'][] = Vtiger_Link_Model::getInstanceFromValues($basicActionLink);
 		}
-        
-        if($currentUserModel->hasModuleActionPermission($quoteModuleModel->getId(), 'EditView')) {
+
+		if($currentUserModel->hasModuleActionPermission($quoteModuleModel->getId(), 'CreateView')) {
 			$basicActionLink = array(
 				'linktype' => 'DETAILVIEW',
 				'linklabel' => vtranslate('LBL_CREATE').' '.vtranslate($quoteModuleModel->getSingularLabelKey(), 'Quotes'),
@@ -45,7 +45,7 @@ class Potentials_DetailView_Model extends Vtiger_DetailView_Model {
 
 		$CalendarActionLinks[] = array();
 		$CalendarModuleModel = Vtiger_Module_Model::getInstance('Calendar');
-		if($currentUserModel->hasModuleActionPermission($CalendarModuleModel->getId(), 'EditView')) {
+		if($currentUserModel->hasModuleActionPermission($CalendarModuleModel->getId(), 'CreateView')) {
 			$CalendarActionLinks[] = array(
 					'linktype' => 'DETAILVIEW',
 					'linklabel' => 'LBL_ADD_EVENT',
@@ -79,7 +79,7 @@ class Potentials_DetailView_Model extends Vtiger_DetailView_Model {
 
 		$documentsInstance = Vtiger_Module_Model::getInstance('Documents');
 		if($userPrivilegesModel->hasModuleActionPermission($documentsInstance->getId(), 'DetailView')) {
-			$createPermission = $userPrivilegesModel->hasModuleActionPermission($documentsInstance->getId(), 'EditView');
+			$createPermission = $userPrivilegesModel->hasModuleActionPermission($documentsInstance->getId(), 'CreateView');
 			$widgets[] = array(
 					'linktype' => 'DETAILVIEWWIDGET',
 					'linklabel' => 'Documents',
@@ -93,7 +93,7 @@ class Potentials_DetailView_Model extends Vtiger_DetailView_Model {
 
 		$contactsInstance = Vtiger_Module_Model::getInstance('Contacts');
 		if($userPrivilegesModel->hasModuleActionPermission($contactsInstance->getId(), 'DetailView')) {
-			$createPermission = $userPrivilegesModel->hasModuleActionPermission($contactsInstance->getId(), 'EditView');
+			$createPermission = $userPrivilegesModel->hasModuleActionPermission($contactsInstance->getId(), 'CreateView');
 			$widgets[] = array(
 					'linktype' => 'DETAILVIEWWIDGET',
 					'linklabel' => 'LBL_RELATED_CONTACTS',
@@ -107,7 +107,7 @@ class Potentials_DetailView_Model extends Vtiger_DetailView_Model {
 
 		$productsInstance = Vtiger_Module_Model::getInstance('Products');
 		if($userPrivilegesModel->hasModuleActionPermission($productsInstance->getId(), 'DetailView')) {
-			$createPermission = $userPrivilegesModel->hasModuleActionPermission($productsInstance->getId(), 'EditView');
+			$createPermission = $userPrivilegesModel->hasModuleActionPermission($productsInstance->getId(), 'CreateView');
 			$widgets[] = array(
 					'linktype' => 'DETAILVIEWWIDGET',
 					'linklabel' => 'LBL_RELATED_PRODUCTS',
diff --git a/modules/Users/DefaultDataPopulator.php b/modules/Users/DefaultDataPopulator.php
index f10fc0114..eef5ead0f 100644
--- a/modules/Users/DefaultDataPopulator.php
+++ b/modules/Users/DefaultDataPopulator.php
@@ -1870,6 +1870,7 @@ Should any need arise,please do give us a call.';
 		$this->db->query("insert into vtiger_actionmapping values(4,'DetailView',0)");
 		$this->db->query("insert into vtiger_actionmapping values(5,'Import',0)");
 		$this->db->query("insert into vtiger_actionmapping values(6,'Export',0)");
+		$this->db->query("insert into vtiger_actionmapping values(7,'CreateView',0)");
 		//$this->db->query("insert into vtiger_actionmapping values(7,'AddBusinessCard',0)");
 		$this->db->query("insert into vtiger_actionmapping values(8,'Merge',0)");
 		$this->db->query("insert into vtiger_actionmapping values(1,'VendorEditView',1)");
diff --git a/modules/Vtiger/models/Action.php b/modules/Vtiger/models/Action.php
index 76ceda4d1..e14de37f8 100644
--- a/modules/Vtiger/models/Action.php
+++ b/modules/Vtiger/models/Action.php
@@ -13,7 +13,7 @@
  */
 class Vtiger_Action_Model extends Vtiger_Base_Model {
 
-	static $standardActions = array('0' => 'Save','1' => 'EditView','2' => 'Delete','3' => 'index','4' => 'DetailView');
+	static $standardActions = array('0' => 'Save','1' => 'EditView','2' => 'Delete','3' => 'index','4' => 'DetailView', '7' => 'CreateView');
 	static $nonConfigurableActions = array('Save', 'index', 'SavePriceBook', 'SaveVendor',
 											'DetailViewAjax', 'PriceBookEditView', 'QuickCreate', 'VendorEditView',
 											'DeletePriceBook', 'DeleteVendor', 'Popup', 'PriceBookDetailView',
diff --git a/modules/Vtiger/models/DetailView.php b/modules/Vtiger/models/DetailView.php
index 04184ea2d..f239259c8 100644
--- a/modules/Vtiger/models/DetailView.php
+++ b/modules/Vtiger/models/DetailView.php
@@ -94,7 +94,7 @@ class Vtiger_DetailView_Model extends Vtiger_Base_Model {
 			$linkModelList['DETAILVIEW'][] = Vtiger_Link_Model::getInstanceFromValues($deletelinkModel);
 		}
 
-		if(Users_Privileges_Model::isPermitted($moduleName, 'EditView', $recordId)) {
+		if(Users_Privileges_Model::isPermitted($moduleName, 'CreateView', $recordId)) {
 			$duplicateLinkModel = array(
 						'linktype' => 'DETAILVIEWBASIC',
 						'linklabel' => 'LBL_DUPLICATE',
diff --git a/modules/Vtiger/models/ListView.php b/modules/Vtiger/models/ListView.php
index aaa6028f7..c249c1ec1 100644
--- a/modules/Vtiger/models/ListView.php
+++ b/modules/Vtiger/models/ListView.php
@@ -424,7 +424,7 @@ class Vtiger_ListView_Model extends Vtiger_Base_Model {
 	 */
 	public function getAdvancedLinks(){
 		$moduleModel = $this->getModule();
-		$createPermission = Users_Privileges_Model::isPermitted($moduleModel->getName(), 'EditView');
+		$createPermission = Users_Privileges_Model::isPermitted($moduleModel->getName(), 'CreateView');
 		$advancedLinks = array();
 		$importPermission = Users_Privileges_Model::isPermitted($moduleModel->getName(), 'Import');
 		if($importPermission && $createPermission) {
@@ -475,7 +475,7 @@ class Vtiger_ListView_Model extends Vtiger_Base_Model {
 	public function getBasicLinks(){
 		$basicLinks = array();
 		$moduleModel = $this->getModule();
-		$createPermission = Users_Privileges_Model::isPermitted($moduleModel->getName(), 'EditView');
+		$createPermission = Users_Privileges_Model::isPermitted($moduleModel->getName(), 'CreateView');
 		if($createPermission) {
 			$basicLinks[] = array(
 					'linktype' => 'LISTVIEWBASIC',
diff --git a/modules/Vtiger/models/RelationListView.php b/modules/Vtiger/models/RelationListView.php
index 94803f0d1..bd8b767cc 100644
--- a/modules/Vtiger/models/RelationListView.php
+++ b/modules/Vtiger/models/RelationListView.php
@@ -143,34 +143,36 @@ class Vtiger_RelationListView_Model extends Vtiger_Base_Model {
 		}
 		$relatedModel = $relationModel->getRelationModuleModel();
 
-		if($relatedModel->get('label') == 'Calendar'){
-
-			$addLinkList[] = array(
-					'linktype' => 'LISTVIEWBASIC',
-					'linklabel' => vtranslate('LBL_ADD_EVENT'),
-					'linkurl' => $this->getCreateEventRecordUrl(),
-					'linkicon' => '',
-			);
-			$addLinkList[] = array(
-					'linktype' => 'LISTVIEWBASIC',
-					'linklabel' => vtranslate('LBL_ADD_TASK'),
-					'linkurl' => $this->getCreateTaskRecordUrl(),
-					'linkicon' => '',
-			);
-		}else{
-			$addLinkList = array(
-				array(
-					'linktype' => 'LISTVIEWBASIC',
-					// NOTE: $relatedModel->get('label') assuming it to be a module name - we need singular label for Add action.
-					'linklabel' => vtranslate('LBL_ADD')." ".vtranslate('SINGLE_' . $relatedModel->getName(), $relatedModel->getName()),
-					'linkurl' => $this->getCreateViewUrl(),
-					'linkicon' => '',
-				)
-			);
-		}
+		if ($relatedModel->isPermitted('CreateView')) {
+			if($relatedModel->get('label') == 'Calendar'){
+
+				$addLinkList[] = array(
+						'linktype' => 'LISTVIEWBASIC',
+						'linklabel' => vtranslate('LBL_ADD_EVENT'),
+						'linkurl' => $this->getCreateEventRecordUrl(),
+						'linkicon' => '',
+				);
+				$addLinkList[] = array(
+						'linktype' => 'LISTVIEWBASIC',
+						'linklabel' => vtranslate('LBL_ADD_TASK'),
+						'linkurl' => $this->getCreateTaskRecordUrl(),
+						'linkicon' => '',
+				);
+			}else{
+				$addLinkList = array(
+					array(
+						'linktype' => 'LISTVIEWBASIC',
+						// NOTE: $relatedModel->get('label') assuming it to be a module name - we need singular label for Add action.
+						'linklabel' => vtranslate('LBL_ADD')." ".vtranslate('SINGLE_' . $relatedModel->getName(), $relatedModel->getName()),
+						'linkurl' => $this->getCreateViewUrl(),
+						'linkicon' => '',
+					)
+				);
+			}
 
-		foreach($addLinkList as $addLink) {
-			$addLinkModel[] = Vtiger_Link_Model::getInstanceFromValues($addLink);
+			foreach($addLinkList as $addLink) {
+				$addLinkModel[] = Vtiger_Link_Model::getInstanceFromValues($addLink);
+			}
 		}
 		return $addLinkModel;
 	}
diff --git a/modules/Vtiger/views/Edit.php b/modules/Vtiger/views/Edit.php
index c7500e7f4..de975fb38 100644
--- a/modules/Vtiger/views/Edit.php
+++ b/modules/Vtiger/views/Edit.php
@@ -18,9 +18,12 @@ Class Vtiger_Edit_View extends Vtiger_Index_View {
 		$moduleName = $request->getModule();
 		$record = $request->get('record');
 
-		$recordPermission = Users_Privileges_Model::isPermitted($moduleName, 'EditView', $record);
+		$actionName = 'CreateView';
+		if ($record && !$request->get('isDuplicate')) {
+			$actionName = 'EditView';
+		}
 
-		if(!$recordPermission) {
+		if(!Users_Privileges_Model::isPermitted($moduleName, $actionName, $record)) {
 			throw new AppException(vtranslate('LBL_PERMISSION_DENIED'));
 		}
 	}
diff --git a/modules/Vtiger/views/FindDuplicates.php b/modules/Vtiger/views/FindDuplicates.php
index 007822e3a..f726c7b2e 100644
--- a/modules/Vtiger/views/FindDuplicates.php
+++ b/modules/Vtiger/views/FindDuplicates.php
@@ -60,13 +60,16 @@ class Vtiger_FindDuplicates_View extends Vtiger_List_View {
 		$module = $request->getModule();
 		$moduleModel = Vtiger_Module_Model::getInstance($module);
 
-		$massActionLink = array(
-			'linktype' => 'LISTVIEWBASIC',
-			'linklabel' => 'LBL_DELETE',
-			'linkurl' => 'Javascript:Vtiger_FindDuplicates_Js.massDeleteRecords("index.php?module='.$module.'&action=MassDelete");',
-			'linkicon' => ''
-		);
-		$massActionLinks[] = Vtiger_Link_Model::getInstanceFromValues($massActionLink);
+		$massActionLinks = array();
+		if ($moduleModel->isPermitted('Delete')) {
+			$massActionLink = array(
+				'linktype' => 'LISTVIEWBASIC',
+				'linklabel' => 'LBL_DELETE',
+				'linkurl' => 'Javascript:Vtiger_FindDuplicates_Js.massDeleteRecords("index.php?module='.$module.'&action=MassDelete");',
+				'linkicon' => ''
+			);
+			$massActionLinks[] = Vtiger_Link_Model::getInstanceFromValues($massActionLink);
+		}
 		$viewer->assign('LISTVIEW_LINKS', $massActionLinks);
 		$viewer->assign('MODULE_MODEL', $moduleModel);
 
@@ -116,6 +119,7 @@ class Vtiger_FindDuplicates_View extends Vtiger_List_View {
 		$viewer->assign('PAGING_MODEL', $pagingModel);
 		$viewer->assign('PAGE_NUMBER',$pageNumber);
 		$viewer->assign('MODULE', $module);
+		$viewer->assign('IS_MODULE_EDITABLE', $moduleModel->isPermitted('EditView'));
 		$viewer->assign('DUPLICATE_SEARCH_FIELDS', $duplicateSearchFields);
 
 		$customViewModel = CustomView_Record_Model::getAllFilterByModule($module);
diff --git a/modules/Vtiger/views/Import.php b/modules/Vtiger/views/Import.php
index cea066b77..4046572bb 100644
--- a/modules/Vtiger/views/Import.php
+++ b/modules/Vtiger/views/Import.php
@@ -84,7 +84,7 @@ class Vtiger_Import_View extends Vtiger_Index_View {
 		$viewer->assign('SUPPORTED_FILE_TYPES', Import_Utils_Helper::getSupportedFileExtensions());
 		$viewer->assign('SUPPORTED_FILE_ENCODING', Import_Utils_Helper::getSupportedFileEncoding());
 		$viewer->assign('SUPPORTED_DELIMITERS', Import_Utils_Helper::getSupportedDelimiters());
-		$viewer->assign('AUTO_MERGE_TYPES', Import_Utils_Helper::getAutoMergeTypes());
+		$viewer->assign('AUTO_MERGE_TYPES', Import_Utils_Helper::getAutoMergeTypes($moduleName));
 		
 		//Duplicate records handling not supported for inventory moduels
 		$duplicateHandlingNotSupportedModules = getInventoryModules();
diff --git a/modules/Vtiger/views/List.php b/modules/Vtiger/views/List.php
index 0f1cdbaba..97a3a8218 100644
--- a/modules/Vtiger/views/List.php
+++ b/modules/Vtiger/views/List.php
@@ -216,6 +216,7 @@ class Vtiger_List_View extends Vtiger_Index_View {
 		}
 		$viewer->assign('LIST_VIEW_MODEL', $listViewModel);
 		$viewer->assign('GROUPS_IDS', Vtiger_Util_Helper::getGroupsIdsForUsers($currentUser->getId()));
+		$viewer->assign('IS_RECORD_CREATABLE', $listViewModel->getModule()->isPermitted('CreateView'));
 		$viewer->assign('IS_MODULE_EDITABLE', $listViewModel->getModule()->isPermitted('EditView'));
 		$viewer->assign('IS_MODULE_DELETABLE', $listViewModel->getModule()->isPermitted('Delete'));
         $viewer->assign('SEARCH_DETAILS', $searchParmams);
diff --git a/modules/Vtiger/views/QuickCreateAjax.php b/modules/Vtiger/views/QuickCreateAjax.php
index 586d8f892..7a0bbcca5 100644
--- a/modules/Vtiger/views/QuickCreateAjax.php
+++ b/modules/Vtiger/views/QuickCreateAjax.php
@@ -13,7 +13,7 @@ class Vtiger_QuickCreateAjax_View extends Vtiger_IndexAjax_View {
 	public function checkPermission(Vtiger_Request $request) {
 		$moduleName = $request->getModule();
 
-		if (!(Users_Privileges_Model::isPermitted($moduleName, 'EditView'))) {
+		if (!(Users_Privileges_Model::isPermitted($moduleName, 'CreateView'))) {
 			throw new AppException(vtranslate('LBL_PERMISSION_DENIED', $moduleName));
 		}
 	}
diff --git a/packages/vtiger/mandatory/Import.zip b/packages/vtiger/mandatory/Import.zip
index a5ab5cc482a2ecb9de2f898af15452dc9c48576d..effcae65f41b030ee57f0e61235427d50d0fc555 100644
GIT binary patch
delta 14207
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

delta 13267
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
USMzt3fA{ka4FJ%q`}yww0oGToMF0Q*

diff --git a/packages/vtiger/mandatory/MailManager.zip b/packages/vtiger/mandatory/MailManager.zip
index e76809c693ddbeacf28cf7f32db3027fd9299c10..e71f5343a1281bb51b7980c718503413d7a6421d 100644
GIT binary patch
delta 9732
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

delta 9825
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

diff --git a/packages/vtiger/optional/ModComments.zip b/packages/vtiger/optional/ModComments.zip
index 38d0f773a3c661cbd7348f56afbf14a1f71674f6..aff4040abc6ba2367d661e93db524783e602788b 100644
GIT binary patch
delta 3394
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
L13}+Wfc*Rq`A4U=

delta 3400
zcmex%gz?r9M&1B#W)?065U^-iH<4FCW%56>@P^{z@X`uy21b@|j0_Ac0YF()b%AR5
z)QJGqbAZj8Z7KpX&t!5kig_EKtYzectC}1hq=Z%3=H8$MEZj)$n>>q24xhzvk4(P9
zq(z)U0Rtm^3K5R%wz0wP$lEqa$e!72;)GqDu&Ep~Gcb@Rrx{pbSFy!_jRma2#KI1{
ziZ+Ws%$x{ceo`?e&hehAj@S*Hr}`Gz@dmP%*wxj_ma~GL#>HccT}3p{B>}JsEoKMo
zD(aX!IlwBuE4g7;5vV+m5v;<^&X72do$<lp99iGL5Tj<>*<-ito!thA3R!;~X5{%l
zV*)#8p@TJcGd?)DLgLiI1&4}u7aI<w7@MMQK%B?)v~VPn8m(T4vsdckNF={?d6>lE
z3D?8u^pU;ifZ2F0GXsOtBvtXr0x<&hoD9s^GA1zNZVmG7zic32Yrg-{+pMK(tYr^x
zJ$3fJ<-D}cMKk1)$kKCL3{|#moI9=S?*G2IO9FJmH`HuMyI1`=?O4A3iXhhV#o~+W
z>zR5!tW+`3)ZxrlDBqxJe&b`;gzTowZSkFv5if;WnxEEJU+TEbIw>u>u+1`Eg(uPZ
zR)OY+XWzDl^REAWq_m`8f0N_f`3g&1A8)Aly1?&ts);*&VVLN7R%Mx;y0^3T9=Z9{
z>$9zRWov{OOWv^^Up5D+Y?#)Ywx84Zpl<mOPT3WcPBGs8_b=>KX`Zd&#9O=EcxEiS
z6V&+jWy~>tm1(b@+^ApbD&anTPx~sTSHf(Xl9$-EYW~#E*{#sA`i_K7is0#8-&UVq
z#=8Ax+vSVAS9LcV+}QF=PsqMGVZpAgZ>0{_%uZ0<n9uogmh}Gp8`PJ6*{hgbxOlhw
zlM~Gcd9$~aUA5c&FD7@@2flx~GV?rRQ*sMz?oIBUuXy;yJ?<-;GPI(enbupriu`l6
z+C5^+Ou1#zJD*P|xN)>yx8uD)T;SR_nr}V|%E=dAmGm;P-yy$Ez1Zxi@9kx!*1Y;P
zdyZW2Kf#|NQJTw_v+}9nq24!+D>Hw)|IKOp-2Yi;=CbaaRkqQ(n@^Tl&i1o1_ix<o
zzaLz3BT~ad&QD7m87B+t7-CP+5jt*+^^8n%%<xji1DGh_fQvx_$`)XF>j+}zB<7`;
zCZ?wr>xYK0LQ)k*)q&eQ0TlCGAm&X><yXaL6x=tHAB0OXE}8r*TvG{@nz7o8P%N7y
zS-+&Qmx+NPH!&|WEw#8ruOc^x99MIoxH^v=Xkva!X%68qPz47buo6HCR1p;8Hn30L
z5Fu@k(?i%JMh3-<f9#VV#K}!Q5X(wTz!=6$vMgx~;Q;H&iRULqPhcEK4?h=JPfwgE
zZui0?z{7+qHTNg56gtMuz@P$kFR)-@Skl<W3p7W`L$4sC0DpWS3@a6@(E18AY%b6+
z4HU!f3IYw&cOWqUWl;jqM2unbMhDT!_R*Z`M7n4)PqZZKlE!YhP8njtME2T`16iyL
z45tMd7?e@GaZO@!K$PO-1X(sBGec}7C`#tafwj$!<RvB=-$sD+9M%Wx(T)@##>p@C
zKU**n7;kOB&^JJG^4rG67C>{%aoY<|x|8R|OR~OooM#0JWf>PDL)b(7;>2YifHtSF
zFfgbi*}SCjv(@B;L_OR#!_&>=e?Xg;G`iS=ZJunAAWV#=4T&I4UiJ`8uM!1`(UhA2
z($wMv(xl-`RDtGUm*X#I%E7?!Q;C5=6~%|rZeYs|gHn_8i&6;Z6hv6p0@LMN$Mt?7
z{i2gMM04ZL8t`E9@b_J)+W-t|F<>O4=2d2Ym_cll17g`G$7`_>>AA%P)7)8s#qUmF
z^r2?ihXKfD3KQc%lx7V|NO=T93=@bUDsI=ufTF1=6ybswF}#{sOAl5yQ28wbgr>k!
Jhd&&|0{|qfph^G$

diff --git a/packages/vtiger/optional/Projects.zip b/packages/vtiger/optional/Projects.zip
index f85a778a156e3ad15481fc4e673bc137a7e374c0..1b959c6144e7007e1bf84012a05653bac82c114f 100644
GIT binary patch
delta 8628
zcmcgy2UJs8w+;|`kzS+)klu@-1u)bINbemaAP_V(sU~zp1<{KXktQld1O$;L1nEVo
zDi)BgA`D$A3cN&T#^L{QbglQ+OV-UwR`&jOJ9qDUzI%(G5f?urPLXCw-Gy3<yJc7h
zg;0Ztz#m9JApFODZCWA<3ePWy(^*l}fGrW%5q7)?$A5}}KqdwxU@8#d)#11WxVS-%
z+%3CiU8a)$Cm!J+FyUjr;24q6zX>wq6)3(T3KPpRAB0$iB5oz7{9zf6;`ukgAA;kw
zziD|6@)OHae86E6LbPqF64D3x_Gh$z2Z3PuSghxb&q5e2AajKUaCRaGRAGk>j>`!a
z3?{Mi+yX@DB&ADnKh5QL^s%HZ#LHXa3OV?)vC#vvzAS(S3k7h&o*qjHB2ghpvu-~5
zU!{0zJ#IX$OOJWDcVUpS9U3<fUdyHwZ~_=T>a8?%1Z-&;#~RLf#t-Ea%zZd}bG$(V
z)p<k9u8dqiXJGM3#CXJ7(qPkGicaP^|IOCPjlEZBieU;q1XEPvL`olAJGJ#j2SqHO
z@$%Qt(lp@n7EX{-up=a9ag$hg%h!;EeF(&qETh%ob-nq`=gTD}U+&a~OlLn{@}e`S
zj6cGX()*GYyvyw(6e)DIMed^LapKr;G5#d0Q~-O31KR@0kM7yzDU&gh=P3H(V<q<S
zf#sA4QWM(3=YjyoqZ_1LQz2st_Pq;;$Ty!phGr|p->;vL(M?9h<*Q&5#}j?YWhc3G
zB`k;Q=JFv5Ii`<rbt&BKX4cC6DXoTUK5w!2edo3N#;>+%ygQz!VkPgCH$WVxLS!YU
zl`N3jiFN4QZ8MpXh}z)p=-TE=p1o9SQpswH25&IvXQzNo{ffXs$GedTK($rV5_bRI
z6Lv4Bp%jjhI~nuGZ>9x7)LL~fmEAhY+I50l-J#nYQ>Cn^V{DA{Q1mq1-YUs_ALdzd
zlkZLu+E!FR%+AxQt6GLd(*pO-!cm*uQ*9<V1{+KLhb<0ed~-(jMQtiy*_y$XnGbS-
zi>G}SHevju%yXyIbi2}0?~eI%R&>6nf&?}SprP_-VFg)1E)tK5Azm2kCuL=4Wcn4{
z@?Y{|t*#fJ?DcmmuD0>~5Q&xQ{#=;-7!Cd4?0hIJcia4Z5i2WTf9ZsSpzY4CyzR}C
z-SgN#MxRx?TN`xQnw~BWU(fy=wGEy-HT<yKOI30<WE}Czjs2EH1hd);y)x^>0jLZk
zBEIuuxGUAR;96RncCOys&dbp(#z)t#kZzx`mvuCo#N9o7Bn(ud);lJr!3*vkj5!on
zZzN2^eaOflMqMi4C{Ia87Uua^Y_AvEQ#Yg?JLB=eLameBJ`*PIoK8KLnuuVENPDH1
z<z99bH@0p(7(%<Y$F{)c96j0JnsxDUg+`_mX3;puCNA4><D_8I!!}H5htcH2dx!w7
zJ2RPkl)71u_8QrOmaQEU3tgO%oOiOj%l9fNXfff{Bp1e<Ug7vgq~43qCwQeuKhK)9
zJ=w8z&363s7qVra42<xHi}sj;*Jpdrc-HX7m)9;OjMW%af05TP&cr;eeI6c(7TJX|
zt_=B92gmVXrk}2z;#IE<R2J|{9^EN%h;w{Y^D%CAEM{l<5TP~x-7ElJ7R7@*gExya
z@wdL?#-)6)L^&7vcZnx#Kfz#QM||%tbv$t9gStx<9q&t`Z&rdCe`2ML(d?g{_vNvF
z?fE|fOS6(Y*zHj(24d=ereIx5?O;hAZN2Z#alwD$oEQB3_Y_>#IeIY0OPw%c${$|o
z8bc43OEKOd`^SK>M~MB~fcXJfjF3MVa2a7v_ARqYr2Gd<oF+X&K}$r;L-J!>HQnM+
z+=CMaD9ZJ;XOOEWGC<nWf)qqT7(CxcHsQ}dN9=yxd^--cJ-GHhUF2!!pkE>Uh$YXK
zgJ=)H+~xv|iOI0PWfehi=dTw9i2cv6^q@U>E`CV)o^cOC{eBGpL<8>G(SrBjlO#Zs
z9UK2o<Nx9PfFlQZFG?H?{Nc#|bNL^+mUY6*!^wC7BPZ^k%m2VnBFINs5#-tN1D!_m
z*9pQ8_J4*1V%wLX!$$x=dk*by^(CB~2iEty{r!U<1QPrchzOtWy(k|7kc0+d{{IUG
z{u&0cDc7fBMhpVclYu~d`!G(45S#&=91dyxI@btx@Z{7s-uN7TB?|1rVG;j^BjL#K
zJ2}1VK*%Xd@|#Y(!=Yd45U!M*ztx#o?oT@uKsMgiFY-sYe#6-lY{@Bn)5~R~6a01k
z2x{L?$=6U2C=lt3M!5$5aykE4GWo6qlRSz*ldHh5LL=BJbtcG1Dg!RgtiZT4`|p(E
znB&e;IKHHTr2kn8PE|aP*s<RzXZE7*^#DAECVpA)?kne-8VJbM;s4iM{fJlfTfDeq
zfQ_s0&*S}Z3SwOF@xl)wfGiiz-|=$*_lZ&$?<0&21mfQ3ry~Lc)FB|h=_ipLhwxt1
zwh_KTxt{j&Kn4U#h4`WlY_!0Nt1w_6C(3e+Kj^<VPJpRfPL*Q(C4Tz9_C<&ByC_nm
zJQ(1@Z;oL29hCO}|1N6L?I*)f@njy+KZe|I@1kN*VseCK^plO=_XY4FavPxyy_9~E
z0R&>kw><&i3W^P&k7JO>?@b)k(ya-{fApt6U_JqFYO8Z+oui&_rrol>GW|KLQNL`&
z52!-RQB~nKcHWlnzG4Umme9hy4vlQ-^P#thSByyIUYJFsW?CJWpzDxkxT~t582|PP
zaMVwd3^<aiIj04j^5ew{Odzk$R?tgE8*bOpw13Tq#1JbVA0m%*de@@1f~uVsVYCj>
zx+q?ZJS(ilwMU%0lMPv|W=*$^4wwJ*Ns@vQD)USvaahTED`vAZIkG=HH*pND&e&k;
zA8_RJMmssJk7g88a=Qv$NFC%lV@P52)1A;Gp7(KA-T1kjmL!na9%YlW$=3rcxq6Ic
zMy}t|47W?sp0|YAi*OKiGWp#=?#9e>%Rb*}RC`%#LW;?8*W`$c-8;un8kAGoCPq1u
zr;4_IkKx+3wV{bRr7z~W9eW4&-k#}-r;qJm9<IW7iGjo<jJ~bW2J$-S`c2k0MbhK%
zf>4nXVi9|iZ*v$Uu=j7!nUYd_K4ZRElPEAV`x-~0t_!&ev5To>Ot*8F<DWg!0G_M>
zsj$axwJ$#Bpsu`j>#6P?mCw}y%xTM^Tujt5N#&<!V_YQjR&GCm-tRkXDHSQ)QrO5S
z8!E_E3x1qzH@wjPSjOnyQoAm_O(=O6&=OLpFn1*!36+SBQpE}`HGU3Tv1%35u716v
zwgT<8!eB%YV{NKfDS?^9cC!ni?ujqNDd^+R`ADzJ*^)2@b{p&&T~Gk1KNUOFnRmC;
za=<a~xLmTY-WfJwpJz-|$`KrzAMN*FA&VV2RPJYV-W=6sZj$vBJ+W<PGMvE7R}Wga
z%T@RaT``(v=#6b8McElvPhPIJQj}d-SMVzt^OFb&SQo3ijEvuI{W#4X<P9G~*9?G(
z1t30e8Wbz4t<Tvbef9fuQm4)s-~{JR!-J`UVhp**X`Vo`yF4IWnwL~{2gkqET-8)d
z1eZ!R={R%rj9OngM#6lNhD%jHOM0v(ZuwD%2SjG+d<OQxtkq!biKqoW$HLoJfX**y
zA@rP%MRAJHoaf_84ssmFSI?|P`4i<{q18K^(hnOYQS)15=Auh#v2SL0<Ss#?p6K@?
z%;IgjMcchjRQul5jQb+DN>XQdlivSSPkA$qp}wG#$&`a#3E3)IEur)V5d10FhV(Xz
zkU(#`ZDkYIcIX^ef$zWzsg{>t^A#IruJP#2F+!yhB;*+%Em_q|uvOKSTe>h4m-<vq
z=B8{Bp&z7uKvr}_nRT6o>Rwl#nd7%mN&1?g0?)Y=;3-qnRrAHmsoVL57|E*}?bK!n
zi6#>xmp@E0qVoEzM7udkGJ=G}y)&aC{K<vO=_KxFV>e9|He%jXy1R^XlvQ0|kEnw3
zUn4?Il#0pf>)XAP*P*Yv?v|!+e!ksVZ;J*@u0oBpDLiI3Y)ZuLF~#Man<1(*8-R<I
zyPq<sj*7d&>OE1SKW3vKVqEWv969oZ)S{twxFd9E-EWo%!DLu>?9sIhdrd`4kFo(;
z3UU$A46K<`4NONlmeMD|k&RIz*o$nN(?<joJ^IPe@_cTVNM_9HNk^p?6`|hd<No&p
zEsS2bPffMo^=LmU5bz=ts?JvCX<=Lso(PqsndEAgdYsc-wdLZlx=bJ0=T<sFJok_&
zQZh2H<l1Sqp~@ahFA7)rx2(bGd#o43QMYHT86~g~R$QrIS|}>FOY6K<Si#~k0d`Wo
zVSirg5R)72Dw<t_3j)lcw_a1ToCj4bLp~1NT+Xi^ZJOa={i^3a*-6eSPgy>}^EvMp
z^>`3#MQ=q7jYWAq5uA5gIYhrse=Q;B_TG^I@lIFD+QW=c8$Y4;T#S07O1l;40(kw1
zMVlzrVk|CwIcy~QHtoGmyB4)Hf2K}&8F`H39Yu!L`QhL~Ve>(WmmT2+Zn(SZts!S9
zRAB7Q-g^)vRgh{J_rfT8?n{k!yTjIYa3a-XlG_Ytsc-3CjR@{B7jBVm)Zlw`=af*b
zybHh5$RDNshtugY84x1m6xC>)z+8PCpF+<$Y(JC7m6JBJ2%2`Ab;F(BUR=x5$q?h^
zRSBh)&mX7G+0)+(jj38&8x~*ra<OVHO{85X9A$W0=DMjtM>Ru9Iqgw<40g+hZNc>Y
zgR`<uU0=bYms<wTgo%!N!oe*GXz7Aek8T&47JB<v&B$_X^qzxh&!KKiHe=7#9CDdX
zS;a=)L)SJQBj*IaeoRUXgIY|F&AsvR?HnBR@u`^$Gki1pdQa|+pcC|FV^pbF^~!2<
z#x5-BT!9h&#XgTlSN~Fl1{=Tbl*U`T1%CX<BcUr|x3AU4*;5vGGtRWE=2;$BXz|GO
zqQ9E|3Lbvy;ln!ypTT5cnzU0N6_pm>@K+9DiIAo)o()zRrN%d6(vy|cvBNO{?u1i}
zu`8PuSb3?4kzQ{caOZv>wAD8MT*6?HkE=$oyNO=&TEkr->C0_p+xba!3Anwc3Z-F`
z!pcLV3ulSVtZ0j^*_6@CRI91})LfUJ-qcT1CwHWD%&V$T%#A504z^K`83QxoXi_YJ
z&=5tUdEkDCAeJ{loQ0P>>RDcrUyh)uT7S{x%HcBKW{(%ER(!D-RI^c=0Szfgzne<a
z^9HZn)q)(uk4h&B$ctE_pz-!5#W3?5G<9Kf<}9fmAB}WY$^1<{MB3e&K9HExLEmN=
zpNr)fiEq1|8wCl-Jj&#t8eVSjpw{QA;z)i;-i-c|Vj0$xejP<4?Nm%p>{@TgeTEw4
z@ycGH)IWlLx)edj-D$MDqa13M(#ecV^Qp;u>~!{8&Q_5i(A{zw61?;DOq&$5Zb;E4
zQ{p=_&BcNh1mpCEJ3k$?Z%eXY)N6wLeb&uY{)W1D?RGLxB#3tDHtvv(+6dW-)`!<<
zT%uxWkess(otpC2`Vd#~oc|(kO#rjTCkw9budFnN$t#=_RRZpzRcyAZr#{~n26&?T
zk0qI~dT2)P1@gULahf^G3kSIrUv)@gUh3OLi`{T_1Uz9;LNPIWNEi(E6_5<$Wf5wn
zQ}rMfy50F@9SMs_qX<iEXe|I-!vysGgzc93>~<W5F4nhaDm-H<Z!>r^2GuyxyV#cr
z4;q`aDY85)m>-x>Fo_5RI1hFACFo@{^Q!9A%;r14YYbjC-(b3}!r)||+X3{2i4idY
zTVX=jfrwYm@5P3`6vi%)U^->gB<uu-!6#*8b@-$^N4ph3nE_YjM~$*-?vKYRXYLA4
zA)NRpsA7P+sZ;JfdT_1Nk^M4ya)t}n0rrp14E*t(+H<~XrG{n{?yv@Pv+67qxFGBp
z|9rv1=B8aLTk2an)X{s};#M$k!S0=>>D`}&@1^ez(siAzdiBYth9~Eh^xTCez~iB2
zk0WPHiL~>4VgSvZ5aH}epgmlI*w6`B3x^#Vvrp{NVLSWUCu4Hx{W2O*j}TX7cq0`+
zW$klRt33Yc!$B#HH^<gW<nOwr^tY9`yD2T6|1v!p@{(Z_{6c?3D9hYcZ6iacNh%pf
zEy?Kz+=`IHE(`W0y(G2jsn#J64tYjg8W&d>UffZ9QIk``dBXL*bpNvwS#K_ly9rMH
zp7+99ulKPIP0BS(&$yXGtux6C<ET?5zltXDF9j+y57j)3zW21*>6BJhj!ZPn2J(K{
zb5vsu<T-V9JK2~wSS3WpSTfSE2O^27uir$AV!j5P!!lvicSFwZ0!nq8X!W3tN7m#h
z;pm$y@kyl-_lr0z9B0L@zxc{?RkfO`ngQ7nBv#59qdr_sf*8K!^B5_$6B2)pex>xK
zrAdv&upsjb==prT>ola|4XP1fk;JD|qbE#jl%B{09=39z$JK_Bw9Qv?t7(ws26|Y=
zoW=OFj$;LD+Sgp)4IZ7$A|F|9&$aN#*tW>-+!kk>+B095ol+?TAZsrYcbHAjwajrt
zMOI9WCJ!5WML*}ewP30sR<TCnodRJdS^sc7h;|ao%~_P=8KgA$UN2pr{FD)^U?n_j
z`uS@;j8b`+L&g^?rj<vnUR4fZ9S=UvJD7^bY%iX$e_nC2^iqGA_X#-m^d-($S&z<M
zxLNr^V%3lXsm7^zv{Tox&`Ga)lOr+RM2F$i&B&X=9aZ)|&V%+&BhJ$NH>=|!Y9j(*
zYSnc(^=u#yBLGdV@Y_ajQ%2udWLkuusEC4RFlx?NaQ4-jd*6SNT5<)-a*TUsCFMzZ
z`pO@+Ih$}U=8NnLWxy7O8>`?ja{iMD0^oje=wgOB|HawD(GHI&4A#W3GTr|y=3LlO
zQfrmQm(BMK8f5Ct?V|iHm*`+&n2pJGy9dF@K$#NRX-jGhPiO>fUf$*L`)RGXJFE+y
z&4ax&Z`Y|T9wBZF!n@l95>Cspn|y-Uy6P9a5@mIyOc~enNbH=Kq{fny8PnXjqT%hL
z0X5Nvy^0%RKH7JbM}NsaWML^n$nnFixkN26iJ^T|nl8M*G0noqA-ts?23v1kHWt$s
zHy*{*c(kPj)%Up;29e-y$o4f;Bsu!nLYtk;wOR^01RZ!3az({P2O^oKmPYTu<)xiO
z@9peVtxkSzaZHQ1#bQ0e3eCD7I1A5HPn14BrzW<yCYDCY(zUEr3L3ZlK-Yk#Q9JK@
zHZMS`aAJyXbI)vOmXA(2cE_)bqSa{4gr2x_ed=l4W+pF<6eC#=e<_>%%Fc7*&XDj*
zp_hB&7PJ>U>8s^0VB;z^j9;uzZ8}f^g&M%c)Nz{E$#HcK6HM5rv_kBiRTNtKCrx+X
zwKi>4l(#0ZB#jVR9VKa)rGg@qZ6zC#rc=sntjQghHf7Rz&WK4;O~b4tn%<3wSW0Zx
zJ}zP(yzor2sj~eH%jR=qDx0Nab-Jbx6m?T}vWaqvi}S=RQZeM<o?$n2;>T>dhCXSO
zIcs&@14F7}_u-eZbwj2drJF^4)y+j!1rK!c>&aJVV?q}=qvi?>LQ?8Qd<;puHTau3
zk~waY52*O)Pv<K%(mOX*Ix7`^Y`j+)55r~T@LUkxf$8$4-oC6#w8&z3**UxjGyS+-
z&vi4M>k%X6?rYtNR-v(O3G@89ie5o9k+)i>9-DKlf4-YLR)3cJ%y>+~J=`gC4aUm1
z8+kd*O&j^E$RHPO>p<$*5kFR!8BO@44`6saTkAC&Bdt=xb@vYp=gYOEUQ&p~Mxz=U
zj>Nm1AYHvAHGv6oeMG9!Rd>xoGqXqO7H{cR57^vq_f=)+Xy}gj``mqZR==~0zz9nG
z_t<J7U)6)T=pf&r??n29`%l<vRwRV{|CX(`{$H`xh|cf?&P+T9c^=O*?<1|gG1woX
zX|X?LzW!#Q_OY}3>FY>5ANIeXuR+WpAjyS_bPwJ_3<4%mEIJ3$OL+d)#DKu#|Aa%?
zM{?1Vd_%%>D$M)`kSX7R{*Db`h~>bWAHX{@iQ>`vH@5R{1`lB@Zuv($KJr-d|0J0O
zSqL~>KxyoupC|SQkS%512TnZ5h8ze)voDI{_?ra3q}{&dg%nTqfk2e_w+g<-CA@@R
zgdhPWXBuFzNZOn5FvE97>CXol{>tX}B>eS61I7geA{^9z`a!^X5T%D-J0|{TypbmZ
zrNX?>-^xRH?BPH_z%-5>h%RO`J>iAFpAmTGH1cm90x@`?&UYvNA_TYjK_J3$XrB|9
TI3T5%m4QGM?!y2WO4$Dg{4Bkp

delta 6407
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
D%;zpr

diff --git a/pkg/vtiger/modules/Import/modules/Import/actions/Data.php b/pkg/vtiger/modules/Import/modules/Import/actions/Data.php
index df0779552..f9669098f 100644
--- a/pkg/vtiger/modules/Import/modules/Import/actions/Data.php
+++ b/pkg/vtiger/modules/Import/modules/Import/actions/Data.php
@@ -435,15 +435,15 @@ class Import_Data_Action extends Vtiger_Action_Controller {
 						}
 					}
 					if ((empty($entityId) || $entityId == 0) && !empty($referenceModuleName)) {
-						if(isPermitted($referenceModuleName, 'EditView') == 'yes') {
-                                                    try {
-							$wsEntityIdInfo = $this->createEntityRecord($referenceModuleName, $entityLabel);
-							$wsEntityId = $wsEntityIdInfo['id'];
-							$entityIdComponents = vtws_getIdComponents($wsEntityId);
-							$entityId = $entityIdComponents[1];
-                                                    } catch (Exception $e) {
-                                                        $entityId = false;
-                                                    }
+						if(isPermitted($referenceModuleName, 'CreateView') == 'yes') {
+							try {
+								$wsEntityIdInfo = $this->createEntityRecord($referenceModuleName, $entityLabel);
+								$wsEntityId = $wsEntityIdInfo['id'];
+								$entityIdComponents = vtws_getIdComponents($wsEntityId);
+								$entityId = $entityIdComponents[1];
+							} catch (Exception $e) {
+								$entityId = false;
+							}
 						}
 					}
 					$fieldData[$fieldName] = $entityId;
@@ -574,32 +574,32 @@ class Import_Data_Action extends Vtiger_Action_Controller {
 
 		$fieldData = DataTransform::sanitizeData($fieldData, $moduleMeta);
 		$entityIdInfo = vtws_create($moduleName, $fieldData, $this->user);
-                $adb = PearDatabase::getInstance();
-                $entityIdComponents = vtws_getIdComponents($entityIdInfo['id']);
-                $recordId = $entityIdComponents[1];
-                $entityfields = getEntityFieldNames($moduleName);
-                switch($moduleName) {
-                    case 'HelpDesk': $entityfields['fieldname'] = array('ticket_title');break;
-					case 'Documents':$entityfields['fieldname'] = array('notes_title');break;
-                   case 'Documents': $entityfields['fieldname'] = array('notes_title');break;
-                }
-                $label = '';
-                if(is_array($entityfields['fieldname'])){
-                    foreach($entityfields['fieldname'] as $field){
-                        $label .= $fieldData[$field]." ";
-                    }
-                }else {
-                    $label = $fieldData[$entityfields['fieldname']];
-                }
+		$adb = PearDatabase::getInstance();
+		$entityIdComponents = vtws_getIdComponents($entityIdInfo['id']);
+		$recordId = $entityIdComponents[1];
+		$entityfields = getEntityFieldNames($moduleName);
+		switch($moduleName) {
+			case 'HelpDesk': $entityfields['fieldname'] = array('ticket_title');break;
+			case 'Documents':$entityfields['fieldname'] = array('notes_title');break;
+			case 'Documents': $entityfields['fieldname'] = array('notes_title');break;
+		}
+		$label = '';
+		if(is_array($entityfields['fieldname'])){
+			foreach($entityfields['fieldname'] as $field){
+				$label .= $fieldData[$field]." ";
+			}
+		}else {
+			$label = $fieldData[$entityfields['fieldname']];
+		}
 
-                $label = trim($label);
-                $adb->pquery('UPDATE vtiger_crmentity SET label=? WHERE crmid=?', array($label, $recordId));
+		$label = trim($label);
+		$adb->pquery('UPDATE vtiger_crmentity SET label=? WHERE crmid=?', array($label, $recordId));
 
-                $recordModel = Vtiger_Record_Model::getCleanInstance($moduleName);
-                $focus = $recordModel->getEntity();
-                $focus->id = $recordId;
-                $focus->column_fields = $fieldData;
-                $this->entityData[] = VTEntityData::fromCRMEntity($focus);
+		$recordModel = Vtiger_Record_Model::getCleanInstance($moduleName);
+		$focus = $recordModel->getEntity();
+		$focus->id = $recordId;
+		$focus->column_fields = $fieldData;
+		$this->entityData[] = VTEntityData::fromCRMEntity($focus);
 		$focus->updateMissingSeqNumber($moduleName);
 		return $entityIdInfo;
 	}
diff --git a/pkg/vtiger/modules/Import/modules/Import/helpers/Utils.php b/pkg/vtiger/modules/Import/modules/Import/helpers/Utils.php
index 0b42706ea..507c6637a 100644
--- a/pkg/vtiger/modules/Import/modules/Import/helpers/Utils.php
+++ b/pkg/vtiger/modules/Import/modules/Import/helpers/Utils.php
@@ -44,11 +44,13 @@ class Import_Utils_Helper {
 		return self::$supportedDelimiters;
 	}
 
-	public static function getAutoMergeTypes() {
-		return array(
-			self::$AUTO_MERGE_IGNORE => 'Skip',
-			self::$AUTO_MERGE_OVERWRITE => 'Overwrite',
-			self::$AUTO_MERGE_MERGEFIELDS => 'Merge');
+	public static function getAutoMergeTypes($moduleName) {
+		$mergeTypes = array(self::$AUTO_MERGE_IGNORE => 'Skip');
+		if (Users_Privileges_Model::isPermitted($moduleName, 'EditView')) {
+			$mergeTypes[self::$AUTO_MERGE_OVERWRITE]		= 'Overwrite';
+			$mergeTypes[self::$AUTO_MERGE_MERGEFIELDS]	= 'Merge';
+		}
+		return $mergeTypes;
 	}
 
 	public static function getMaxUploadSize() {
diff --git a/pkg/vtiger/modules/MailManager/modules/MailManager/MailManager.php b/pkg/vtiger/modules/MailManager/modules/MailManager/MailManager.php
index 0ae0bd989..ad9e819e6 100644
--- a/pkg/vtiger/modules/MailManager/modules/MailManager/MailManager.php
+++ b/pkg/vtiger/modules/MailManager/modules/MailManager/MailManager.php
@@ -105,7 +105,7 @@ class MailManager {
 
 	static function checkModuleWriteAccessForCurrentUser($module) {
 		global $current_user;
-		if (isPermitted($module, 'EditView') == "yes" && vtlib_isModuleActive($module)) {
+		if (isPermitted($module, 'CreateView') == "yes" && vtlib_isModuleActive($module)) {
             return true;
 		}
 		return false;
diff --git a/pkg/vtiger/modules/MailManager/modules/MailManager/views/Relation.php b/pkg/vtiger/modules/MailManager/modules/MailManager/views/Relation.php
index 5a6744ed3..bfcfa60d0 100755
--- a/pkg/vtiger/modules/MailManager/modules/MailManager/views/Relation.php
+++ b/pkg/vtiger/modules/MailManager/modules/MailManager/views/Relation.php
@@ -361,6 +361,7 @@ class MailManager_Relation_View extends MailManager_Abstract_View {
 	public function getCurrentUserMailManagerAllowedModules() {
 		$moduleListForCreateRecordFromMail = array('Contacts', 'Accounts', 'Leads', 'HelpDesk', 'Calendar');
 
+		$mailManagerAllowedModules = array();
 		foreach($moduleListForCreateRecordFromMail as $module) {
 			if(MailManager::checkModuleWriteAccessForCurrentUser($module)) {
 				$mailManagerAllowedModules[] = $module;
@@ -376,6 +377,7 @@ class MailManager_Relation_View extends MailManager_Abstract_View {
 	public function linkToAvailableActions() {
 		$moduleListForLinkTo = array('Calendar','HelpDesk','ModComments','Emails');
 
+		$mailManagerAllowedModules = array();
 		foreach($moduleListForLinkTo as $module) {
 			if(MailManager::checkModuleWriteAccessForCurrentUser($module)) {
 				$mailManagerAllowedModules[] = $module;
diff --git a/pkg/vtiger/modules/ModComments/modules/ModComments/views/Edit.php b/pkg/vtiger/modules/ModComments/modules/ModComments/views/Edit.php
index 3242ffa59..b29198a62 100644
--- a/pkg/vtiger/modules/ModComments/modules/ModComments/views/Edit.php
+++ b/pkg/vtiger/modules/ModComments/modules/ModComments/views/Edit.php
@@ -14,7 +14,12 @@ Class ModComments_Edit_View extends Vtiger_Edit_View {
 		$currentUserModel = Users_Record_Model::getCurrentUserModel();
 		$moduleName = $request->getModule();
 		$record = $request->get('record');
-		if (!empty($record) || !Users_Privileges_Model::isPermitted($moduleName, 'EditView')) {
+		$actionName = 'CreateView';
+		if ($record && !$request->get('isDuplicate')) {
+			$actionName = 'EditView';
+		}
+
+		if(!Users_Privileges_Model::isPermitted($moduleName, $actionName, $record)) {
 			throw new AppException('LBL_PERMISSION_DENIED');
 		}
 	}
diff --git a/pkg/vtiger/modules/Projects/Project/modules/Project/models/DetailView.php b/pkg/vtiger/modules/Projects/Project/modules/Project/models/DetailView.php
index f01a2a490..2c6b7db52 100644
--- a/pkg/vtiger/modules/Projects/Project/modules/Project/models/DetailView.php
+++ b/pkg/vtiger/modules/Projects/Project/modules/Project/models/DetailView.php
@@ -21,7 +21,7 @@ class Project_DetailView_Model extends Vtiger_DetailView_Model {
 		
 		$helpDeskInstance = Vtiger_Module_Model::getInstance('HelpDesk');
 		if($userPrivilegesModel->hasModuleActionPermission($helpDeskInstance->getId(), 'DetailView')) {
-			$createPermission = $userPrivilegesModel->hasModuleActionPermission($helpDeskInstance->getId(), 'EditView');
+			$createPermission = $userPrivilegesModel->hasModuleActionPermission($helpDeskInstance->getId(), 'CreateView');
 			$widgets[] = array(
 					'linktype' => 'DETAILVIEWWIDGET',
 					'linklabel' => 'HelpDesk',
@@ -35,7 +35,7 @@ class Project_DetailView_Model extends Vtiger_DetailView_Model {
 
 		$projectMileStoneInstance = Vtiger_Module_Model::getInstance('ProjectMilestone');
 		if($userPrivilegesModel->hasModuleActionPermission($projectMileStoneInstance->getId(), 'DetailView')) {
-			$createPermission = $userPrivilegesModel->hasModuleActionPermission($projectMileStoneInstance->getId(), 'EditView');
+			$createPermission = $userPrivilegesModel->hasModuleActionPermission($projectMileStoneInstance->getId(), 'CreateView');
 			$widgets[] = array(
 					'linktype' => 'DETAILVIEWWIDGET',
 					'linklabel' => 'LBL_MILESTONES',
@@ -49,7 +49,7 @@ class Project_DetailView_Model extends Vtiger_DetailView_Model {
 
 		$projectTaskInstance = Vtiger_Module_Model::getInstance('ProjectTask');
 		if($userPrivilegesModel->hasModuleActionPermission($projectTaskInstance->getId(), 'DetailView')) {
-			$createPermission = $userPrivilegesModel->hasModuleActionPermission($projectTaskInstance->getId(), 'EditView');
+			$createPermission = $userPrivilegesModel->hasModuleActionPermission($projectTaskInstance->getId(), 'CreateView');
 			$widgets[] = array(
 					'linktype' => 'DETAILVIEWWIDGET',
 					'linklabel' => 'LBL_TASKS',
@@ -64,7 +64,7 @@ class Project_DetailView_Model extends Vtiger_DetailView_Model {
 
 		$documentsInstance = Vtiger_Module_Model::getInstance('Documents');
 		if($userPrivilegesModel->hasModuleActionPermission($documentsInstance->getId(), 'DetailView')) {
-			$createPermission = $userPrivilegesModel->hasModuleActionPermission($documentsInstance->getId(), 'EditView');
+			$createPermission = $userPrivilegesModel->hasModuleActionPermission($documentsInstance->getId(), 'CreateView');
 			$widgets[] = array(
 					'linktype' => 'DETAILVIEWWIDGET',
 					'linklabel' => 'Documents',
diff --git a/pkg/vtiger/modules/Projects/ProjectTask/modules/ProjectTask/ProjectTask.php b/pkg/vtiger/modules/Projects/ProjectTask/modules/ProjectTask/ProjectTask.php
index 2873f4f1e..703285c6e 100644
--- a/pkg/vtiger/modules/Projects/ProjectTask/modules/ProjectTask/ProjectTask.php
+++ b/pkg/vtiger/modules/Projects/ProjectTask/modules/ProjectTask/ProjectTask.php
@@ -391,7 +391,7 @@ class ProjectTask extends CRMEntity {
 	 */
 	static function isLinkPermitted($linkData) {
 		$moduleName = "ProjectTask";
-		if(vtlib_isModuleActive($moduleName) && isPermitted($moduleName, 'EditView') == 'yes') {
+		if(vtlib_isModuleActive($moduleName) && isPermitted($moduleName, 'CreateView') == 'yes') {
 			return true;
 		}
 		return false;
diff --git a/tabdata.php b/tabdata.php
index d3dd4e110..96e6c7d88 100644
--- a/tabdata.php
+++ b/tabdata.php
@@ -17,7 +17,7 @@ $tab_seq_array=array('1'=>0,'2'=>0,'3'=>0,'4'=>0,'6'=>0,'7'=>0,'8'=>0,'9'=>0,'10
 
 $tab_ownedby_array=array('1'=>1,'2'=>0,'3'=>1,'4'=>0,'6'=>0,'7'=>0,'8'=>0,'9'=>0,'10'=>1,'13'=>0,'14'=>1,'15'=>1,'16'=>0,'18'=>1,'19'=>1,'20'=>0,'21'=>0,'22'=>0,'23'=>0,'24'=>1,'25'=>1,'26'=>0,'27'=>1,'28'=>1,'29'=>1,);
 
-$action_id_array=array('Save'=>0,'SavePriceBook'=>0,'SaveVendor'=>0,'DetailViewAjax'=>1,'EditView'=>1,'PriceBookEditView'=>1,'QuickCreate'=>1,'VendorEditView'=>1,'Delete'=>2,'DeletePriceBook'=>2,'DeleteVendor'=>2,'index'=>3,'Popup'=>3,'DetailView'=>4,'PriceBookDetailView'=>4,'TagCloud'=>4,'VendorDetailView'=>4,'Import'=>5,'Export'=>6,'Merge'=>8,'ConvertLead'=>9,'DuplicatesHandling'=>10);
+$action_id_array=array('Save'=>0,'SavePriceBook'=>0,'SaveVendor'=>0,'DetailViewAjax'=>1,'EditView'=>1,'PriceBookEditView'=>1,'QuickCreate'=>1,'VendorEditView'=>1,'Delete'=>2,'DeletePriceBook'=>2,'DeleteVendor'=>2,'index'=>3,'Popup'=>3,'DetailView'=>4,'PriceBookDetailView'=>4,'TagCloud'=>4,'VendorDetailView'=>4,'Import'=>5,'Export'=>6,'Merge'=>8,'ConvertLead'=>9,'DuplicatesHandling'=>10,'CreateView'=>7);
 
 $action_name_array=array(0=>'Save',1=>'EditView',2=>'Delete',3=>'index',4=>'DetailView',5=>'Import',6=>'Export',8=>'Merge',9=>'ConvertLead',10=>'DuplicatesHandling');
 ?>
\ No newline at end of file
diff --git a/wip-migration-split-create-edit-permissions.php b/wip-migration-split-create-edit-permissions.php
new file mode 100644
index 000000000..96724152e
--- /dev/null
+++ b/wip-migration-split-create-edit-permissions.php
@@ -0,0 +1,38 @@
+<?php
+/*+**********************************************************************************
+ * The contents of this file are subject to the vtiger CRM Public License Version 1.0
+ * ("License"); You may not use this file except in compliance with the License
+ * The Original Code is: vtiger CRM Open Source
+ * The Initial Developer of the Original Code is vtiger.
+ * Portions created by vtiger are Copyright (C) vtiger.
+ * All Rights Reserved.
+ ************************************************************************************/
+
+require_once 'include/utils/utils.php';
+$adb = PearDatabase::getInstance();
+
+$actionMappingResult = $adb->pquery('SELECT 1 FROM vtiger_actionmapping WHERE actionname=?', array('CreateView'));
+if (!$adb->num_rows($actionMappingResult)) {
+	$adb->pquery('INSERT INTO vtiger_actionmapping VALUES(?, ?, ?)', array(7, 'CreateView', 0));
+}
+
+$createActionResult = $adb->pquery('SELECT * FROM vtiger_profile2standardpermissions WHERE operation=?', array(1));
+$query = 'INSERT INTO vtiger_profile2standardpermissions VALUES';
+while($rowData = $adb->fetch_array($createActionResult)) {
+	$tabId			= $rowData['tabid'];
+	$profileId		= $rowData['profileid'];
+	$permissions	= $rowData['permissions'];
+	$query .= "('$profileId', '$tabId', '7', '$permissions'),";
+}
+$adb->pquery(trim($query, ','), array());
+
+require_once './modules/Users/CreateUserPrivilegeFile.php';
+$usersResult = $adb->pquery('SELECT id FROM vtiger_users', array());
+$numOfRows = $adb->num_rows($usersResult);
+$userIdsList = array();
+for($i=0; $i<$numOfRows; $i++) {
+	$userId = $adb->query_result($usersResult, $i, 'id');
+	createUserPrivilegesfile($userId);
+}
+
+echo '<br>Successfully updated create and edit permissions<br>';
\ No newline at end of file
-- 
GitLab