Added User
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user