/** * Save role * * @param \Pop\Form\Form $form * @return void */ public function save(\Pop\Form\Form $form) { $fields = $form->getFields(); $role = new Table\UserRoles(array('type_id' => $fields['type_id'], 'name' => $fields['name'])); $role->save(); $this->data['id'] = $role->id; // Add new permissions if any $perms = array(); foreach ($_POST as $key => $value) { if (strpos($key, 'resource_new_') !== false) { $id = substr($key, strrpos($key, '_') + 1); if ($value != '0') { $perm = $_POST['permission_new_' . $id] != '0' ? $_POST['permission_new_' . $id] : ''; if ($perm != '') { $perm .= $_POST['type_new_' . $id] != '0' ? '_' . $_POST['type_new_' . $id] : ''; } $perms[] = array('resource' => $value, 'permission' => $perm, 'allow' => (int) $_POST['allow_new_' . $id]); } } } $role->permissions = serialize($perms); $role->update(); FieldValue::save($fields, $role->id); }