Changeset 1652 for branches/website/application/controllers/admin.php
- Timestamp:
- 12/30/2007 03:23:58 PM (12 months ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
branches/website/application/controllers/admin.php
r1651 r1652 102 102 $this->template->title = 'Manage Users'; 103 103 104 $users = array();105 foreach (ORM::factory('user')->find(ALL) as $user)106 {107 // Create a list of all users108 $users[$user->username] = $user->username;109 }110 111 104 $this->template->content = View::factory('admin/edit_list') 112 ->set('new', 'Add a new user')113 ->set('items', $users)114 105 ->set('edit_action', 'admin/manage_users') 115 ->set('delete_action', 'admin/delete_user'); 106 ->set('delete_action', 'admin/delete_user') 107 ->bind('items', $items); 108 109 if ($this->user->has_role('admin')) 110 { 111 $this->template->content->set('new', 'Add a new user'); 112 113 foreach (ORM::factory('user')->find(ALL) as $user) 114 { 115 // Create a list of all users 116 $items[$user->username] = $user->username; 117 } 118 } 119 else 120 { 121 // Show only this user 122 $items[$this->user->username] = $this->user->username; 123 } 116 124 } 117 125 else … … 145 153 } 146 154 155 if ( ! $this->user->has_role('admin')) 156 { 157 // Only admins are allowed to change user roles 158 $form->roles->disabled(TRUE); 159 } 160 147 161 if ($form->validate() AND $data = $form->as_array()) 148 162 { … … 165 179 $user->save() and $this->session->set_flash('message', '<p><strong>Success!</strong> User saved successfully.</p>'); 166 180 167 foreach (array_diff($user->roles, $set_roles) as $role) 168 { 169 // Remove roles that were unchecked 170 $user->remove_role($role); 171 } 172 173 foreach (array_diff($set_roles, $user->roles) as $role) 174 { 175 // Add new roles 176 $user->add_role($role); 181 // Only admins are allowed to change user roles 182 if ($this->user->has_role('admin')) 183 { 184 foreach (array_diff($user->roles, $set_roles) as $role) 185 { 186 // Remove roles that were unchecked 187 $user->remove_role($role); 188 } 189 190 foreach (array_diff($set_roles, $user->roles) as $role) 191 { 192 // Add new roles 193 $user->add_role($role); 194 } 177 195 } 178 196 … … 193 211 $user = new User_Model($id); 194 212 195 if ( $confirm === 'no' OR $user->id == 0)213 if (! $this->user->has_role('admin') OR $confirm === 'no' OR $user->id == 0) 196 214 { 197 215 // Go back the to the management page
