Chapter 3. Deep dive into advanced features

In this chapter we will discuss how Akeeba Ticket System integrates with the more advanced Joomla core features and how you can use them to accomplish advanced features without much anguish. In other words, this chapter documents the non–obvious, awesome things you can do with Akeeba Ticket System and core Joomla 4 features.

It may sound counter–intuitive to list these features before the main component documentation. There is a good reason. The main component is fairly straightforward to use, even without documentation. Ticket categories management is handled by Joomla itself, giving it a familiar experience. Ticket management and even features like canned replies and automatic replies are mostly self–documenting; at worst, a little prodding by a curious user is enough to make them work. The features we discuss here require combining a few core Joomla features and ATS features to implement something which is not immediately obvious to the casual observer.

Permissions

Permissions in Joomla define what a user group can and cannot do. Joomla has excellent documentation on how Permissions work.

Here are some quick takeaways:

  • Permissions control what users can do, not what they can see (with one exception: read private tickets). If you are interested in who can see what this is what Access Levels are for.

  • Permissions cascade in two directions: 1. user groups, from Public towards the specific user group; and 2. from the Component and into the Categories tree.

  • Permissions have one of three states: Inherited, Allow and Deny. Inherited is a “transparent” setting; it falls back to what is inherited from a previous cascade. If no specific setting (Deny or Allow) is found further up the cascade it's treated as a Deny. Allow means that this permission is explicitly allowed. Deny means that this permission is explicitly denied.

  • Deny trumps Allow and Inherited. If anywhere within the two permissions cascades there's an explicit Deny then the permission is Denied even if there is a more specific Allow. Think of permissions as voting with veto system. If you are not explicitly given the vote to do something you cannot do it (Inherited without explicit Allow). If anyone uses their veto power (explicit Deny) you are not allowed to do it.

Akeeba Ticket System uses Permissions in the component and each of its categories to control what the user can and cannot do. While most of them are standard Joomla permissions some are specific to Akeeba Ticket System or have a particular meaning. We are going to go through all of them.

Configure ACL & Options

Gives access to the component's Options page and the Permissions tab. This is equivalent to giving someone full access to the component since they can change the permissions which apply to them!

We strongly recommend leaving this to its default value of Inherited. Only Administrator and Super Users should be granted this privilege.

Support Staff

Is the user a Support Staff / Manager? This is a super privilege which allows the user to do the following:

  • View and reply to all public and private tickets.

  • Create new public and private tickets.

  • View personally identifiable information of the user such as their full name and email address.

  • View the ticket history of a user by clicking on their username.

  • Special Support Staff badge in their replies.

  • Change the ticket status (open, closed, pending, ...).

  • Publish, unpublish, delete and edit a ticket.

  • Be assigned tickets and reassign or un-assign tickets.

  • Publish, unpublish, delete and edit a post.

  • Publish, unpublish, download and delete attachments.

  • View and use Canned Replies.

  • View, submit, edit and delete Manager Notes.

These actions CAN NOT be limited by setting any other privilege to Deny. This is why it's called a super privilege: it supersedes and overrides all other privileges. For example, if you allow the Support Staff privilege and deny the Create privilege then the user can still create new tickets.

Only give this permission to your support personnel who's authorised to answer and manage tickets. This is the highest level of ticket management allowed to a user.

If you want a more limited role do NOT give this privilege. Instead, use the other privileges to fine-tune what the user can and cannot do.

[Note]Note

Technically speaking, the Support Staff privilege is Joomla's Access Management Interface (core.manage) privilege. Therefore your backend users all need to have the Support Staff privilege to be able to use Akeeba Ticket System's backend. This means that you can't have limited access backend users for Akeeba Ticket System. This is a deliberate choice. If you want limited access tell your users to use the frontend.

Create

Allows the creation of new tickets.

Reply to Any Ticket

By default (when this privilege is not explicitly set to Allow), a user can only apply to the tickets they have submitted themselves.

When this privilege is allowed then the user can reply to any ticket they can view, even if it was submitted by a different users. Note that unlike Support Staff, this privileges does NOT allow the user to reply to closed tickets.

The recommended setting for most user groups for this privilege is Inherited. You MUST NOT give this privilege to ordinary clients who only need to reply to their own tickets. The reason of this privilege's existence is to let you create a more limited scope of the Support Staff super privilege by enabling individual privileges.

Delete

Allows deleting any ticket, post and attachment regardless of who submitted it. This is a privilege with the potential for unintended consequences. We strongly recommend using more specialised privileges instead.

Edit

Allows editing any ticket, post and manager's note regardless of who submitted it. This is a privilege with the potential for unintended consequences. We strongly recommend using more specialised privileges instead.

Edit Own

Allows a user to edit the ticket metadata and custom fields of ticket submitted by them, as well as every post submitted by them.

Edit Own Ticket

Allows a user to edit the ticket metadata and custom fields of ticket submitted by them but NOT their own posts.

Edit Own Post

Allows a user to edit every post submitted by them, but NOT the ticket metadata and custom fields.

Edit State

