Files
thetool/Layout/default/User/Form.php
2025-02-25 20:33:47 +01:00

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"); ?>