/** * Performs the action; returns true on success, false on error. * * @param $p_context - the current context object * @return bool */ public function takeAction(CampContext &$p_context) { $User = new User($p_context->user->identifier); if ($this->m_properties['action'] == 'on') { $User->setPermission('plugin_interview_notify', true); $p_context->user = new MetaUser($p_context->user->identifier); // reload MetaUser object because it was modified $this->m_error = ACTION_OK; return true; } elseif ($this->m_properties['action'] == 'off') { $User->setPermission('plugin_interview_notify', false); $p_context->user = new MetaUser($p_context->user->identifier); // reload MetaUser object because it was modified $this->m_error = ACTION_OK; return true; } return false; }
// save user customized rights $editUser->updatePermissions($permissions); $logtext = getGS('Permissions changed for user "$1"',$editUser->getUserName()); Log::Message($logtext, $g_user->getUserId(), 55); } if ($editUser->isAdmin() && !$customizeRights && $canManage) { // save user rights based on existing user type $userTypeId = Input::Get('UserType', 'int', 0); if ($userTypeId != 0) { $editUser->setUserType($userTypeId); } } // unsubscribe $unsubscribe = Input::Get('unsubscribe', 'bool', false); if ($unsubscribe && ($canManage || $editUser->getUserId() == $g_user->getUserId())) { $editUser->setPermission('MailNotify', false); } camp_html_add_msg(getGS("User '$1' information was changed successfully.", $editUser->getUserName()), "ok"); $editUser->fetch(); if ($editUser->getUserName() == $g_user->getUserName() && !$editUser->hasPermission('ManageUsers')) { camp_html_goto_page("/$ADMIN/"); } camp_html_goto_page("/$ADMIN/users/edit.php?$typeParam&User=".$editUser->getUserId()); ?>
public function store($p_user_id = null) { require_once 'HTML/QuickForm.php'; $mask = self::getFormMask($p_owner, $p_admin); $form = new html_QuickForm('interview', 'post', $p_target, null, null, true); FormProcessor::parseArr2Form($form, $mask); if ($form->validate() && SecurityToken::isValid()) { $data = $form->getSubmitValues(); $image_id = $this->getProperty('fk_image_id'); if ($data['f_image_delete'] && $image_id) { $Image = new Image($this->getProperty('fk_image_id')); $Image->delete(); $image_id = null; } else { $file = $form->getElementValue('f_image'); if (strlen($file['name'])) { $attributes = array( 'Description' => strlen($data['f_image_description']) ? $data['f_image_description'] : $file['name'], ); $Image = Image::OnImageUpload($file, $attributes, $p_user_id, !empty($image_id) ? $image_id : null); if (is_a($Image, 'Image')) { $image_id = $Image->getProperty('Id'); } else { return false; } } } // may have to create new user account for guest foreach (array('guest') as $type) { if ($data['f_'.$type.'_user_id'] == '__new__') { global $ADMIN_DIR; require_once($GLOBALS['g_campsiteDir']. "/$ADMIN_DIR/users/users_common.php"); $passwd = substr(sha1(rand()), 0, 10); $fieldValues = array( 'UName' => $data['f_'.$type.'_new_user_login'], 'Name' => $data['f_'.$type.'_new_user_login'].' (interview guest)', 'EMail' => $data['f_'.$type.'_new_user_email'], 'passwd' => $passwd, 'Reader' => 'N' ); // create user $editUser = new User(); $phorumUser = new Phorum_user(); if ($phorumUser->UserNameExists($fieldValues['UName']) || User::UserNameExists($fieldValues['UName'])) { return false; } if (!$editUser->create($fieldValues)) { return false; } $editUser->setUserType('Staff'); $editUser->setPermission('plugin_interview_'.$type, true); $phorumUser->create($fieldValues['UName'], $passwd, $fieldValues['EMail'], $editUser->getUserId()); $userid[$type] = $editUser->getUserId(); } else { $userid[$type] = $data['f_'.$type.'_user_id']; } } if ($this->exists()) { // edit existing interview $this->setProperty('fk_language_id', $data['f_language_id']); $this->setProperty('title', $data['f_title']); $this->setProperty('fk_image_id', $image_id); $this->setProperty('description_short', $data['f_description_short']); $this->setProperty('description', $data['f_description']); $this->setProperty('interview_begin', $data['f_interview_begin']); $this->setProperty('interview_end', $data['f_interview_end']); $this->setProperty('questions_begin', $data['f_questions_begin']); $this->setProperty('questions_end', $data['f_questions_end']); $this->setProperty('questions_limit', $data['f_questions_limit']); $this->setProperty('status', $data['f_status']); $this->setProperty('fk_moderator_user_id', $data['f_moderator_user_id']); $this->setProperty('fk_guest_user_id', $userid['guest']); if (strlen($passwd)) { $this->setProperty('invitation_password', $passwd); } return true; } else { // create new interview $created = $this->create( $data['f_language_id'], $data['f_moderator_user_id'], $userid['guest'], $data['f_title'], $image_id, $data['f_description_short'], $data['f_description'], $data['f_interview_begin'], $data['f_interview_end'], $data['f_questions_begin'], $data['f_questions_end'], $data['f_questions_limit'], $data['f_status'] ); if (strlen($passwd)) { $this->setProperty('invitation_password', $passwd); } return $created; } } return false; }