ltb-project / service-desk

Application for support team who need to check and reset user passwords
https://service-desk.readthedocs.io/
GNU General Public License v3.0
49 stars 19 forks source link

Displaying Items Manager & Secretary #51

Closed sando38 closed 1 year ago

sando38 commented 2 years ago

Hello hello,

I wanted to change displayed items, like below with "manager":

# Search
$search_attributes = array('uid', 'cn', 'mail');
$search_result_items = array('identifier', 'mail', 'manager');

However, the attribute isn't displayed. If I change the line in the config file with the config below, it is displayed, but as far as I understand, the attribute should actually be listed as a link ("dn_link") to the user, instead of "text": 'manager' => array( 'attribute' => 'manager', 'faclass' => 'user-circle-o', 'type' => 'text' ),

Not sure, if the display format "dn_link" is actually supported or not, therefore, is this an issue or "missing feature"?

Thanks in advance and wishing a great evening.

coudot commented 2 years ago

Hello,

the value of manager attribute should be a DN, the dn_link viewer will display the cn of the targeted entry.

What is the value of your manager attribute?

sando38 commented 2 years ago

Hello,

this is part of my config.inc.local.php, it is nearly the same as the default. Changes are only as mentioned above:

# How display attributes
$attributes_map = array(
    'authtimestamp' => array( 'attribute' => 'authtimestamp', 'faclass' => 'lock', 'type' => 'date' ),
    'businesscategory' => array( 'attribute' => 'businesscategory', 'faclass' => 'briefcase', 'type' => 'text' ),
    'carlicense' => array( 'attribute' => 'carlicense', 'faclass' => 'car', 'type' => 'text' ),
    'created' => array( 'attribute' => 'createtimestamp', 'faclass' => 'clock-o', 'type' => 'date' ),
    'description' => array( 'attribute' => 'description', 'faclass' => 'info-circle', 'type' => 'text' ),
    'displayname' => array( 'attribute' => 'displayname', 'faclass' => 'user-circle', 'type' => 'text' ),
    'employeenumber' => array( 'attribute' => 'employeenumber', 'faclass' => 'hashtag', 'type' => 'text' ),
    'employeetype' => array( 'attribute' => 'employeetype', 'faclass' => 'id-badge', 'type' => 'text' ),
    'fax' => array( 'attribute' => 'facsimiletelephonenumber', 'faclass' => 'fax', 'type' => 'tel' ),
    'firstname' => array( 'attribute' => 'givenname', 'faclass' => 'user-o', 'type' => 'text' ),
    'fullname' => array( 'attribute' => 'cn', 'faclass' => 'user-circle', 'type' => 'text' ),
    'identifier' => array( 'attribute' => 'uid', 'faclass' => 'user-o', 'type' => 'text' ),
    'l' => array( 'attribute' => 'l', 'faclass' => 'globe', 'type' => 'text' ),
    'lastname' => array( 'attribute' => 'sn', 'faclass' => 'user-o', 'type' => 'text' ),
    'mail' => array( 'attribute' => 'mail', 'faclass' => 'envelope-o', 'type' => 'mailto' ),
    'mailenabled' => array( 'attribute' => 'mailenabled', 'faclass' => 'lock', 'type' => 'boolean' ),
    'mailquota' => array( 'attribute' => 'gosamailquota', 'faclass' => 'pie-chart', 'type' => 'bytes' ),
    'manager' => array( 'attribute' => 'manager', 'faclass' => 'user-circle-o', 'type' => 'dn_link' ),
    'mobile' => array( 'attribute' => 'mobile', 'faclass' => 'mobile', 'type' => 'tel' ),
    'modified' => array( 'attribute' => 'modifytimestamp', 'faclass' => 'clock-o', 'type' => 'date' ),
    'organization' => array( 'attribute' => 'o', 'faclass' => 'building', 'type' => 'text' ),
    'organizationalunit' => array( 'attribute' => 'ou', 'faclass' => 'building-o', 'type' => 'text' ),
    'pager' => array( 'attribute' => 'pager', 'faclass' => 'mobile', 'type' => 'tel' ),
    'phone' => array( 'attribute' => 'telephonenumber', 'faclass' => 'phone', 'type' => 'tel' ),
    'postaladdress' => array( 'attribute' => 'postaladdress', 'faclass' => 'map-marker', 'type' => 'text' ),
    'postalcode' => array( 'attribute' => 'postalcode', 'faclass' => 'globe', 'type' => 'text' ),
    'pwdaccountlockedtime' => array( 'attribute' => 'pwdaccountlockedtime', 'faclass' => 'lock', 'type' => 'date' ),
    'pwdchangedtime' => array( 'attribute' => 'pwdchangedtime', 'faclass' => 'lock', 'type' => 'date' ),
    'pwdfailuretime' => array( 'attribute' => 'pwdfailuretime', 'faclass' => 'lock', 'type' => 'date' ),
    'pwdreset' => array( 'attribute' => 'pwdreset', 'faclass' => 'lock', 'type' => 'boolean' ),
    'secretary' => array( 'attribute' => 'secretary', 'faclass' => 'user-circle-o', 'type' => 'dn_link' ),
    'state' => array( 'attribute' => 'st', 'faclass' => 'globe', 'type' => 'text' ),
    'street' => array( 'attribute' => 'street', 'faclass' => 'map-marker', 'type' => 'text' ),
    'title' => array( 'attribute' => 'title', 'faclass' => 'certificate', 'type' => 'text' ),
);

# Search
$search_attributes = array('uid', 'cn', 'mail');
$search_use_substring_match = true;
$search_result_items = array('identifier', 'mail', 'manager');
$search_result_title = "displayname";
$search_result_sortby = "firstname";
$search_result_linkto = array("fullname");
$search_result_show_undefined = true;
$search_result_truncate_value_after = 20;

I am currently using your docker image.

Thanks in advance!

coudot commented 2 years ago

The configuration is correct. What is the value of manager attribute inside your LDAP directory?

sando38 commented 2 years ago

cn=username,ou=users,dc=example,dc=com

coudot commented 2 years ago

Looking at the code, I see that dn_link is not implemented in Service Desk. The available types are listed in documentation: https://service-desk.readthedocs.io/en/stable/attributes.html

This can be a new feature for Service Desk.

sando38 commented 2 years ago

Thanks for quick reviewing and investigating.

coudot commented 1 year ago

@sando38 done in #84

If you have any time to test, please give us a feedback

sando38 commented 1 year ago

Hi, thnks for the feedback. I will see if I can test it in the next days!