Plugin e1_ws_createuser


Plugin slúži na zakladanie používateľov a nastavenie kategórii pre používateľa. Plugin môže založenému používateľovi poslať e-mail s prihlasovacími údajmi a príp. ďalšími potrebnými informáciami.

Zakladá sa typ používateľa, ktorý sa môže prihlasovať do aplikácie, ale nemôže sa prihlasovať do konfigurácie na webe.

Najčastejší spôsob použitia je taký, že pomocou modelu Working with user category si zobrazím tabuľku s používateľmi (je potrebné, aby bola vo workspace aspon jedna kategória) vo forme setu a nad týmto setom urobím akcia Nový, Oprava a Zrušiť pomocou akcií Create User, Modify user category a Remove User. Takýmto spôsobom získam kompletný prístup k administrácií používateľov priamo z aplikácie.

Príklad použitia:

Inštalácia pluginu

Stiahnutie pluginu

Konfigurácia pluginu

Potrebné údaje sa dajú zadať buď do konfiguračného súboru e1_ws_createuser.config, ktorý sa ukladá vedľa pluginu alebo je možné použiť parametre v datasource (zoznam dostupných parametrov sa predvyplní po vybraní modelu pre plugin).

Nastavenie v konfiguračnom súbore:

<?xml version="1.0" encoding="utf-8" ?>
  <appSettings>
    <add key="e1" value="https://my.erpio.one" />
    <add key="e1u" value="UserName" />
    <add key="e1p" value="UserPassword" />
    <add key="workspace" value="WorkspaceID" />
    <add key="defaultCountry" value="SK" />
    <add key="server" value="" />
    <add key="port" value="" />
    <add key="from" value="" />
    <add key="fromName" value="" />
    <add key="useCredentials" value="" />
    <add key="useSslTls" value="" />
    <add key="user" value="" />
    <add key="password" value="" />
    <add key="useHTMLBody" value="" />
    <add key="catergoriesCount" value="1"/>
 </appSettings>

Pre zabezpečenie prihlasovacích údajov v konfiguračnom súbore je možné od verzie 3.5 pridať kľúč:

<add key="e1h" value="hash" />

ktorý zabezpečí to, že po spustení brány sa prihlasovacie údaje v konfiguračnom údaje zahashujú (stanú sa nečitateľné ľudskému oku). Že sú údaje zahashované hovorí následne hodnota kľúča e1h, ktorá sa zmení na hashed.

Parametre sa dajú nastaviť aj priamo v parametroch dátového zdroja, tieto majú prednosť pred nastavením v konfiguračnom súbore. Nastavenie v parametroch:

Popis nastavení:

Názov v konfiguNázov v parametrochPopis
e1@e1Cesta na server ERPIO One
token@tokenAccess token používateľa, ktorý má práva na vytváranie ďalších používateľov. Ako získať access token
workspace@workspaceID Vášho workspace (môžete ho nájsť na Dashboarde)
defaultCountry@CountryISO kód predvolenej krajiny, napr. SK
server@emailserverSMTP server, z ktorého sa majú e-maily posielať
port@emailportPort, ktorý používa SMTP server
from@fromE-mail odosielateľa, ktorý sa zobrazí v odoslanej správe
fromName@fromNameMeno odosielateľa, ktorý sa zobrazí v odoslanej správe
useCredentials@useCredentialstrue/false – či je potrebné sa k SMTP serveru prihlasovať
useSslTls@useSslTlstrue/false – či SMTP server používa SSL/TLS
user@emailuserPrihlasovacie meno pre prihlásenie k SMTP serveru
password@emailpasswordHeslo pre prihlásenie k SMTP serveru
useHTMLBody@useHTMLBodytrue/false – či odoslaná spr
catergoriesCount@catergoriesCountPočet kategórií, ktoré potrebujete nastavovať. Podľa tohto nastavenia je potom v akcii možné používať parametre @CategoryX, @CategoryRightsX

Plugin obsahuje 3 modely.

Model: Working with E1 category

Slúži na zobrazenie dostupných kategórii vo vybranom workspace.

Model: Working with E1 user

Slúži na prácu s používateľom. Pre set nad týmto modelom sú dostupné 2 akcie:

  • Create User – Akcia na vytváranie používateľov – pridá nového používateľa do workspace. Ak neexistuje vôbec v ERPIO One, tak sa vytvorí so zadaným heslom. Ak uz používateľ so zadaným e-mailom v ERPIO One existuje, tak sa len pridá do vybraného workspace (heslo sa nemení). Detailnejší popis akcie nájdete nižšie v texte.

  • Remove User – Akcia na vyradenie používateľov – vyradí vybraného používateľa z workspace. Má stále prístup do ERPIO One do iných workspace, v ktorých je pridaný

Model: Working with E1 user category

Zobrazí zoznam všetkých používateľov daného workspace, ktorý sú priradený aspoň jednej kategórii spolu s informáciou v ktorej kategórii má aké práva a GUID kategórie, ktoré sa používa v akciách.

Pre set nad týmto modelom je dostupná akcia:

  • Modify user category – Akcia pre úpravu práv v kategóriách – slúži na úpravu práv vybraného používateľa v kategóriách

Akcia pre vytváranie používateľov

Plugin má preddefinovanú akciu CreateUser, ktorá sa ponúkne pri vytváraní akcie nad setom vychádzajúcim z tohto pluginu. Kliknutím na šípku dole sa nastavenia aplikujú na novovytváranú akciu.

Akcia pridá nasledovné predvolené parametre:

