aboutsummaryrefslogtreecommitdiff
path: root/h-source/admin/Application/Controllers/AdminregusersController.php
blob: b4ed6ed40bdba5ebd153dd782008b9428820473c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
<?php

// h-admin, a web software to build a community of people that want to share their hardware information.
// Copyright (C) 2010  Antonio Gallo (h-admin-copyright.txt)
//
// This file is part of h-admin
//
// h-admin is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// h-admin is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with h-admin.  If not, see <http://www.gnu.org/licenses/>.

if (!defined('EG')) die('Direct access not allowed!');

class AdminregusersController extends Controller {

	function __construct($model, $controller, $queryString) {
		parent::__construct($model, $controller, $queryString);

		$this->load('header_back');
		$this->load('footer_back','last');

		$this->session('admin');
		$this->model('UsersModel');

		$this->modelName = 'UsersModel';
		
		$this->helper('Menu','adminregusers','panel/main');
		
// 		$this->m['UsersModel']->setFields('username,e_mail,has_confirmed,deleted,creation_date','sanitizeAll');

		$this->setArgKeys(array('page:forceNat'=>1,'has_confirmed:sanitizeAll'=>'undef','deleted:sanitizeAll'=>'undef','id_group:sanitizeAll'=>'undef','token:sanitizeAll'=>'token'));
	}

	public function main()
	{
		$this->shift();

		Params::$nullQueryValue = 'undef';
		
		$this->s['admin']->check();
		
		if (!$this->s['admin']->checkCsrf($this->viewArgs['token'])) $this->redirect('panel/main/',2,'wrong token..');
		
		$this->loadScaffold('main',array('popup'=>true,'popupType'=>'inclusive','mainMenu'=>'panel','recordPerPage'=>30));
		
		$whereClauseArray = array(
			'has_confirmed'	=>	$this->viewArgs['has_confirmed'],
			'deleted'		=>	$this->viewArgs['deleted'],
			'id_group'		=>	$this->viewArgs['id_group'],
		);
		$this->scaffold->setWhereQueryClause($whereClauseArray);

		$this->scaffold->loadMain('regusers:id_user,regusers:username,regusers:e_mail,regusers:has_confirmed,regusers:deleted,smartDate|regusers:creation_date','regusers:id_user','link');
		$this->scaffold->setHead('USER ID,USERNAME,E-MAIL,HAS CONFIRMED?,DELETED?,DATE');
		$data['scaffold'] = $this->scaffold->render();
		$this->append($data);
		$this->load('main');
	}

	public function associate()
	{
		$this->shift(0);
		
		$this->s['admin']->check();
		
		if (!$this->s['admin']->checkCsrf($this->viewArgs['token'])) $this->redirect('panel/main/',2,'wrong token..');
		
		$this->m['UsersModel']->printAssError = 'yes';
		$this->m['UsersModel']->updateTable('associate,dissociate');

		$data['notice'] = $this->m['UsersModel']->notice;

		$data['menu'] = $this->h['Menu']->render('back');

		$data['action'] = $this->baseUrl.'/adminregusers/associate'.$this->viewStatus;

		$data['groups'] = $this->m['UsersModel']->getFieldArray('reggroups:id_group','reggroups:name');

		//get the name of the user whose id is $_POST['id_user']
		$users = $this->m['UsersModel']->db->select('regusers','username','id_user='.(int)$_POST['id_user']);
		$data['user'] = $users[0]['regusers']['username'];
		
		//get the groups inside which the user is inserted
		$this->m['UsersModel']->setWhereQueryClause(array('id_user'=>(int)$_POST['id_user']));
		$this->m['UsersModel']->orderBy = 'reggroups.id_group desc';
		$data['groupsUser'] = $this->m['UsersModel']->getAll('Boxes');
// 		echo $this->m['UsersModel']->getQuery();
		
		$this->set($data);
		$this->load('associate');
	}
}