public function update() { if (FabriqModules::module('roles')->requiresPermission('update menus', 'sitemenus')) { $menu = FabriqModules::new_model('sitemenus', 'Menus'); $menu->find(PathMap::arg(2)); if ($menu->count() > 0 && $menu->menuName != '') { Fabriq::title('Update menu'); FabriqModules::set_var('sitemenus', 'moduleName', $this->name); if (isset($_POST['submit'])) { $menu->menuName = trim($_POST[$this->name . '_menuName']); $menu->description = trim($_POST[$this->name . '_description']); if (strlen($menu->menuName) == 0) { Messaging::message('You must provide a menu name'); } if (strlen($menu->description) == 0) { $menu->description = NULL; } if (!Messaging::has_messages()) { $menu->update(); Messaging::message("Menu \"{$menu->menuName}\" has been updated", 'success'); FabriqModules::trigger_event('sitemenus', 'create', 'menu created'); } FabriqModules::set_var('sitemenus', 'submitted', true); } } else { Fabriq::title('Menu not found'); } FabriqModules::set_var('sitemenus', 'menu', $menu); } }
public function destroy() { if (FabriqModules::module('roles')->requiresPermission('delete blog posts', 'blog')) { $blog = FabriqModules::new_model('blog', 'Blogs'); $blog->find(PathMap::arg(2)); if ($blog->title != '') { Fabriq::title('Delete entry?'); FabriqModules::set_var('blog', 'blog', $blog); if (isset($_POST['submit'])) { $blog->destroy(); FabriqModules::trigger_event($this->name, 'destroy', 'blog entry deleted', $blog); FabriqModules::set_var('blog', 'submitted', true); } } else { FabriqModules::set_var('blog', 'notFound', true); Fabriq::title('Blog entry not found'); } } }
public function update() { Fabriq::render('none'); if (FabriqModules::module('roles')->requiresPermission('administer users', $this->name)) { $user = FabriqModules::new_model('users', 'Users'); $user->find(PathMap::arg(2)); $u = null; $errors = array(); $roles = null; if ($user->display != '') { $ur = FabriqModules::new_model('users', 'UserRoles'); $ur->getRoles($user->id); $uroles = array(); for ($i = 0; $i < $ur->count(); $i++) { $uroles[] = $ur[$i]->role; } $r = FabriqModules::new_model('roles', 'Roles'); $r->getAll(); $roles = array(); for ($i = 0; $i < $r->count(); $i++) { if ($r[$i]->role != 'unauthenticated' && $r[$i]->role != 'authenticated') { $roles[] = $r[$i]; } } if (isset($_POST['submit'])) { $user->display = $_POST['display']; $user->email = $_POST['email']; $emailPattern = '/^([a-z0-9])(([-a-z0-9._])*([a-z0-9]))*\\@([a-z0-9])(([a-z0-9-])*([a-z0-9]))+' . '(\\.([a-z0-9])([-a-z0-9_-])?([a-z0-9])+)+$/i'; $displayPattern = '/([A-z0-9]){6,24}/'; if (!preg_match($emailPattern, $_POST['email'])) { $errors[] = "email"; } if (!preg_match($displayPattern, $_POST['display'])) { $errors[] = "display"; } if (count($errors) == 0) { // update roles $toAdd = array(); $toRemove = array(); for ($i = 0; $i < count($roles); $i++) { if ($_POST['role' . $roles[$i]->id] == 1) { if (!array_key_exists($roles[$i]->id, $ur->roles)) { $toAdd[] = $roles[$i]->id; } } else { if (array_key_exists($roles[$i]->id, $ur->roles)) { $toRemove[] = $roles[$i]->id; } } } // add new role assignments for ($i = 0; $i < count($toAdd); $i++) { $ur = FabriqModules::new_model('users', 'UserRoles'); $ur->user = $user->id; $ur->role = $toAdd[$i]; $ur->create(); } // remove unneeded role assignments for ($i = 0; $i < count($toRemove); $i++) { $ur = FabriqModules::new_model('users', 'UserRoles'); $ur->getRole($user->id, $toRemove[$i]); $ur->destroy(); } // refresh user roles $uroles = FabriqModules::new_model('users', 'UserRoles'); $uroles->getRoles($user->id); $user->update(); $msg = "User updated"; $success = true; } else { $msg = "User could not be updated because of errors"; $success = false; } $u = new stdClass(); $u->display = $_POST['display']; $u->email = $_POST['email']; $user->encpwd = null; FabriqModules::trigger_event('users', 'update', 'User updated', $user); } else { $msg = "User found"; $u = new stdClass(); $u->display = $user->display; $u->email = $user->email; $success = true; } $u->id = $user->id; $u->roles = $uroles; } else { $success = false; $msg = "User could not be found"; } $notLoggedIn = false; } else { $success = false; $msg = 'User not logged in'; $errors = null; $u = null; $notLoggedIn = true; } header('Content-type:application/json'); echo json_encode(array('success' => $success, 'msg' => $msg, 'user' => $u, 'errors' => $error, 'notLoggedIn' => $notLoggedIn, 'roles' => $roles)); }