Sicherheitskonzept
Das Sicherheitskonzept von webERP besteht aus den folgenden Elementen:

1. Benutzerkonto
   Für jeden Anwender von webERP sollte ein persönliches Benutzerkonto eingerichtet werden.
   Benutzerkonten können von Administratoren über: Hauptmenü → Einstellungen → Benutzerstammsätze (WWW_Users.php) angelegt werden.
   Jeder Benutzer wird einer durch Auswählen aus der Drop-Down-Liste einer 'Rolle' zugeordnet.
   Unten finden Sie eine Liste der standardmäßigen Rollen.
2. Rolle
   Rollen können von einem Administrator über Hauptmenü → Einstellungen → Rollen und Berechtigungen (WWW_Access.php) hinzugefügt oder entfernt werden.
   Jeder 'Rolle' sind eine oder mehrere 'Berechtigungen' zugeordnet. Die zu einer 'Rolle' zugeordneten 'Berechtigungen' können über: Hauptmenü → Einstellungen → Rollen und Berechtigungen (WWW_Access.php) geändert werden.
   Unten finden Sie eine Liste der zu den standardmäßigen 'Rollen' jeweils zugeordneten Berechtigungen.
3. Berechtigungen
   Standardmäßig stehen 15 'Berechtigungen' zur Auswahl. Jede 'Berechtigung' erlaubt den Zugriff auf eine oder mehrere webERP-Seiten.
   Unten finden Sie eine Liste der standardmäßigen Berechtigungen.
   Es gibt kein webERP-Werkzeug, um 'Berechtigungen' hinzuzufügen, zu entfernen oder zu bearbeiten. Bei Bedarf kann ein Administrator die Datenbanktabelle (securitytokens) bearbeiten.
4. Sicherheitsniveau
   Jede webERP-Seite besitzt ein Sicherheitsiveau im Wertebereich von 1 bis 15.
   Dies ist für jede Seite im Quelltext fest kodiert, zum Beispiel durch die Angabe `$PageSecurity = 1;`
   Für den Benutzerzugriff muss die 'Berechtigung' das Seiten-Sicherheitsniveau entsprechen.
   Es gibt kein webERP-Werkzeug, um die Seiten-Sicherheitsniveaus zu ändern. Ein Administrator oder Entwickler kann die Seiten gegebenenfalls direkt bearbeiten.

