Assigning Segregated Services to an entire company

Dont create your support topics here! No new topics with questions allowed!

Moderator: crythias

Forum rules
Dont create your support topics here! No new topics with questions allowed!
Post Reply
crythias
Moderator
Posts: 10169
Joined: 04 May 2010, 18:38
Znuny Version: 5.0.x
Location: SouthWest Florida, USA
Contact:

Assigning Segregated Services to an entire company

Post by crythias »

This is merely a thought exercise.
"How do I assign a service to everyone in a Company?"
One thought is to make the service a default service and then restrict who sees it.
This requires a bit of planning and thought, but if every CustomerID has its own ACL or there's a default ACL at the end of the parsing with "PossibleNot" of Customer-Specific-Services...

So, let's say CompanyA has 1,000 people, all using the same Service. That's pretty tedious to assign that service to all of CompanyA. Why not make it a default service?

Then we can make sure CompanyA has access to those services.

Code: Select all

$Self->{TicketAcl}->{'CompanyAServices'} = 
{
                     # match properties
   Properties => {
        CustomerUser => {
            UserLogin => ['some login'],
#or instead
            UserCustomerID => ['CompanyIdentifier'],
        },
   },

   Possible => {
        Ticket => { 
              Service  => ['CustomerA::toilet', 'CustomerA::sink', 'CustomerA::tub'],
        },
   },
};
"But that doesn't keep other people from seeing that service!!?!?"

Then we add another ACL at the end:

Code: Select all

$Self->{TicketAcl}->{'ZZZ-HiddenServices'} = 
{
                     # match properties
   Properties => {
       #match always
   },

   PossibleNot => {
        Ticket => { 
              Service  => ['CustomerA::toilet', 
                               'CustomerA::sink', 
                               'CustomerA::tub'],
        },
   },
};
At least, the theory appears to be sound. Let me know if it makes sense to you.
OTRS 6.0.x (private/testing/public) on Linux with MySQL database.
Please edit your signature to include your OTRS version, Operating System, and database type.
Click Subscribe Topic below to get notifications. Consider amending your topic title to include [SOLVED] if it is so.
Need help? Before you ask
diginin
Znuny expert
Posts: 213
Joined: 11 Feb 2008, 12:04
Znuny Version: CVS

Re: Assigning Segregated Services to an entire company

Post by diginin »

Looks solid, at first glance. The use of ACLs is something that can quickly develop into an overwhelming thing. Good Job!
Shawn Beasley
Contact me per XING
Contact me per LinkedIN

OTRS CVS on Ubuntu Stable.

Image
signature by diginin74, on Flickr

Computers are like air conditioners, when you open windows they are useless.



P.S. (für Leser meiner Deutschtexte) Rechtschreibfehler bitte mit s/.*/$KORREKTUR/ ersetzen.
sg23
Znuny newbie
Posts: 11
Joined: 19 Nov 2013, 12:35
Znuny Version: 3.2.8
Real Name: Sebastian

Re: Assigning Segregated Services to an entire company

Post by sg23 »

Does "CustomerA" means the name of the customer? Or the Identifier of the customer? Or did you mean the company instead?

Do i have to assign any customer (i.e. CustomerA::toilet, CustomerB::toilet, CustomerC::toilet) of a company?

Code: Select all

$Self->{TicketAcl}->{'CompanyAServices'} =
 Possible => {
        Ticket => {
              Service  => ['CustomerA::toilet', 'CustomerA::sink', 'CustomerA::tub'],
        },
   },

And is the value ...

Code: Select all

UserCustomerID => ['CompanyIdentifier'],
...equal to the Value "CustomerCompanyKey" in the config.pm?
- OTRS 3.2.8
- ITSM 3.2.9
crythias
Moderator
Posts: 10169
Joined: 04 May 2010, 18:38
Znuny Version: 5.0.x
Location: SouthWest Florida, USA
Contact:

Re: Assigning Segregated Services to an entire company

Post by crythias »

sg23 wrote:Does "CustomerA" means the name of the customer? Or the Identifier of the customer? Or did you mean the company instead?
CustomerA::Toilet, for instance, is to indicate the service that is customized for CustomerA. If you're re-using the naming convention of services for customers, you don't have to use "CustomerA".

For a very specific case, let's say you're supporting WidgetA. If you want everyone at large company with CustomerID=Contoso (Identical CustomerID indicates same company) to be able to have support for WidgetA, you can make WidgetA a default service (from the button in "Services").

The first thing you'll do is make an ACL (with a name that is ordered first alphabetically) in Config.pm to make Service WidgetA PossibleNot.
Next, you'll

Code: Select all

$Self->{TicketAcl}->{'CompanyAServices'} = 
{
                     # match properties
   Properties => {
        CustomerUser => {
            UserLogin => ['some login'],
#or instead
            UserCustomerID => ['CompanyIdentifier'],
#or maybe
            UserCustomerID => ['[RegEx]*domain.com'],
        },
   },

   Possible => {
        Ticket => { 
              Service  => ['WidgetA'],
        },
   },
};
I don't know what will work for your environment. If you ask a more specific question (in the Help forum) about what, exactly, you want to achieve, it will be easier to provide an answer.
OTRS 6.0.x (private/testing/public) on Linux with MySQL database.
Please edit your signature to include your OTRS version, Operating System, and database type.
Click Subscribe Topic below to get notifications. Consider amending your topic title to include [SOLVED] if it is so.
Need help? Before you ask
Post Reply