As mentioned in the link, I have created 2 user roles- sysadmin and public user profile(to set up connection to the restored db). whenever I use public user login in connection config file, I get an error: "42501:permission denied for table SysSettings".
However sysadmin credentials seem to work. Kindly help in resolving the issue.
Here is an example of how to permit or deny modifying the user page (UserPageV2) of system users that are system administrators (the one on the screenshot below):
To do this you need to create a replacing view model for "Edit page - User" (UserPageV2) with the code similar to the one below:
define("UserPageV2", ["RightUtilities"],
function(RightUtilities){return{
entitySchemaName:"VwSysAdminUnit",
attributes:{
CanEditSystemAdministrator:{
dataValueType:this.Terrasoft.DataValueType.BOOLEAN,
type:this.Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,
value:true}},
properties:{},
mixins:{},
diff:/**SCHEMA_DIFF*/[{"operation":"merge",
"name":"Name",
"parentName":"FormAuthGridLayout",
"propertyName":"items",
"values":{"enabled":{bindTo:"CanEditSystemAdministrator"}}},
{"operation":"merge",
"name":"UserPassword",
"parentName":"FormAuthGridLayout",
"propertyName":"items",
"values":{"enabled":{bindTo:"CanEditSystemAdministrator"}}}],
methods:{
checkIfTheUserIsASystemAdministrator: function (){
var esq = Ext.create("Terrasoft.EntitySchemaQuery", { rootSchemaName:"SysAdminUnitInRole"});
esq.addColumn("SysAdminUnit");
esq.addColumn("SysAdminUnitRoleId");
esq.filters.addItem(esq.createColumnFilterWithParameter(3, "SysAdminUnit", this.get("PrimaryColumnValue")));
esq.filters.addItem(esq.createColumnFilterWithParameter(3, "SysAdminUnitRoleId", "83A43EBC-F36B-1410-298D-001E8C82BCAD"));this.console.log("The Id is: "+this.get("PrimaryColumnValue"));
esq.getEntityCollection(function (result){if(result.success&& result.collection.getCount()>0){
result.collection.collection.each(function(item){
var collectionValue = result.collection.getByIndex(0);
var actualId = collectionValue.get("Id");this.console.log("ESQ result: "+actualId);this.canEditRecordOperation();}, this);}}, this);},
init: function(){this.callParent(arguments);this.checkIfTheUserIsASystemAdministrator();},
canEditRecordOperation: function(){
var operationsToRequest =[];
operationsToRequest.push("CanEditSystemAdministrator");
RightUtilities.checkCanExecuteOperations(operationsToRequest, function(result){if(result){this.set("CanEditSystemAdministrator", result.CanEditSystemAdministrator);
console.log("Can user edit record? "+ result.CanEditSystemAdministrator);}}, this);}}};});
You will also need to add all the fields to the schema diff to include all other fields (in my example "Username" and "Password" fields are included into the logic). Also you need to create an operation permission with the "CanEditSystemAdministrator" code. As a result each time the page is opened an ESQ query is executed to check if the system user whose page was opened is a system administrator or not (included into "System administrators" role or not).
As a result even if the Supervisor user is not added to the list of users in the "CanEditSystemAdministrator" system operation this user won't be able to edit "Username" or "Password" columns:
As for visibility of system administrators in the detail you mentioned or in the section grid - I believe its a complicated task and applying the method above will restrict users from editing existing records so they won't be able to do anything with system administrators records (or will be able to do that in case they are added to the system operation users list).
Then you need to restrict the endpoint of such a dataservice for users that shouldn't modify system users (something I've described here). Because restricting access on the application level will be a hard task (if it's even possible).
It's because in the base UserPageV2 the "Actions" button is removed (this code on the UserPageV2):
{"operation":"remove",
"name":"actions"},
Also the SysAdminUnit object has no SysAaminUnitRight table (and we remember that record access rights are stored in the SysEntityNameRight table that is created upon activating records access rights). So that's why I've proposed to create a JS logic on the page that will lock all the fields and will use a system operation to manage access.
I need to add a different "filter Business rule" for the same field regarding the value of another field, this is not possible using the Filter Business rule wizard, how can I did it?
In my case, regarding the contact Account Type I want to filter the possible Contact Types we want to enable, for example
if the account type is Our Company, contacts type just can be Employee,
if account type is Customer, contact type just could be "Customer" or "Contact Person"
Today I’ve installed on production tenant the "Excel report builder" available on the marketplace.
Before installing it I tried to install on a test tenant and everything is fine.
Now, when I try to add the new section “Excel reports” to Studio workplace I receive an error on the browser console and the section doesn't appear on workplace.
I get this often with the Excel reports builder package. Usually after logging out and back in (sometimes after a couple of times) it usually lets me add it to the workplace eventually. Not sure why this happens, but it only ever seems to happen for me with this package (and happens often with this one)
To apply the changes, we recommend logging out and logging back into the application again (just like Ryan says above). If the issue persists, try adding any basic section to the workplace first, and after that add the 'Excel reports' section.
The * sign indicates that the package or scheme was changed. This parameter is set in the SysPackage or SysSchema table and the column name is "IsChanged".
I suppose you did some changes in the website configuration that caused such behavior. Please note that this is not an error but regular OOB system logic.
How can I modify the page layout of a detail that isn't also a section within the Creatio mobile app? I only get the option to change how it's connected to a page.
I need to be able to change the fields that are shown but the embedded detail won't do the trick because it's not clear on when one detail record ends and the next begins.
It is necessary to go to the section Page Setup, scroll down to New button, select Embedded detail option, add your detail and hit New column to add required fields. You can also the fields them in the required order there.
Please check if the column is present in this list:
and
and select the column. In case the column is not present then either the AccountAddress object should be published or the parent object for the replaced AccountAddress object was chosen incorectly. Please check if your parent object is the same as mine:
If it is not please remove the replaced object and replace the AccountAddress object from scratch.