Diese Elemente wirken wie folgt zusammen: Mit der eingegebenen Kombination von Benutzerkonto und Passwort kann das System bei der Anmeldung die Rolle ermitteln. Die Rolle des Benutzers bestimmt, welche Berechtigungen der Benutzer besitzt. Dadurch darf der Benutzer auf alle die webERP-Seiten zugreifen, deren Sicherheitsniveau einer der Berechtigungen aus seiner Rolle entspricht.
Eine umfangreichere Beschreibung des Sicherheitskonzeptes folgt:
Jede webERP-Seite (php-Skript) hat einen bestimmtes Niveau der Sicherheit zugeordnet. Dieses Sicherheitsniveau ist in jedem Skript fest eingetragen. Zum Zeitpunkt der Erstellung dieser Dokumentation ist dies eine Zahl zwischen 1 und 15. Wenn weitere Sicherheitsniveaus erforderlich werden, so kann das durch einen Administrator oder Entwickler erweitert werden. Die vorgegebenen Sicherheitsniveaus für jede Seite finden Sie in der Tabelle unten.
Der Benutzer erhält den Zugriff auf eine Seite, wenn das Sicherheitsniveau dieser Seite einer Berechtigung im Array SESSION AllowedPageSecurityTokens entspricht, die wiederum durch die Rolle des Benutzers bestimmt werden. Die Rolle selbst ist eine Ganzzahl, die dem Anwender in den Benutzerstammsatz über die Seite Benutzer pflegen (WWW_users.php) zugeordnet wird.
Die Zugriffsberechtigung für die jeweilige Seite wird im Include session.inc (bzw. PDF_Starter.inc für PDF-Seiten) geprüft. Die Variable $_SESSION['AccessLevel'] wird im Moment der Anmeldung des Benutzers aus der Datenbank abgerufen. Diese Variable verweist auf die Rolle des Benutzers. Das Array SESSION[AllowedPageSecurityTokens'] wird auf der Grundlage der Rolle (AccessLevel) mit den Berechtigungen aus der Datenbank gefüllt. Jede Seite mit einem Sicherheitsniveau $PageSecurity gleich einem Wert in dem ganannten Array wird als eine berechtigt Seite angesehen.
Wenn Sie zusätzliche Rollen anlegen wollen, müssen Sie dazu das Skript "Rollen und Berechtigungen" (WWW.Access.php) anwenden. Sie müssen ebenso die Berechtigungen für die neue Rolle zuordnen. Benutzer, die diese neue Rolle zugeordnet bekommen, werden den Zugriff auf jede Seite erhalten, deren Sicherheitsnivau einem Wert einer Berechtigung in dieser neuen Rolle entspricht. Dieser Mechanismus erlaubt es dem Systemadmiistrator zu steuern, wer worauf zugreifen darf.
Durch Änderungen der Rollen, die den einzelnen Benutzern zugeordnet sind und das Ändern der Berechtigngen, die den einzelnen Rollen zugeordnet sind, können die Zugriffsberectigungen für alle Benutzer auf die einzelnen Seiten maßgeschneidert werden. Wenn Sie Änderungen vornehmen, beziehen Sie sich auf die Standardwerte in den untenstehenden Tabellen. Die Sicherheitsniveaus der einzelnen Seiten müssen ebenfalls bekannt sein. Die Werte der Standardeinstellungen können wie benötigt abgeändert werden.
Tabellen des Sicherheitskonzeptes

Tabelle.Feld | Beispieldaten | Bemerkung
--- | --- | ---
www_user.userid www_user.fullaccess | demo 8 | Diese Felder werden durch das Skript WWW_Users.php geändert.
securityroles.secroleid securityroles.secrolename | 8 System Administrator | Diese Felder werden durch WWW_Access.php geändert, wenn eine Rolle angelegt oder gelöscht wird.
securitygroups.secroleid securitygroups.tokenid | 8 1 | Diese Felder werden durch WWW_Access.php geändert, wenn Sie einer Rolle eine Berechtigung zuordnen oder aus einer Rolle eine Berechtigung entfernen.
securitytokens.tokenid securitytokens.tokenname | 1 Auftragseingabe - Kundenzugriff | Es sind standardmäßig 15 Berechtigungen definiert. Diese Daten können mit keinem webERP-Werkzeug bearbeitet werden.
webERP-Seite | CustomerInquiry.php $PageSecurity = 1; | Das Sicherheitsniveau für jede Seite ist vordefiniert und kann nicht mit webERP-Mitteln geändert werden.

Rollen: Standardwerte für webERP version 3.08:

1. Inquiries/Order Entry (Auswertungen/Auftragserfassung)
2. Manufac/Stock Admin (Fertigung/Bestandsführung)
3. Purchasing officer (Einkaufsverantwortlicher)
4. AP Clerk (Kreditorenbuchhalter)
5. AR Clerk (Debitorenbuchhalter)
6. Accountant (Bilanzbuchhalter)
7. Customer logon only (Nur Kundenzugriff)
8. System Administrator (Systemverwalter)

Berechtigungszuordnungen: Standardwerte für webERP version 3.071:

1. Inquiries/Order Entry (Auswertungen/Auftragserfassung) = 1, 2
2. Manufac/Stock Admin (Fertigung/Bestandsführung) = 1, 2, 11
3. Purchasing officer (Einkaufsverantwortlicher) = 1, 2, 3, 4, 5, 11
4. AP Clerk (Kreditorenbuchhalter) = 1, 2, 5
5. AR Clerk (Debitorenbuchhalter) = 1, 2, 5, 11
6. Accountant (Bilanzbuchhalter) = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
7. Customer logon only (Nur Kundenzugriff) = 1
8. System Administrator (Systemverwalter) = alle aktuellen Berechtigungen

Berechtigungen: Standardwerte für webERP Version 3.08:

1. Order Entry/Inquiries customer access only (Auftragseingabe und -abfrage nur für den Kundenzugriff)
2. Basic Reports and Inquiries with selection options (Grundlegende Berichte und Auswertungen mit Auswahlmöglichkeiten)
3. Credit notes and AR management (Gutschriften und Debitoren-Verwaltung)
4. Purchasing data/PO Entry/Reorder Levels (Einkaufsdaten / Bestellerfassung / Bestellpunkte)
5. Accounts Payable (Kreditoren)
6. Not used
7. Bank Reconciliations (Bankkonten-Abstimmungen)
8. General ledger reports/inquiries (Hauptbuchberichte und -auswertungen)
9. Not used
10. General Ledger Maintenance, stock valuation & Configuration (Hauptbuchabwicklung, Bestandsbewertung und Konfiguration)
11. Inventory Management and Pricing (Bestandsverwaltung und Preisbildung)
12. Unknown
13. Unknown
14. Unknown
15. User Management and System Administration (Benutzer- und Systemverwaltung)

Sicherheitsniveau: Standardwerte für webERP Version 3.08:

Seite Dateiname | Sicherheitsniveau
--- | ---
AccountGroups.php | 10
AccountSections.php | 10
AgedDebtors.php | 2
AgedSuppliers.php | 2
Areas.php | 3
BankAccounts.php | 10
BankMatching.php | 7
BankReconciliation.php | 7
BOMInquiry.php | 2
BOMListing.php | 2
BOMs.php | 9
COGSGLPostings.php | 10
CompanyPreferences.php | 10
ConfirmDispatchControlled_Invoice.php | 11
ConfirmDispatch_Invoice.php | 2
CreditItemsControlled.php | 3
CreditStatus.php | 3
Credit_Invoice.php | 3
Currencies.php | 9
CustEDISetup.php | 11
CustomerAllocations.php | 3
CustomerBranches.php | 3
CustomerInquiry.php | 1
CustomerReceipt.php | 3
Customers.php | 3
CustomerTransInquiry.php | 2
Custwherealloc.php | 2
DebtorsAtPeriodEnd.php | 2
DeliveryDetails.php | 1
DiscountCategories.php | 11
DiscountMatrix.php | 11
EDIMessageFormat.php | 10
EDIProcessOrders.php | 11
EDISendInvoices.php | 15
EmailCustTrans.php | 2
FreightCosts.php | 11
FTP_RadioBeacon.php | 2
GetStockImage.php | 1
GLAccountInquiry.php | 8
GLAccounts.php | 10
GLBalanceSheet.php | 8
GLBudget.php | 8
GLCodesInquiry.php | 8
GLJournal.php | 10
GLProfit_Loss.php | 8
GLTransInquiry.php | 8
GLTrialBalance.php | 8
GoodsReceived.php | 11
GoodsReceivedControlled.php | 11
ImportOrdersTowebERP.php | 1
index.php | 1
InventoryPlanning.php | 2
InventoryValuation.php | 2
Locations.php | 11
Logout.php | 1
MailInventoryValuation.php | 1
OrderDetails.php | 2
OutstandingGRNs.php | 2
PaymentAllocations.php | 5
PaymentMethods.php | 15
Payments.php | 5
PaymentTerms.php | 10
PDFBankingSummary.php | 3
PDFChequeListing.php | 3
PDFCustomerList.php | 2
PDFDeliveryDifferences.php | 3
PDFDIFOT.php | 3
PDFLowGP.php | 2
PDFOrdersInvoiced.php | 3
PDFOrderStatus.php | 3
PDFPriceList.php | 2
PDFQuotation.php | 2
PDFStockCheckComparison.php | 2
PDFStockLocTransfer.php | 1
PDFStockNegatives.php | 1
PeriodsInquiry.php | 2
PO_Header.php | 4
PO_Items.php | 4
PO_OrderDetails.php | 2
PO_PDFPurchOrder.php | 2
PO_SelectOSPurchOrder.php | 2
PO_SelectPurchOrder.php | 2
Prices.php | 2
Prices_Customer.php | 11
PrintCheque.php | 5
PrintCustOrder.php | 2
PrintCustOrder_Generic.php | 2
PrintCustStatements.php | 2
PrintCustTrans.php | 1
PrintCustTransPortrait.php | 1
PurchData.php | 4
RecurringSalesOrders.php | 1
ReverseGRN.php | 11
SalesAnalReptcols.php | 2
SalesAnalRepts.php | 2
SalesAnalysis_UserDefined.php | 2
SalesCategories.php | 11
SalesGLpostings.php | 10
SalesGraph.php | 6
SalesPeople.php | 3
SalesTypes.php | 15
SelectCompletedOrder.php | 1
SelectCreditItems.php | 3
SelectCustomer.php | 2
SelectGLAccount.php | 8
SelectOrderItems.php | 1
SelectProduct.php | 2
SelectRecurringSalesOrder.php | 2
SelectSalesorder.php | 2
SelectSupplier.php | 2
SelectWorkorder.php | 2
ShipmentCosting.php | 11
Shipments.php | 11
Shippers.php | 15
ShiptsList.php | 2
Shipt_Select.php | 11
SpecialOrder.php | 4
StockAdjustments.php | 11
StockAdjustmentsControlled.php | 11
StockCategories.php | 11
StockCheck.php | 2
StockCostUpdate.php | 2
StockCounts.php | 2
StockLocMovements.php | 2
StockLocStatus.php | 2
StockLocTransfer.php | 11
StockLocTransferReceive.php | 11
StockMovements.php | 2
StockQties_csv.php | 5
StockQuantityByDate.php | 2
StockReorderLevel.php | 4
Stocks.php | 11
StockSerialItemResearch.php | 3
StockSerialItems.php | 2
StockStatus.php | 2
StockTtransferControlled.php | 11
StockTransfers.php | 11
StockUsage.php | 2
StockUsageGraph.php | 2
SuppCreditGRNs.php | 5
SuppInvGLAnalysis.php | 5
SuppInvGRNs.php | 5
SupplierAllocations.php | 5
SupplierBalsAtPeriodEnd.php | 2
SupplierContacts.php | 5
SupplierCredit.php | 5
SupplierInquiry.php | 2
SupplierInvoice.php | 5
Suppliers.php | 5
SupplierTransInquiry.php | 2
SuppPaymentrun.php | 5
SuppShiptChgs.php | 5
SuppTransGLAnalysis.php | 5
SystemParameters.php | 15
Tax.php | 2
TaxAuthorities.php | 15
TaxAuthorityRates.php | 11
TaxCategories.php | 15
TaxGroups.php | 15
TaxProvinces.php | 15
UnitsOfMeasure.php | 15
UserSettings.php | 1
WhereUsedInquiry.php | 2
WorkCentres.php | 9
WorkOrderCosting.php | 11
WorkOrderEntry.php | 10
WorkOrderIssue.php | 11
WorkOrderReceive.php | 11
WorkOrderStatus.php | 11
WWW_Access.php | 15
WWW_Users.php | 15
Z_ChangeBranchCode.php | 15
Z_ChangeCustomerCode.php | 15
Z_ChangeStockcode.php | 15
Z_CheckAllocationsFrom.php | 15
Z_CheckAllocs.php | 2
Z_CheckDebtorsControl.php | 15
Z_CheckGLTransBalance.php | 15
Z_CreateChartDetails.php | 9
Z_CreateCompany.php | 15
Z_CurrencyDebtorsBalances.php | 15
Z_CurrencySuppliersBalances.php | 15
Z_DataExport.php | 15
Z_DeleteCreditNote.php | 15
Z_DeleteInvoice.php | 15
Z_DeleteSalesTransactions.php | 15
Z_index.php | 15
Z_MakeNewCompany.php | 15
Z_MakeStockLocns.php | 15
Z_poAddLanguage.php | 15
Z_poAdmin.php | 15
Z_poEditLangHeader.php | 15
Z_poEditLangModule.php | 15
Z_poRebuildDefault.php | 15
Z_PriceChanges.php | 15
Z_ReApplyCostToSA.php | 15
Z_RepostGLFromPeriod.php | 15
Z_ReverseSuppPaymentRun.php | 15
Z_UpdateChartDetailsBFwd.php | 15
Z_Upgrade_3.01-3.02.php | 15
Z_Upgrade_3.04-3.05.php | 15
Z_Upgrade_3.05-3.06.php | 15
Z_UploadForm.php | 15
Z_UploadResult.php | 15