516 lines
32 KiB
PHP
516 lines
32 KiB
PHP
<?php
|
|
$siteTitle = "Benutzer";
|
|
?>
|
|
<?php include(realpath(dirname(__FILE__) . "/../../$mfLayoutPackage") . "/header.php"); ?>
|
|
|
|
<!-- start page title -->
|
|
<div class="row">
|
|
<div class="col-12">
|
|
<div class="page-title-box">
|
|
<div class="page-title-right">
|
|
<ol class="breadcrumb m-0">
|
|
<li class="breadcrumb-item"><a href="<?=self::getUrl("Dashboard")?>"><?=MFAPPNAME_SLUG?></a>
|
|
</li>
|
|
<li class="breadcrumb-item"><a href="<?=self::getUrl("User")?>">Benutzer</a></li>
|
|
<li class="breadcrumb-item"><?=($action == "edit") ? "bearbeiten" : "neu"?></li>
|
|
</ol>
|
|
</div>
|
|
<h4 class="page-title">Benutzer</h4>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- end page title -->
|
|
|
|
<form method="post" action="<?=$this->getUrl("User", "save")?>">
|
|
<!-- Main content -->
|
|
<div class="row">
|
|
<div class="col-lg">
|
|
<div class="card bg-light">
|
|
<div class="card-body">
|
|
<h4 class="header-title mb-3">Benutzer bearbeiten</h4>
|
|
<div class="card">
|
|
<div class="card-body">
|
|
|
|
|
|
<input type="hidden" name="id" value="<?=$user->id?>"/>
|
|
<div class="form-group">
|
|
<label for="username">Username:</label>
|
|
<input type="text" id="username" name="username" class="form-control"
|
|
value="<?=$user->username?>"/>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="name">Name:</label>
|
|
<input type="text" id="name" name="name" class="form-control"
|
|
value="<?=$user->name?>"/>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="email">Email:</label>
|
|
<input type="text" id="email" name="email" class="form-control"
|
|
value="<?=$user->email?>"/>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="mobile">Handy Nr.:</label>
|
|
<input type="text" id="mobile" placeholder="+436641234xxx" name="mobile"
|
|
class="form-control" value="<?=$user->mobile?>"/>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="address_id">Firma/Person:</label>
|
|
<select name="address_id" id="address_id" class="form-control">
|
|
<option value=""></option>
|
|
<?php foreach($addresses as $address): ?>
|
|
<option value="<?=$address->id?>" <?=($address->id == $user->address_id || $address->id == $user->address_id) ? "selected='selected'" : ""?>><?=($address->company) ? $address->company : $address->getFullName()?><?=($address->customer_number) ? " (" . $address->customer_number . ")" : ""?></option>
|
|
<?php endforeach; ?>
|
|
</select>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="admin">Admin:</label>
|
|
<select name="admin" id="admin"
|
|
class="form-control" <?=($user->id == 1) ? "disabled='disabled'" : ""?>>
|
|
<option value="false" <?=(isset($user) && !$user->isAdmin()) ? "selected='selected'" : ""?>>
|
|
No
|
|
</option>
|
|
<option value="true" <?=(isset($user) && $user->isAdmin() || $user->id == 1) ? "selected='selected'" : ""?>>
|
|
Yes
|
|
</option>
|
|
</select>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="technician">Techniker:</label>
|
|
<select name="technician" id="technician" class="form-control">
|
|
<option value="false" <?=(isset($user) && !$user->is("technician")) ? "selected='selected'" : ""?>>
|
|
No
|
|
</option>
|
|
<option value="true" <?=(isset($user) && $user->is("technician")) ? "selected='selected'" : ""?>>
|
|
Yes
|
|
</option>
|
|
</select>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="employee"><?=TT_SYSOWNER_NAME_HTML?> Mitarbeiter:</label>
|
|
<select name="employee" id="employee" class="form-control">
|
|
<option value="false" <?=(isset($user) && !$user->is("employee")) ? "selected='selected'" : ""?>>
|
|
No
|
|
</option>
|
|
<option value="true" <?=(isset($user) && $user->is("employee")) ? "selected='selected'" : ""?>>
|
|
Yes
|
|
</option>
|
|
</select>
|
|
</div>
|
|
<div class="form-group <?=(!isset($user) || !$user->is("employee")) ? "hidden" : ""?>"
|
|
id="employee-number-container">
|
|
<label for="employee_number"><?=TT_SYSOWNER_NAME_HTML?> Mitarbeiternummer:</label>
|
|
<input type="text" id="employee_number" name="employee_number" class="form-control"
|
|
value="<?=(isset($user)) ? (new WorkerFlag($user->id, "employee_number"))->value() : ""?>"/>
|
|
</div>
|
|
<div class="form-group <?=(!isset($user) || !$user->is("employee")) ? "hidden" : ""?>"
|
|
id="project-api-key-container">
|
|
<label for="project_api_key">OpenProject API Key:</label>
|
|
<input type="text" id="project_api_key" name="project_api_key" class="form-control"
|
|
value="<?=(isset($user)) ? (new WorkerFlag($user->id, "project_api_key"))->value() : ""?>"/>
|
|
</div>
|
|
|
|
|
|
<div class="form-group">
|
|
<label for="password">Password:</label>
|
|
<input type="password" id="password" name="password" class="form-control" value=""/>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="password2">Repeat Password:</label>
|
|
<input type="password" id="password2" name="password2" class="form-control"
|
|
value=""/>
|
|
</div>
|
|
|
|
<hr/>
|
|
|
|
<div class="form-group">
|
|
<label for="twofactorrequired">2FA erzwingen:</label>
|
|
<select name="twofactorrequired" id="twofactorrequired" class="form-control">
|
|
<option value="false" <?=(isset($user) && !$user->twofactorrequired) ? "selected='selected'" : ""?>>
|
|
No
|
|
</option>
|
|
<option value="true" <?=((!isset($user) || !$user->id) || (isset($user) && $user->twofactorrequired)) ? "selected='selected'" : ""?>>
|
|
Yes
|
|
</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="card">
|
|
<div class="card-body">
|
|
|
|
<h4 class="card-title mb-3">Preorder</h4>
|
|
|
|
<div class="form-group" id="preorderfront-container">
|
|
<label for="preorderfront">Preorder Frontdesk (Semi-Readonly):</label>
|
|
<select name="preorderfront" id="preorderfront" class="form-control">
|
|
<option value="false" <?=(isset($user) && !$user->is("preorderfront")) ? "selected='selected'" : ""?>>
|
|
No
|
|
</option>
|
|
<option value="true" <?=(isset($user) && $user->is("preorderfront")) ? "selected='selected'" : ""?>>
|
|
Yes
|
|
</option>
|
|
</select>
|
|
</div>
|
|
|
|
<div class="form-group" id="preorder-reporting-container">
|
|
<label for="preorderaddressreporting">Preorder Address Reporting API User:</label>
|
|
<select name="preorderaddressreporting" id="preorderaddressreporting"
|
|
class="form-control">
|
|
<option value="false" <?=(isset($user) && !$user->is("preorderaddressreporting")) ? "selected='selected'" : ""?>>
|
|
No
|
|
</option>
|
|
<option value="true" <?=(isset($user) && $user->is("preorderaddressreporting")) ? "selected='selected'" : ""?>>
|
|
Yes
|
|
</option>
|
|
</select>
|
|
<small>z.B. Meridiam</small>
|
|
</div>
|
|
|
|
<div class="form-group" id="preorderlogistics-container">
|
|
<label for="preorderlogistics">Preorder Logistikpartner:</label>
|
|
<select name="preorderlogistics" id="preorderlogistics" class="form-control">
|
|
<option value="false" <?=(isset($user) && !$user->is("preorderlogistics")) ? "selected='selected'" : ""?>>
|
|
No
|
|
</option>
|
|
<option value="true" <?=(isset($user) && $user->is("preorderlogistics")) ? "selected='selected'" : ""?>>
|
|
Yes
|
|
</option>
|
|
</select>
|
|
</div>
|
|
|
|
<div class="form-group" id="preorder-network-container">
|
|
<label for="preorder_networks">Preorder Netzgebiete:</label>
|
|
<?php
|
|
$pns = [];
|
|
if($user->id) {
|
|
$pns = json_decode((new WorkerFlag($user->id, "preorder_networks"))->value());
|
|
if(!$pns) {
|
|
$pns = [];
|
|
}
|
|
}
|
|
|
|
?>
|
|
<select name="preorder_networks[]" id="preorder_networks" class="form-control"
|
|
multiple="multiple">
|
|
<?php foreach(NetworkModel::getAll() as $network): ?>
|
|
<option value="<?=$network->id?>" <?=(in_array($network->id, $pns)) ? "selected='selected'" : ""?>><?=$network->name?></option>
|
|
<?php endforeach; ?>
|
|
</select>
|
|
<small>Beschränkt Benutzer auf Netzgebiete. Überschreibt Netzgebiete der Firma. Wenn
|
|
leer werden Netzgebiete der Firma angezeigt</small>
|
|
</div>
|
|
|
|
<div class="form-group" id="preorderreadonly-container">
|
|
<label for="preorderreadonly">Preorder Readonly:</label>
|
|
<select name="preorderreadonly" id="preorderreadonly" class="form-control">
|
|
<option value="false" <?=(isset($user) && !$user->is("preorderreadonly")) ? "selected='selected'" : ""?>>
|
|
Read/Write
|
|
</option>
|
|
<option value="true" <?=(isset($user) && $user->is("preorderreadonly")) ? "selected='selected'" : ""?>>
|
|
Readonly
|
|
</option>
|
|
</select>
|
|
</div>
|
|
|
|
<h4 class="mt-2">Preorder Module</h4>
|
|
<div class="row mt-3">
|
|
<div class="col-4">
|
|
<div class="form-group form-check">
|
|
<input type="checkbox" class="form-check-input" name="can[Preorderpricing]"
|
|
id="can_preorderpricing"
|
|
value="1" <?=($user && $user->can("Preorderpricing")) ? "checked='checked'" : ""?> />
|
|
<label for="can_preorderpricing" class="form-check-label">Preorder
|
|
Bepreisung</label>
|
|
</div>
|
|
<div class="form-group form-check">
|
|
<input type="checkbox" class="form-check-input"
|
|
name="can[PreorderpricingReadonly]" id="can_preorderpricingreadonly"
|
|
value="1" <?=$user && $user->can("PreorderpricingReadonly") ? "checked='checked'" : ""?> />
|
|
<label for="can_preorderpricingreadonly" class="form-check-label">Preorder
|
|
Bepreisung Readonly</label>
|
|
</div>
|
|
</div>
|
|
<div class="col-4">
|
|
<div class="form-group form-check">
|
|
<input type="checkbox" class="form-check-input" name="can[Preorderbilling]"
|
|
id="can_preorderbilling"
|
|
value="1" <?=($user && $user->can("Preorderbilling")) ? "checked='checked'" : ""?> />
|
|
<label for="can_preorderbilling" class="form-check-label">Preorder
|
|
Verrechnung</label>
|
|
</div>
|
|
<div class="form-group form-check">
|
|
<input type="checkbox" class="form-check-input"
|
|
name="can[PreorderbillingReadonly]" id="can_preorderbillingreadonly"
|
|
value="1" <?=$user && $user->can("PreorderbillingReadonly") ? "checked='checked'" : ""?> />
|
|
<label for="can_preorderbillingreadonly" class="form-check-label">Preorder
|
|
Verrechnung Readonly</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="card">
|
|
<div class="card-body">
|
|
|
|
<h4 class="card-title mb-3">Modulberechtigungen</h4>
|
|
|
|
<div class="row">
|
|
<div class="col-4">
|
|
<div class="form-group form-check">
|
|
<input type="checkbox" class="form-check-input" name="can[Building]"
|
|
id="can_building"
|
|
value="1" <?=($user && $user->can("Building")) ? "checked='checked'" : ""?> />
|
|
<label for="can_building" class="form-check-label">Objekte & Anschlüsse
|
|
(Gebäude)</label>
|
|
</div>
|
|
</div>
|
|
<div class="col-4">
|
|
<div class="form-group form-check">
|
|
<input type="checkbox" class="form-check-input" name="can[Pipework]"
|
|
id="can_pipework"
|
|
value="1" <?=$user && $user->can("Pipework") ? "checked='checked'" : ""?> />
|
|
<label for="can_pipework" class="form-check-label">Tiefbau</label>
|
|
</div>
|
|
</div>
|
|
<div class="col-4">
|
|
<div class="form-group form-check">
|
|
<input type="checkbox" class="form-check-input" name="can[Linework]"
|
|
id="can_linework"
|
|
value="1" <?=$user && $user->can("Linework") ? "checked='checked'" : ""?> />
|
|
<label for="can_linework" class="form-check-label">Leitungsbau</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-4">
|
|
<div class="form-group form-check">
|
|
<input type="checkbox" class="form-check-input" name="can[Patching]"
|
|
id="can_patching"
|
|
value="1" <?=$user && $user->can("Patching") ? "checked='checked'" : ""?> />
|
|
<label for="can_patching" class="form-check-label">Patching</label>
|
|
</div>
|
|
</div>
|
|
<div class="col-4">
|
|
<div class="form-group form-check">
|
|
<input type="checkbox" class="form-check-input" name="can[Filestore]"
|
|
id="can_filestore"
|
|
value="1" <?=$user && $user->can("Filestore") ? "checked='checked'" : ""?> />
|
|
<label for="can_filestore" class="form-check-label">Filestore
|
|
(Netzbau)</label>
|
|
</div>
|
|
</div>
|
|
<div class="col-4">
|
|
<div class="form-group form-check">
|
|
<input type="checkbox" class="form-check-input" name="can[Cpeprovisioning]"
|
|
id="can_cpeprovisioning"
|
|
value="1" <?=$user && $user->can("Cpeprovisioning") ? "checked='checked'" : ""?> />
|
|
<label for="can_cpeprovisioning" class="form-check-label">CPE
|
|
Provisioning</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-4">
|
|
<div class="form-group form-check">
|
|
<input type="checkbox" class="form-check-input" name="can[Cpeshipping]"
|
|
id="can_cpeshipping"
|
|
value="1" <?=$user && $user->can("Cpeshipping") ? "checked='checked'" : ""?> />
|
|
<label for="can_cpeshipping" class="form-check-label">CPE Versand</label>
|
|
</div>
|
|
</div>
|
|
<div class="col-4">
|
|
<div class="form-group form-check">
|
|
<input type="checkbox" class="form-check-input" name="can[Voipnumbering]"
|
|
id="can_voipnumbering"
|
|
value="1" <?=$user && $user->can("Voipnumbering") ? "checked='checked'" : ""?> />
|
|
<label for="can_voipnumbering" class="form-check-label">VOIP
|
|
Nummernverwaltung</label>
|
|
</div>
|
|
</div>
|
|
<div class="col-4">
|
|
<div class="form-group form-check">
|
|
<input type="checkbox" class="form-check-input" name="can[Preorder]"
|
|
id="can_preorder"
|
|
value="1" <?=$user && $user->can("Preorder") ? "checked='checked'" : ""?> />
|
|
<label for="can_preorder" class="form-check-label">Vorbestellung</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-4">
|
|
<div class="form-group form-check">
|
|
<input type="checkbox" class="form-check-input" name="can[Order]"
|
|
id="can_order"
|
|
value="1" <?=$user && $user->can("Order") ? "checked='checked'" : ""?> />
|
|
<label for="can_order" class="form-check-label">Bestellung</label>
|
|
</div>
|
|
</div>
|
|
<div class="col-4">
|
|
<div class="form-group form-check">
|
|
<input type="checkbox" class="form-check-input" name="can[Billing]"
|
|
id="can_billing"
|
|
value="1" <?=$user && $user->can("Billing") ? "checked='checked'" : ""?> />
|
|
<label for="can_billing" class="form-check-label">Verrechnung</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<h4 class="card-title mb-3 mt-3">Lager</h4>
|
|
|
|
<div class="row">
|
|
<div class="col-4">
|
|
<div class="form-group form-check">
|
|
<input type="checkbox" class="form-check-input" name="can[WarehouseAdmin]"
|
|
id="can_warehouse_admin"
|
|
value="1" <?=($user && $user->can("WarehouseAdmin")) ? "checked='checked'" : ""?> />
|
|
<label for="can_warehouse_admin"
|
|
class="form-check-label">Lager-Admin</label>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-4">
|
|
<div class="form-group form-check">
|
|
<input type="checkbox" class="form-check-input" name="can[WarehouseUser]"
|
|
id="can_warehouse_user"
|
|
value="1" <?=($user && $user->can("WarehouseUser")) ? "checked='checked'" : ""?> />
|
|
<label for="can_warehouse_user" class="form-check-label">Lager-User</label>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-4">
|
|
<div class="form-group form-check">
|
|
<input type="checkbox" class="form-check-input" name="can[WarehouseEShop]"
|
|
id="can_warehouse_e_shop"
|
|
value="1" <?=($user && $user->can("WarehouseEShop")) ? "checked='checked'" : ""?> />
|
|
<label for="can_warehouse_e_shop" class="form-check-label">Energie
|
|
Steiermark Shop</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<h4 class="card-title mb-3 mt-3">Zusatzberechtigungen</h4>
|
|
|
|
<div class="row">
|
|
<div class="col-4">
|
|
<div class="form-group form-check">
|
|
<input type="checkbox" class="form-check-input" name="can[Fibu]"
|
|
id="can_fibu"
|
|
value="1" <?=($user && $user->can("Fibu")) ? "checked='checked'" : ""?> />
|
|
<label for="can_fibu" class="form-check-label">Buchhaltung</label>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-4">
|
|
<div class="form-group form-check">
|
|
<input type="checkbox" class="form-check-input" name="can[Statistics]"
|
|
id="can_statistics"
|
|
value="1" <?=($user && $user->can("Statistics")) ? "checked='checked'" : ""?> />
|
|
<label for="can_statistics" class="form-check-label">Statistiken
|
|
anzeigen</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<hr/>
|
|
|
|
<div class="form-group">
|
|
<input type="submit" name="submit" value="Speichern" class="btn btn-primary"/>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
|
|
<?php if($user->id): ?>
|
|
<div class="row">
|
|
<div class="col-lg">
|
|
<div class="card">
|
|
<div class="card-header">
|
|
<h3 class="card-title">API Key</h3>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="form-group">
|
|
<input type="text" class="form-control" value="<?=$user->apikey?>" disabled="disabled"/>
|
|
</div>
|
|
<div class="form-group">
|
|
<form method="post" action="<?=self::getUrl("User", "generateApikey")?>">
|
|
<input type="hidden" name="id" value="<?=$user->id?>"/>
|
|
<?php if($user->apikey): ?>
|
|
<button type="submit" class="btn btn-outline-primary"
|
|
onclick="if(!confirm('Achtung: Dadurch wird der bisherige API Key ungültig. Wirklich neuen API Key generieren?')) return false;">
|
|
Neuen API Key generieren
|
|
</button>
|
|
<?php else: ?>
|
|
<button type="submit" class="btn btn-outline-primary">API Key generieren</button>
|
|
<?php endif; ?>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</form>
|
|
<?php endif; ?>
|
|
|
|
<script type="text/javascript">
|
|
|
|
|
|
$(document).ready(function () {
|
|
$("#address_id").select2({
|
|
allowClear: true,
|
|
placeholder: ""
|
|
});
|
|
$("#preorder_networks").select2({
|
|
allowClear: true,
|
|
placeholder: "",
|
|
closeOnSelect: false
|
|
});
|
|
|
|
<?php if(!$user || (!$user->is("preorderfront") && !$user->is("preorderaddressreporting")) ): ?>
|
|
//$("#preorder-network-container").hide();
|
|
<?php endif; ?>
|
|
<?php if($user && ($user->is("preorderfront")) ): ?>
|
|
//$("#preorder-reporting-container").hide();
|
|
<?php endif; ?>
|
|
<?php if($user && ($user->is("preorderaddressreporting")) ): ?>
|
|
//$("#preorderfront-container").hide();
|
|
<?php endif; ?>
|
|
|
|
$("select[name=preorderfront]").change(function () {
|
|
if ($("select[name=preorderfront]").val() == "true") {
|
|
$("#preorder-reporting-container").hide(500);
|
|
} else {
|
|
$("#preorder-reporting-container").show(500);
|
|
}
|
|
});
|
|
|
|
// preorder-reporting-container
|
|
$("select[name=preorderaddressreporting]").change(function () {
|
|
if ($("select[name=preorderaddressreporting]").val() == "true") {
|
|
$("#preorderfront-container").hide(400);
|
|
} else {
|
|
$("#preorderfront-container").show(400);
|
|
}
|
|
});
|
|
|
|
$("#employee").change(function () {
|
|
if ($("#employee").val() == "true") {
|
|
$("#employee-number-container").show(400);
|
|
} else {
|
|
$("#employee-number-container").hide(400);
|
|
}
|
|
});
|
|
});
|
|
|
|
</script>
|
|
|
|
<?php include(realpath(dirname(__FILE__) . "/../../$mfLayoutPackage") . "/footer.php"); ?>
|