[solved] CustomerAuth v. ext. DB - begrenzen?

Hilfe zu OTRS Problemen aller Art
Post Reply
steste123
Znuny wizard
Posts: 554
Joined: 25 Sep 2012, 19:04
Znuny Version: OTRS Help Desk
Real Name: Stefan

[solved] CustomerAuth v. ext. DB - begrenzen?

Post by steste123 »

Hallo zusammen,
ist es möglich den CustomerAuth auf User zu begrenzen die einen bestimmten Wert haben?
Bspw. WHERE disabled = 0 ?

Grund ist, dass ich mehrere Datenbanken synchronisiere für die CustomerUser - aber nur eine Masterdatenbank für den Auth. Dort wird gepflegt ob ein User enabled oder disabled ist.

Code: Select all

# This is the auth. module against the external db
$Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::DB';
$Self->{'Customer::AuthModule::DB::Table'} = 'com_users';
$Self->{'Customer::AuthModule::DB::CustomerKey'} = 'ABC';
$Self->{'Customer::AuthModule::DB::CustomerPassword'} = 'DEF';
$Self->{'Customer::AuthModule::DB::DSN'} = "DBI:mysql:database=XYZ;host=XYZ";
$Self->{'Customer::AuthModule::DB::User'} = "XYZ";
$Self->{'Customer::AuthModule::DB::Password'} = "XYZ";
Last edited by steste123 on 18 Oct 2017, 15:20, edited 1 time in total.
OTRS 5.x - Debian 8 - apache 2.4 - MySQL 5.x
root
Administrator
Posts: 3934
Joined: 18 Dec 2007, 12:23
Znuny Version: Znuny and Znuny LTS
Real Name: Roy Kaldung
Company: Znuny
Contact:

Re: CustomerAuth v. ext. DB - begrenzen?

Post by root »

Hi,

in der Standardtabelle customer_user wertet OTRS die Spalte valid_id aus (Wert siehe Tabelle valid):

Lt https://github.com/OTRS/otrs/blob/rel-5 ... s.pm#L1472 würde ich sagen man kann den Spaltennamen anpassen, was die Werte angeht kann ich nichts sagen ohne in den Code zu sehen. Aber mit den Werten 1, 2 oder 3 sollte es passen.

- Roy
Znuny and Znuny LTS running on CentOS / RHEL / Debian / SLES / MySQL / PostgreSQL / Oracle / OpenLDAP / Active Directory / SSO

Use a test system - always.

Do you need professional services? Check out https://www.znuny.com/

Do you want to contribute or want to know where it goes ?
steste123
Znuny wizard
Posts: 554
Joined: 25 Sep 2012, 19:04
Znuny Version: OTRS Help Desk
Real Name: Stefan

Re: CustomerAuth v. ext. DB - begrenzen?

Post by steste123 »

Japp in dem Benutzersync ist es bereits mit active verbaut und alles gut.
Aber - unseren Datenbankstruktur ist wie folgt - das müsste ich im Auth berücksichtigen:

Benutzer darf sich einloggen wenn "active" = 1 und "disabled" = 0

(auf die Struktur habe ich keinen Einfluss)

Die Frage ist also ob man den Auth dahingehend abändern kann.
OTRS 5.x - Debian 8 - apache 2.4 - MySQL 5.x
root
Administrator
Posts: 3934
Joined: 18 Dec 2007, 12:23
Znuny Version: Znuny and Znuny LTS
Real Name: Roy Kaldung
Company: Znuny
Contact:

Re: CustomerAuth v. ext. DB - begrenzen?

Post by root »

steste123 wrote:Japp in dem Benutzersync ist es bereits mit active verbaut und alles gut.
Aber - unseren Datenbankstruktur ist wie folgt - das müsste ich im Auth berücksichtigen:

Benutzer darf sich einloggen wenn "active" = 1 und "disabled" = 0

(auf die Struktur habe ich keinen Einfluss)

Die Frage ist also ob man den Auth dahingehend abändern kann.
Also ändern würde ich da nixim Code. Ein pragmatische Ansatz wäre dann eher eine View die die passenden Spalten anbietet:

Code: Select all

CREATE OR REPLACE VIEW viewname AS SELECT col1,col2,col3 IF(active=1 AND disabled=0, 1, 2) AS valid_id FROM table
- Roy
Znuny and Znuny LTS running on CentOS / RHEL / Debian / SLES / MySQL / PostgreSQL / Oracle / OpenLDAP / Active Directory / SSO

