Added User
This commit is contained in:
@@ -52,7 +52,7 @@
|
||||
<a class="btn btn-primary" href="<?=self::getUrl("Address", "add")?>"><i class="fas fa-plus"></i> Neue Person/Firma anlegen</a>
|
||||
</div>
|
||||
|
||||
<table class="table table-striped">
|
||||
<table class="table table-striped table-hover">
|
||||
<tr>
|
||||
<th>Typ</th>
|
||||
<th>Firma</th>
|
||||
|
||||
94
Layout/default/User/Form.php
Normal file
94
Layout/default/User/Form.php
Normal file
@@ -0,0 +1,94 @@
|
||||
<?php
|
||||
$siteTitle = "Benutzer";
|
||||
?>
|
||||
<?php include(realpath(dirname(__FILE__)."/../")."/header.php"); ?>
|
||||
|
||||
<div class="wrapper">
|
||||
<div class="container-fluid">
|
||||
|
||||
<!-- 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")?>">the-tool</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 -->
|
||||
|
||||
<!-- Main content -->
|
||||
<div class="row">
|
||||
<div class="col-lg">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<h4 class="header-title mb-3">Benutzer bearbeiten</h4>
|
||||
|
||||
<form method="post" action="<?=$this->getUrl("User","save")?>">
|
||||
<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="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) ? "selected='selected'" : ""?>><?=($address->company) ? $address->company : $address->getFullName()?></option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="admin">Admin:</label>
|
||||
<select name="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="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>
|
||||
|
||||
<div class="form-group">
|
||||
<input type="submit" name="submit" value="Speichern" class="btn btn-primary" />
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.container-fluid -->
|
||||
</div>
|
||||
<!-- /.content -->
|
||||
|
||||
<script type="text/javascript">
|
||||
$("#address_id").select2({
|
||||
allowClear: true,
|
||||
placeholder: ""
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
<?php include(realpath(dirname(__FILE__)."/../")."/footer.php"); ?><?php
|
||||
80
Layout/default/User/Index.php
Normal file
80
Layout/default/User/Index.php
Normal file
@@ -0,0 +1,80 @@
|
||||
<?php
|
||||
$siteTitle = "Benutzer";
|
||||
?>
|
||||
<?php include(realpath(dirname(__FILE__)."/../")."/header.php"); ?>
|
||||
|
||||
<div class="wrapper">
|
||||
<div class="container-fluid">
|
||||
|
||||
<!-- 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")?>">the-tool</a></li>
|
||||
<li class="breadcrumb-item">Benutzer</li>
|
||||
</ol>
|
||||
</div>
|
||||
<h4 class="page-title">Benutzer</h4>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- end page title -->
|
||||
|
||||
<!-- Main content -->
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<div class="float-left">
|
||||
<h4 class="header-title mb-4">Benutzerliste</h4>
|
||||
</div>
|
||||
<div class="float-right">
|
||||
<a class="btn btn-primary" href="<?=self::getUrl("User", "add")?>"><i class="fas fa-plus"></i> Neuen Benutzer anlegen</a>
|
||||
</div>
|
||||
<table class="table table-striped table-hover">
|
||||
<tr>
|
||||
<th>Username</th>
|
||||
<th>Name</th>
|
||||
<th>Firma / Person</th>
|
||||
<th>Email</th>
|
||||
<th>Admin</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
<?php foreach($users as $user): ?>
|
||||
<tr>
|
||||
<td><?=$user->username?></td>
|
||||
<td><?=$user->name?></td>
|
||||
<td><?=($user->address->company) ? $user->address->company : $user->address->getFullName()?></td>
|
||||
<td><?=$user->email?></td>
|
||||
<td><?=($user->isAdmin()) ? "Ja" : "Nein"?></td>
|
||||
<td style="text-align: left; letter-spacing: 4px; font-size: 1.1em;">
|
||||
<a href="<?=self::getUrl("User","edit", ['id' => $user->id])?>" title="User bearbeiten"><i class="far fa-edit"></i></a>
|
||||
<?php if($user->id > 1): ?>
|
||||
<a href="<?=self::getUrl("User","delete", ['id' => $user->id])?>" class="text-danger" title="User löschen" onclick="if(!confirm('Benutzer wirklich löschen?')) return false;"><i class="far fa-trash-alt"></i></a>
|
||||
<?php endif; ?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
<!-- /.container-fluid -->
|
||||
</div>
|
||||
<!-- /.content -->
|
||||
|
||||
<!-- Control Sidebar -->
|
||||
<aside class="control-sidebar control-sidebar-dark">
|
||||
<!-- Control sidebar content goes here -->
|
||||
</aside>
|
||||
<!-- /.control-sidebar -->
|
||||
|
||||
|
||||
<?php include(realpath(dirname(__FILE__)."/../")."/footer.php"); ?>
|
||||
@@ -3,7 +3,7 @@
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
© 2021 <a href="https://www.xinon.at">Xinon GmbH</a> - Made by fronk - Simulor Theme by Coderthemes
|
||||
the tool © 2021 <a href="https://www.xinon.at">Xinon GmbH</a> - Made by fronk - Simulor Theme by Coderthemes
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<div class="text-md-right footer-links d-none d-sm-block">
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>tool, the</title>
|
||||
<title>the tool</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta content="A fully featured admin theme which can be used to build CRM, CMS, etc." name="description" />
|
||||
<meta content="Coderthemes" name="author" />
|
||||
|
||||
@@ -21,6 +21,9 @@
|
||||
<li><a href="<?=self::getUrl("Address", "Index" , ["filter" => ["addresstype" => ["supplier"]]])?>">Lieferanten</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<a href="<?=self::getUrl("User")?>">Benutzer</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
|
||||
@@ -41,9 +41,6 @@ class AddressController extends mfBaseController {
|
||||
|
||||
protected function saveAction() {
|
||||
$r = $this->request;
|
||||
|
||||
//var_dump($r->get());exit;
|
||||
|
||||
$id = $r->id;
|
||||
|
||||
if(is_numeric($id) && $id > 0) {
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
class User extends mfBaseModel {
|
||||
public $permissions;
|
||||
public $flags;
|
||||
public $address;
|
||||
|
||||
public function init() {
|
||||
$this->table = "Worker";
|
||||
@@ -41,6 +42,8 @@ class User extends mfBaseModel {
|
||||
$wp->loadByUserId($this->id);
|
||||
$this->permissions = $wp;
|
||||
$this->loadFlags();
|
||||
|
||||
$this->address = new Address($this->address_id);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -29,12 +29,11 @@ class UserController extends mfBaseController {
|
||||
}
|
||||
$this->layout()->setTemplate('User/Index');
|
||||
|
||||
$users=$this->getUsers();
|
||||
$users = UserModel::getAll();
|
||||
$this->layout()->set('users',$users);
|
||||
|
||||
$pc = new ProviderController();
|
||||
$providers = $pc->getProvider();
|
||||
$this->layout()->set("providers", $providers);
|
||||
$addresses = AddressModel::getAll();
|
||||
$this->layout()->set("addresses", $addresses);
|
||||
}
|
||||
|
||||
protected function addAction($request) {
|
||||
@@ -43,9 +42,8 @@ class UserController extends mfBaseController {
|
||||
}
|
||||
$this->layout()->setTemplate('User/Form');
|
||||
|
||||
$pc = new ProviderController();
|
||||
$providers = $pc->getProvider();
|
||||
$this->layout()->set("providers", $providers);
|
||||
$addresses = AddressModel::getAll();
|
||||
$this->layout()->set("addresses", $addresses);
|
||||
}
|
||||
|
||||
protected function editAction($request) {
|
||||
@@ -62,9 +60,8 @@ class UserController extends mfBaseController {
|
||||
$user=new User($id);
|
||||
$this->layout()->set('user',$user);
|
||||
|
||||
$pc = new ProviderController();
|
||||
$providers = $pc->getProvider();
|
||||
$this->layout()->set("providers", $providers);
|
||||
$addresses = AddressModel::getAll();
|
||||
$this->layout()->set("addresses", $addresses);
|
||||
}
|
||||
|
||||
protected function profileAction($request) {
|
||||
@@ -72,62 +69,61 @@ class UserController extends mfBaseController {
|
||||
}
|
||||
|
||||
|
||||
protected function saveAction($request) {
|
||||
//$this->log->debug("UserController::save");
|
||||
$id = $request['id'];
|
||||
protected function saveAction() {
|
||||
$r = $this->request;
|
||||
$id = $r->id;
|
||||
if(!$this->isAdmin()) {
|
||||
$id = $this->me->id;
|
||||
$request['username'] = $this->me->username;
|
||||
unset($request['provider_id']);
|
||||
unset($r->address_id);
|
||||
}
|
||||
|
||||
if(!$id && !$request['username']) {
|
||||
if(!$id && !$r->username) {
|
||||
self::redirect('User');
|
||||
}
|
||||
|
||||
$user = new User($id);
|
||||
if($request['username']) {
|
||||
$user->username = $request['username'];
|
||||
if($r->username) {
|
||||
$user->username = $r->username;
|
||||
}
|
||||
if($request['name']) {
|
||||
$user->name = $request['name'];
|
||||
if($r->name) {
|
||||
$user->name = $r->name;
|
||||
}
|
||||
if($request['email']) {
|
||||
$user->email = $request['email'];
|
||||
if($r->email) {
|
||||
$user->email = $r->email;
|
||||
}
|
||||
if($request['provider_id']) {
|
||||
if($r->address_id) {
|
||||
if($this->isAdmin()) {
|
||||
$user->provider_id = intval($request['provider_id']);
|
||||
$user->address_id = intval($r->address_id);
|
||||
//var_dump($user);exit;
|
||||
$provider = new Provider($user->provider_id);
|
||||
if(!$provider->id) {
|
||||
throw new Exception("Unbekannter Provider");
|
||||
$address = new Address($user->address_id);
|
||||
if(!$address->id) {
|
||||
throw new Exception("Unbekannte Firma/Person");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if($request['password']) {
|
||||
if($request['password'] === $request['password2']) {
|
||||
$user->password=mfLoginController::generatePasswordHash($request['password']);
|
||||
if($r->password) {
|
||||
if($r->password === $r->password2) {
|
||||
$user->password=mfLoginController::generatePasswordHash($r->password);
|
||||
} else {
|
||||
$this->layout()->setFlash("Passwörter stimmen nicht überein!", "error");
|
||||
}
|
||||
}
|
||||
|
||||
$user->edit_by = $this->me->id;
|
||||
if(!$id) {
|
||||
$user->create_by = $this->me->id;
|
||||
}
|
||||
|
||||
$id = $user->save();
|
||||
|
||||
if($this->isAdmin()) {
|
||||
if($request['admin'] == "true" || $user->id == 1) {
|
||||
if($r->admin == "true" || $user->id == 1) {
|
||||
$user->permissions->admin = "true";
|
||||
} else {
|
||||
$user->permissions->admin = "false";
|
||||
}
|
||||
if($request['ticketadmin'] == "true") {
|
||||
$user->permissions->ticketadmin = "true";
|
||||
} else {
|
||||
$user->permissions->ticketadmin = "false";
|
||||
}
|
||||
|
||||
$user->permissions->save();
|
||||
}
|
||||
|
||||
|
||||
99
application/User/UserModel.php
Normal file
99
application/User/UserModel.php
Normal file
@@ -0,0 +1,99 @@
|
||||
<?php
|
||||
|
||||
class UserModel {
|
||||
public $address_id = null;
|
||||
public $username = null;
|
||||
public $password = null;
|
||||
public $name = null;
|
||||
public $email = null;
|
||||
public $ip = null;
|
||||
public $sessionid = null;
|
||||
|
||||
|
||||
public $create_by = null;
|
||||
public $edit_by = null;
|
||||
public $create = null;
|
||||
public $edit = null;
|
||||
|
||||
public static function find($data) {
|
||||
|
||||
}
|
||||
|
||||
public static function create(Array $data) {
|
||||
$model = new User();
|
||||
|
||||
foreach($data as $field => $value) {
|
||||
if(property_exists(get_called_class(), $field)) {
|
||||
$model->$field = $value;
|
||||
}
|
||||
}
|
||||
|
||||
return $model;
|
||||
}
|
||||
|
||||
public static function getOne($id) {
|
||||
if(!is_numeric($id) || !$id) {
|
||||
throw new Exception("Invalid number", 400);
|
||||
}
|
||||
$item = [];
|
||||
$db = FronkDB::singleton();
|
||||
|
||||
$res = $db->select("Worker", "*", "id=$id LIMIT 1");
|
||||
if($db->num_rows($res)) {
|
||||
$data = $db->fetch_object($res);
|
||||
$item = new User($data);
|
||||
}
|
||||
return $item;
|
||||
}
|
||||
|
||||
public static function getAll() {
|
||||
$items = [];
|
||||
|
||||
$db = FronkDB::singleton();
|
||||
|
||||
$res = $db->select("Worker", "*");
|
||||
if($db->num_rows($res)) {
|
||||
while($data = $db->fetch_object($res)) {
|
||||
$items[] = new User($data);
|
||||
}
|
||||
}
|
||||
return $items;
|
||||
|
||||
}
|
||||
|
||||
public static function search($filter) {
|
||||
$items = [];
|
||||
$db = FronkDB::singleton();
|
||||
|
||||
$where = self::getSqlFilter($filter);
|
||||
$sql = "SELECT Worker.* FROM Worker, WorkerPermission
|
||||
WHERE WorkerPermission.worker_id= Worker.id
|
||||
AND $where
|
||||
GROUP BY WorkerPermission.worker_id
|
||||
ORDER BY Worker.id";
|
||||
$res = $db->query($sql);
|
||||
if($db->num_rows($res)) {
|
||||
while($data = $db->fetch_object($res)) {
|
||||
$items[] = new User($data);
|
||||
}
|
||||
}
|
||||
return $items;
|
||||
}
|
||||
|
||||
private function getSqlFilter($filter) {
|
||||
$where = "1=1 ";
|
||||
|
||||
//var_dump($filter);exit;
|
||||
if(array_key_exists("address_id", $filter)) {
|
||||
$addressid = $filter['address_id'];
|
||||
if($addressid === null || $addressid == "null") {
|
||||
$where .= " AND address_id IS NULL";
|
||||
} elseif(is_numeric($addressid)) {
|
||||
$where .= " AND parent_id=$addressid";
|
||||
}
|
||||
}
|
||||
//var_dump($filter, $where);exit;
|
||||
return $where;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -19,8 +19,4 @@ class Layout extends mfLayout {
|
||||
public function dotToComma($num) {
|
||||
return str_replace(".", ",", $num);
|
||||
}
|
||||
|
||||
public function arrayToUrl(Array $array) {
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user