Override function listViewProcess

Hi,

I created a custom/modules/Accounts/views/view.list.php
To override function listViewProcess()
I use [custom_where] = “or …” and i can get more some speify records for all user.
Normal user can see more some records but can not click to access it (row display black text), because permission module Accounts is only Owner.
How I can custom code permission to access these records.

Can you post your entire custom code?

Why do you think it’s the security accesses that keep the links from showing? If yo log in as Admin, or as the owner of those records, you see links?

Here my code :

class AccountsViewList extends ViewList
{
	
    function listViewProcess() {
        global $current_user;
        $this->params['custom_where'] = ' OR (accounts.assigned_user_id = "1") ';

        parent::listViewProcess();
}
	
}

Result:

Because i set permission List/View is Owner, these records will be disable. I want custom code enable only these records

Have a look at this here

https://docs.suitecrm.com/blog/listview-conditional-formatting/

You cna change the HTML just when it is about to be displayed. In the same way that you can add formatting, you can add a tag.

Thanks pgr,

I tried insert “link navigator” use process_record follow your guideline. It worked successully. But can not redirect to detail view becase permission role. (user does not have permission to view).

With permission by role, more issues will appears.

I think i need modify root code to solve all permission. In root code to check permission with records, i need add custom code to check specify permission (beside check owner, check group).

Can you suggest me where the code file (function) handle these?

And can’t you simply adjust the Roles and permissions so that those users get access? The security system has a certain coherence, rather than changing the core code for how it works, it’s better to just set permissions according to your needs. It’s very powerful and flexible.

@pgr,

I try to create a module Organization Chart. Data access permission depend position of person in Org Chart.

With Org Chart, team leader can manage data of salers, manager can manage data of team leaders … may be reach N level.

In Saleforce, they have Role hierarchy, and customers can created Org Chart on that. Private Groups only for specifically case

In SuiteCRM, I alway need use group to setup manage records, and too difficult to handle that when my groups grow hundreds. And i only work with only 2 level: salers and team managers, impossible with N level

There are inheritance properties in Security Groups that allow you to accommodate more complex structures. And sometimes you need bits of custom code to facilitate common tasks.

You can ask more technical questions about Security Groups here: https://store.suitecrm.com/support/securitysuite/

Even though you’re not using the paid version, the developer is the same and he usually answers helpfully.

You can try to get acquainted with Beans (https://docs.suitecrm.com/developer/working-with-beans/)

Which you can use to add Security Groups to records easily, and with loops, etc., here’s a real-life example:

https://gist.github.com/pgorod/3ce7868a290df0ef4f8c9de74f12a6cd/#file-import_script-php-L179-L186

Thank so much,

I understood Security Groups mechanism.

Because Security Groups allow you to accommodate more complex structures, group need add to the specify record. And when groups grow hundreds+, hard to handle relationship between groups (employee/manager in groups) và records.

I will try custom code follow your help.