Allows the user to change the ticket state (Open, Closed, Pending and any custom state). This is NOT required for clients to close their tickets. This privilege would, in fact, allow them to re-open their ticket. Moreover, this allows the user to publish / unpublish tickets, posts and attachments.

This is a dangerous privilege with the potential for unintended consequences. We strongly recommend using more specialised privileges instead.

Create Private

Allows the user to create a Private ticket. Private tickets are only visible to the user who submitted them and users with the Support Staff or Read Private privilege. The user also needs the Create privilege.

If the Create privilege is allowed but not the Create Private one, then the user can only submit Public tickets which are visible by everybody.

If the Create Private privilege is allowed but not the Create one, then the user can NOT submit a ticket be it private or public.

Read Private

Allows the user to read Private tickets submitted by any user. This is on top of being able to see their own Private tickets.

A user with this privilege cannot reply to private tickets submitted by another user. They will need the Reply to Any Ticket privilege to be able to reply to tickets they have not submitted themselves.

Note that this and the Read Manager Notes privileges are the only two privileges which control what the user can see. All other privileges control what the user can do.

Create Attachment

Allows the user to upload one or more attachments with their ticket and ticket replies. It requires the Create privilege.

Download any Attachment

This privilege only has any observable effect when you have enabled the “Private Attachments” option in the component's Options page.

By default, when the privilege is not allowed, users are only allowed to download attachments from the tickets they have submitted. Only users with the Support Staff privilege can download attachments from tickets submitted by other users.

Users belonging in user groups which are allowed the Download any Attachment privilege will be able to download private attachments from any ticket they can view, even if the ticket is submitted by a different user.

Edit any attachment state

Allows publishing and unpublishing any attachment on any ticket the user can view, regardless of who uploaded this attachment. Users who are allowed this privilege can also see unpublished attachments in any ticket they can view.

If you have enabled the “Private Attachments” option in the component's Options page you will need to give the user the “Download any Attachment” privilege as well. Otherwise they will not be able to see private attachments on tickets not submitted by themselves, therefore they will not have the interface buttons to publish / unpublish these attachments.

This is a more limited scope version of the Edit State privilege, one which applies only to attachments.

Delete any attachment state

Allows deleting any attachment on any ticket the user can view, regardless of who uploaded this attachment.

If you have enabled the “Private Attachments” option in the component's Options page you will need to give the user the “Download any Attachment” privilege as well. Otherwise they will not be able to see private attachments on tickets not submitted by themselves, therefore they will not have the interface buttons to delete these attachments.

This is a more limited scope version of the Delete privilege, one which applies only to attachments.

Read Manager Notes

Allows displaying the Manager Notes on any ticket the user can view.

Note: if the Support Staff privilege is allowed for the user you do not give to allow this privilege.

Create Manager Notes

Allows creating Manager Notes on any ticket the user can view. It only makes sense when used together with the Read Manager Notes privilege; otherwise the user will not see the user interface to submit a Manager Note.

Note: if the Support Staff privilege is allowed for the user you do not give to allow this privilege.

Edit Own Manager Notes

Allows the user to edit the Manager Notes they have submitted themselves on any ticket the user can view. It only makes sense when used together with the Read Manager Notes privilege; otherwise the user will not see the user interface for Manager Notes.

Note: if the Support Staff privilege is allowed for the user you do not give to allow this privilege.

Edit Manager Notes

Allows the user to edit the Manager Notes submitted by any user on any ticket the user can view. It only makes sense when used together with the Read Manager Notes privilege; otherwise the user will not see the user interface for Manager Notes.

Note: if the Support Staff privilege is allowed for the user you do not give to allow this privilege.

Delete Manager Notes

Allows the user to permanently delete Manager Notes submitted by any user on any ticket the user can view. It only makes sense when used together with the Read Manager Notes privilege; otherwise the user will not see the user interface for Manager Notes.

Note: if the Support Staff or Delete privilege is allowed for the user you do not give to allow this privilege.

Be assigned to tickets

Allows the user to be assigned to tickets by other managers, or users who have the Assign Tickets privilege.

Do note that users belonging to a group with the Support Staff privilege are always available to be assigned to tickets. This privilege needs to be given to users who do NOT have the Support Staff privilege but are otherwise given access to reply to tickets e.g. by being granted the Reply To Any Ticket privilege.

Assign tickets

Allows the user to assign (or re-assign) tickets to other managers, or users who have the Be Assigned To Tickets privilege.

Do note that users belonging to a group with the Support Staff privilege can always assign and re-assign tickets. This privilege needs to be given to users who do NOT have the Support Staff privilege but need to be able to assign or re-assign tickets. These users do NOT need to be able to reply to the ticket, just view it, e.g. by being granted the Read Private privilege. This is useful if, for example, you want to have staff which does not directly reply to tickets distribute tickets to users based on their skill sets. For example, if you use ATS as a work order tracker for an IT support help desk the middle manager in charge of physical support could distribute the work orders (tickets) to the technicians performing the work on-site depending on their specialty (network technicians, hardware technicians, A/V technicians etc).