Use a test system - always.

Do you need professional services? Check out https://www.znuny.com/

Do you want to contribute or want to know where it goes ?
steste123
Znuny wizard
Posts: 554
Joined: 25 Sep 2012, 19:04
Znuny Version: OTRS Help Desk
Real Name: Stefan

Re: CustomerAuth v. ext. DB - begrenzen?

Post by steste123 »

Hi Roy,
danke für den Tipp. "CREATE OR REPLACE VIEW" ist der immer up to date? Oder muss ich den per Cron schedulen?
OTRS 5.x - Debian 8 - apache 2.4 - MySQL 5.x
root
Administrator
Posts: 3934
Joined: 18 Dec 2007, 12:23
Znuny Version: Znuny and Znuny LTS
Real Name: Roy Kaldung
Company: Znuny
Contact:

Re: CustomerAuth v. ext. DB - begrenzen?

Post by root »

Hi,

wie der Name view schon sagt, eine andere Sicht auf die Dinge. Da muss man nichts tun, es werden stets die Daten aus der/den Originaltabellen angezeigt. Eingeschränkt sogar updatebar. Sonstige Einschränkungen hier: https://dev.mysql.com/doc/refman/5.7/en ... tions.html

- Roy
Znuny and Znuny LTS running on CentOS / RHEL / Debian / SLES / MySQL / PostgreSQL / Oracle / OpenLDAP / Active Directory / SSO

Use a test system - always.

Do you need professional services? Check out https://www.znuny.com/

Do you want to contribute or want to know where it goes ?
steste123
Znuny wizard
Posts: 554
Joined: 25 Sep 2012, 19:04
Znuny Version: OTRS Help Desk
Real Name: Stefan

Re: CustomerAuth v. ext. DB - begrenzen?

Post by steste123 »

Das seltsame ist, valid_id hat immer Wert 2 :-/

Kann es daran liegen, dass active und disabled beides ENUM Felder mit 0,1 sind?

Code: Select all

SELECT uemail, active, disabled, 
IF(active="1" AND disabled="0",1,2) AS valid_id 
FROM com_users  
ORDER BY `valid_id`  DESC
OTRS 5.x - Debian 8 - apache 2.4 - MySQL 5.x
root
Administrator
Posts: 3934
Joined: 18 Dec 2007, 12:23
Znuny Version: Znuny and Znuny LTS
Real Name: Roy Kaldung
Company: Znuny
Contact:

Re: CustomerAuth v. ext. DB - begrenzen?

Post by root »

steste123 wrote: Kann es daran liegen, dass active und disabled beides ENUM Felder mit 0,1 sind?
Ja, passe die IF-Clause an den Datentypen an
Znuny and Znuny LTS running on CentOS / RHEL / Debian / SLES / MySQL / PostgreSQL / Oracle / OpenLDAP / Active Directory / SSO

Use a test system - always.

Do you need professional services? Check out https://www.znuny.com/

Do you want to contribute or want to know where it goes ?
steste123
Znuny wizard
Posts: 554
Joined: 25 Sep 2012, 19:04
Znuny Version: OTRS Help Desk
Real Name: Stefan

Re: CustomerAuth v. ext. DB - begrenzen?

Post by steste123 »

so habe es... Danke für die gute Hilfe :)

Code: Select all

CREATE OR REPLACE VIEW OTRSview AS SELECT uemail, active, disabled, IF(active='1' AND disabled='0',1,0) AS valid_id FROM com_users
mit Create or Replace view abc liefert er ein leeres Ergebnis zurück. Führe ich nur den Select-Befehl aus erhalte ich entsprechende Ergebnisse.

UPDATE:
Alles gut. Gelöst.
OTRS 5.x - Debian 8 - apache 2.4 - MySQL 5.x
steste123
Znuny wizard
Posts: 554
Joined: 25 Sep 2012, 19:04
Znuny Version: OTRS Help Desk
Real Name: Stefan

Re: CustomerAuth v. ext. DB - begrenzen?

Post by steste123 »

Nachtrag:
Alles angepasst und es läuft! Vielen Dank für die gute Hilfe! :)
OTRS 5.x - Debian 8 - apache 2.4 - MySQL 5.x
Post Reply