controllers/aumanager.php
author viric@mandarina
Thu, 25 Dec 2008 11:25:58 +0000
changeset 0 3773f4677c40
permissions -rw-r--r--
Opiniarbo - versikontrolita.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
     1
<?php
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
     2
/*
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
     3
 * Manage users, users group and role
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
     4
 */
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
     5
class Aumanager extends Controller
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
     6
{
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
     7
	private $data=NULL;
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
     8
	
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
     9
	function Aumanager()
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    10
	{
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    11
		parent::Controller();
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    12
        $this->load->library('aulib');
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    13
    	if ( !$this->aulib->isRole('admin') ) $this->aulib->denyAccess(); 
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    14
		$this->config->load('auconfig');
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    15
		if ($this->config->item('au_language') != '') 
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    16
			$curLang = $this->config->item('au_language');
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    17
		else
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    18
			$curLang = $this->config->item('language');    
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    19
		$this->lang->load('au', $curLang); 
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    20
		$this->load->helper(array('form', 'url'));
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    21
		$this->load->library('validation');
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    22
		$this->load->library('parser');
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    23
		$this->load->model('aumodel');
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    24
	}
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    25
	
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    26
	/*
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    27
	 * Start point for manager
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    28
	 */
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    29
	function index()
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    30
	{
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    31
		$this->load->library('table');
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    32
		$tmpl = array ( 'table_open'  => '<table width="96%" border="1" cellpadding="2" cellspacing="1"' );
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    33
		$this->table->set_template($tmpl);
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    34
		
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    35
		$view_table = $this->uri->segment(3, 'user'); 
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    36
		switch($view_table)
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    37
		{
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    38
			case 'user': 
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    39
						$field_caption = explode("; ", $this->lang->line('field_name_user'));
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    40
						$table_caption = $this->lang->line('table_name_user');
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    41
						$this->data['add_new'] = '';
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    42
						$sql_str = sprintf("SELECT
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    43
											CONCAT('<a href=\"/aumanager/edit/user/',auser.id,'\">',auser.name,'</a>') as _edit, 
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    44
											email, 
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    45
											created, 
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    46
											last_visit, 
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    47
											aurole.name as arole, 
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    48
											augroup.name as agroup,
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    49
								 			CONCAT('<a href=\"#\" 
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    50
								 						onClick=\"if(confirm(&quot;%s&quot;)) location=\'/aumanager/delete/user/',
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    51
								 						auser.id,
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    52
								 						'\';return false;\">%s</a>') as _delete
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    53
								 			FROM auser, aurole, augroup
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    54
								 	WHERE (auser.role_id = aurole.id) and (auser.group_id = augroup.id)", 
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    55
									$this->lang->line('request_confirm_delete'),
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    56
									$this->lang->line('field_delete'));
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    57
						break;
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    58
		  case 'group': $field_caption = explode("; ", $this->lang->line('field_name_group'));
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    59
		  				$table_caption = $this->lang->line('table_name_group');
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    60
		  				$this->data['add_new'] = sprintf("<a href='/aumanager/append/group'>%s</a>", 
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    61
														$this->lang->line('add_new_link'));
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    62
		  				$sql_str = sprintf("select
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    63
		  							CONCAT('<a href=\"/aumanager/edit/group/',augroup.id,'\">',augroup.name,'</a>') as _edit,
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    64
								 	CONCAT('<a href=\"#\" 
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    65
								 			onClick=\"if(confirm(&quot;%s&quot;)) location=\'/aumanager/delete/group/',
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    66
								 			augroup.id,
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    67
								 			'\';return false;\">%s</a>') as _delete
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    68
		  							from augroup", 
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    69
		  							$this->lang->line('request_confirm_delete'),
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    70
									$this->lang->line('field_delete'));
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    71
						break;	
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    72
		  case 'role': $field_caption = explode("; ", $this->lang->line('field_name_role'));
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    73
		  				$table_caption = $this->lang->line('table_name_role');
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    74
		  				$this->data['add_new'] = sprintf("<a href='/aumanager/append/role'>%s</a>", 
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    75
														$this->lang->line('add_new_link'));
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    76
		  				$sql_str = sprintf("select
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    77
		  							CONCAT('<a href=\"/aumanager/edit/role/',aurole.id,'\">',aurole.name,'</a>') as _edit,
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    78
								 	CONCAT('<a href=\"#\" 
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    79
								 			onClick=\"if(confirm(&quot;%s&quot;)) location=\'/aumanager/delete/role/',
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    80
								 			aurole.id,
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    81
								 			'\';return false;\">%s</a>') as _delete
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    82
		  							from aurole", 
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    83
		  							$this->lang->line('request_confirm_delete'),
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    84
									$this->lang->line('field_delete'));
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    85
						break;
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    86
			default: redirect('aumanager'); break;
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    87
		}
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    88
		$this->table->set_caption("<h2>".$table_caption.'</h2>');
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    89
		$this->table->set_heading($field_caption);
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    90
		$this->table->set_empty("---");
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    91
		$sql = $this->db->query($sql_str);
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    92
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    93
		$this->data['table'] = $this->table->generate($sql);
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    94
		$this->data['table_name_user'] = $this->lang->line('table_name_user');
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    95
		$this->data['table_name_group'] = $this->lang->line('table_name_group');
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    96
		$this->data['table_name_role'] = $this->lang->line('table_name_role');
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    97
		$this->_show_view('au/manager'); 
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    98
	}
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
    99
	
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   100
	/*
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   101
	 * Edit page
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   102
	 */
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   103
	function edit()
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   104
	{
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   105
		$mode = $this->uri->segment(3, 'user');
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   106
		switch($mode)
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   107
		{
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   108
			case 'user' : $this->showUserEdit(); break;
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   109
			case 'group': $this->showRefEdit(); break;
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   110
			case 'role' : $this->showRefEdit(); break;
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   111
			default: redirect('aumanager'); break;
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   112
		}
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   113
	}
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   114
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   115
	/*
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   116
	 * Delete page
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   117
	 */
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   118
	function delete()
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   119
	{
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   120
		if(FALSE === $this->uri->segment(3)) return;
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   121
		$mode = $this->uri->segment(3);
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   122
		if(FALSE === $this->uri->segment(4)) return;
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   123
		$id = $this->uri->segment(4);
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   124
		switch($mode)
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   125
		{
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   126
			case 'user' : 
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   127
				$this->aumodel->delete('auser', $id); 
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   128
				redirect('aumanager/index/user'); 
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   129
				break;
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   130
			case 'group':
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   131
				$this->aumodel->updateUsersRef('group', $id, 1); 
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   132
				$this->aumodel->delete('augroup', $id);
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   133
				redirect('aumanager/index/group');
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   134
				break;
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   135
			case 'role' :
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   136
				$this->aumodel->updateUsersRef('role', $id, 1); 
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   137
				$this->aumodel->delete('aurole', $id); 
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   138
				redirect('aumanager/index/role'); 
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   139
				break;
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   140
			default: redirect('aumanager'); break;
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   141
		}
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   142
	}
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   143
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   144
	/*
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   145
	 * Add new 
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   146
	 */
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   147
	function append()
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   148
	{
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   149
		if(FALSE === $this->uri->segment(3)) return;
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   150
		$mode = $this->uri->segment(3);
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   151
		switch($mode)
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   152
		{
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   153
			case 'group': $this->aumodel->append('augroup');redirect('aumanager/index/group');break;
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   154
			case 'role' : $this->aumodel->append('aurole'); redirect('aumanager/index/role'); break;
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   155
			default: redirect('aumanager'); break;
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   156
		}
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   157
	}
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   158
/*
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   159
 *	Service function
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   160
 */
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   161
	function showRefEdit()
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   162
	{
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   163
		$ref = $this->uri->segment(3);
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   164
		$id = $this->uri->segment(4);
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   165
		$rules['name'] = "trim|required|min_length[4]|xss_clean";
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   166
		$this->validation->set_rules($rules);
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   167
		if($ref == 'group')
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   168
			$fields['name']	= '"'.$this->lang->line('form_group').'"';
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   169
		else
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   170
			$fields['name']	= '"'.$this->lang->line('form_role').'"';
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   171
		$this->validation->set_fields($fields);
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   172
		
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   173
		if ($this->validation->run() == FALSE)
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   174
		{
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   175
			$name = $this->aumodel->getRefName('au'.$ref,$id);
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   176
			$this->data['name_label'] = $this->lang->line('form_'.$ref);
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   177
			$this->data['form_title'] = $this->lang->line('table_name_'.$ref);
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   178
			$this->data['name_value'] = ($this->input->post('name_value') ? $this->validation->name : $name);
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   179
			$this->data['name_error'] = $this->validation->name_error;
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   180
			$this->data['submit_label'] = $this->lang->line('form_ok');
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   181
			$this->data['id'] = $ref.'/'.$id;
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   182
			$this->_show_view('au/group_role_edit.php');
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   183
		}
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   184
		else
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   185
		{
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   186
		 	$this->aumodel->setRefName('au'.$ref, $id, $this->input->post('name'));
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   187
		 	redirect('aumanager/index/'.$ref);
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   188
		}
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   189
	}
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   190
	function showUserEdit()
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   191
	{
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   192
		$id = $this->uri->segment(4);
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   193
		$rules['username'] = "trim|required|min_length[4]|max_length[12]|xss_clean";
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   194
		$rules['email'] = "trim|required|valid_email";
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   195
		$this->validation->set_rules($rules);
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   196
		
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   197
		$fields['username']	= '"'.$this->lang->line('form_username').'"';
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   198
		$fields['email']	= '"'.$this->lang->line('form_email').'"';
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   199
		$this->validation->set_fields($fields);
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   200
		
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   201
		if ($this->validation->run() == FALSE)
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   202
		{
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   203
			$user = $this->aumodel->userFullInfo($id);
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   204
			$this->data['form_title'] = $this->lang->line('table_name_user');
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   205
			$this->data['username_label'] = $this->lang->line('form_username');
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   206
			$this->data['username_value'] = ($this->input->post('username_value') ? $this->validation->username : $user['name']);
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   207
			$this->data['username_error'] = $this->validation->username_error;
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   208
			$this->data['email_label'] = $this->lang->line('form_email');
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   209
			$this->data['email_value'] = ($this->input->post('email_value') ? $this->validation->email : $user['email']);
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   210
			$this->data['email_error'] = $this->validation->email_error;
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   211
			$this->data['group_label'] = $this->lang->line('form_group');
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   212
			$group_list = $this->aumodel->getRefList('augroup'); 
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   213
			$this->data['group_value'] = form_dropdown('group_value', $group_list, ($this->input->post('group_value') ? $this->input->post('group_value') : $user['group_id']));
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   214
			$this->data['role_label'] = $this->lang->line('form_role');
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   215
			$role_list = $this->aumodel->getRefList('aurole');
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   216
			$this->data['role_value'] = form_dropdown('role_value', $role_list, ($this->input->post('role_value') ? $this->input->post('role_value') : $user['role_id']));
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   217
			
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   218
			$this->data['submit_label'] = $this->lang->line('form_ok');
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   219
			$this->data['id'] = $id;
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   220
			$this->_show_view('au/user_edit.php');
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   221
		}			
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   222
 		else
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   223
		 {
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   224
		 	$newdata['name'] = $this->input->post('username');
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   225
		 	$newdata['email'] = $this->input->post('email');
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   226
		 	$newdata['group_id'] = $this->input->post('group_value');
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   227
		 	$newdata['role_id'] = $this->input->post('role_value');
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   228
		 	$this->aumodel->change($id, $newdata);
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   229
		 	redirect('aumanager/index/user');
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   230
		 }
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   231
	}
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   232
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   233
	/*
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   234
	 * All view's call from this point
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   235
	 * You may customize it as you need
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   236
	 */
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   237
	function _show_view($view_name)
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   238
	{
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   239
		$this->parser->parse($view_name, $this->data);
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   240
	}
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   241
}
3773f4677c40 Opiniarbo - versikontrolita.
viric@mandarina
parents:
diff changeset
   242
?>