Názov parametraPopis
@EmailE-mailová adresa nového používateľa
@FirstNameMeno nového používateľa
@LastNamePriezvisko nového používateľa
@PasswordHeslo pre nového používateľa, môže si ho následne zmeniť v aplikácii. Heslo musí spĺňať nasledovné podmienky:
– dĺžka musí byť medzi 6 až 30 znakov
– musí obsahovať aspoň jedno malé písmeno
– musí obsahovať aspoň jednu číslicu
– musí obsahovať aspoň jedno veľké písmeno
@sendMailtrue/false – či sa má odosielať e-mail
@ccE-mailová adresa, na ktorú sa má poslať kópia e-mailu
@bccE-mailová adresa, na ktorú sa má poslať skrytá kópia e-mailu
@subjectPredmet e-mailu
@bodyTelo správy
@SenderMeno odosielateľa, ktoré sa môže použiť v texte e-mailu
@Category1ID kategórie pre ktorú chcem nastaviť práva
@CategoryRights1Práva pre danú kategóriu:
Zakázané = 0,
Povolené = 1

Parametre @CategoryX a @CategoryRightsX je možné duplikovať podľa počtu kategórii zadaných v konfigurácii catergoriesCount/@catergoriesCount.

Príklad textu e-mailu (@body), v texte je možné použiť parametre @Email, @Password, @FirstName, @LastName, @Sender. Tieto budú vo výslednej správe nahradené hodnotami z akcie:

Dobry den,<br/>
<br/>
boli ste pozvany na vyuzivanie mobilného prístupu k firemnym udajom.<br/>
<br/>
Budete potrebovať aplikaciu ERPIO APP, stiahnite si ju z linkov pre jednotlive platformy <a href="https://erpio.app/#download">www.erpio.app</a>.<br/>
<br/>
Vase prihlasovacie udaje:<br/>
<br/>
Prihlasovacie meno - @Email<br/>
Heslo - @Password<br/>
<br/>
Predvolene heslo si zmenite priamo v aplikacii.<br/>
<br/>
V pripade potreby nas kontaktujte na support@erpio.one.<br/>
<br/>
S pozdravom<br/>
<br/>
Vas ERPIO Team

Príklad nastavení kategórií:

Získanie ID kategórie:

Na Dashboarde voľba Categories, edit na vybranú kategóriu a potom je ID vidieť v URL

Do poľa pre command SQL môžete zadať SQL príkaz, ktorý sa vykoná voči SQL pripojeniu brány.

TO DO akcia pre editáciu user vs category

Password Generator

CREATE VIEW [dbo].[RandomNoise]
AS
-- helper view for accessing CRYPT_GEN_RANDOM from UDF
-- see dbo.GeneratePassword for details about 2048 value
SELECT CRYPT_GEN_RANDOM(2048) Bytes

CREATE FUNCTION [dbo].[GeneratePassword](@letters INT = NULL, @numbers INT = NULL, @symbols INT = NULL)
RETURNS VARCHAR(256)
AS
BEGIN
    -- actual defaults
    IF @letters IS NULL SET @letters = 6
    IF @numbers IS NULL SET @numbers = 3
    IF @symbols IS NULL SET @symbols = 1

    IF @letters < 0 SET @letters = 0
    IF @numbers < 0 SET @numbers = 0
    IF @symbols < 0 SET @symbols = 0

    IF @letters > 256 SET @letters = 256
    IF @numbers > 256 SET @numbers = 256
    IF @symbols > 256 SET @symbols = 256

    DECLARE @letterSet VARCHAR(52) = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',
            @numberSet VARCHAR(10) = '0123456789',
            @symbolSet VARCHAR(20) = '!@#$%&*+', --'!@#$%^&*()_+-=[]{}',
            @pwdLen INT = @letters + @numbers + @symbols

    IF @pwdLen > 256 SET @pwdLen = 256

    -- 256 is max possible password length
    DECLARE @pwd VARCHAR(256) = ''

    -- 2048 = (4 bytes rnd set + 4 bytes rnd position in set) * 256 max password length
    DECLARE @noise VARBINARY(2048) = (SELECT n.Bytes FROM dbo.RandomNoise n)

    DECLARE @i INT = 0

    WHILE @i < @pwdLen
    BEGIN
        SET @i = @i + 1

        -- [0,1)
        DECLARE @who FLOAT = (CAST(CAST(SUBSTRING(@noise, @i    , 4) AS INT) AS FLOAT) + 2147483648.0) / 4294967296.0,
                @pos FLOAT = (CAST(CAST(SUBSTRING(@noise, @i + 4, 4) AS INT) AS FLOAT) + 2147483648.0) / 4294967296.0

        IF @who < (@letters / CAST(@letters + @numbers + @symbols AS FLOAT))
        BEGIN
            SET @pwd = @pwd + SUBSTRING(@letterSet, CAST(@pos * LEN(@letterSet) + 1 AS INT), 1)
            SET @letters = @letters - 1
        END
        ELSE
        IF @who < ((@letters + @numbers) / CAST(@letters + @numbers + @symbols AS FLOAT))
        BEGIN
            SET @pwd = @pwd + SUBSTRING(@numberSet, CAST(@pos * LEN(@numberSet) + 1 AS INT), 1)
            SET @numbers = @numbers - 1
        END
        ELSE
        BEGIN
            SET @pwd = @pwd + SUBSTRING(@symbolSet, CAST(@pos * LEN(@symbolSet) + 1 AS INT), 1)
            SET @symbols = @symbols - 1
        END
    END

    RETURN @pwd
END