Exemplo n.º 1
0
 public function createuserAction()
 {
     $t = Doctrine::getTable('User_Model_User');
     try {
         $c = $t->count();
         if ($c > 0) {
             $this->_helper->redirector->gotoSimple('success', 'install', 'install');
         } else {
             $this->view->form = new Install_Form_InstallUser();
             if ($this->request->isPost()) {
                 if ($this->view->form->isValid($_POST)) {
                     $values = $this->view->form->getValues();
                     $user = new User_Model_User();
                     $user->name = $values['username'];
                     $user->setPassword($values['password1']);
                     $user->email = $values['email'];
                     $user->save();
                     $ur = new User_Model_Role();
                     $ur->User_Model_User = $user;
                     $ur->role_name = 'admin_admin';
                     $ur->save();
                     $this->_helper->redirector->gotoSimple('success', 'install', 'install');
                 }
             }
         }
     } catch (Doctrine_Exception $e) {
         $this->_helper->redirector->gotoSimple('index', 'install', 'install');
     }
 }
Exemplo n.º 2
0
	public function registerAction() {
		$email = $this->frontController->getParam('email');
		$password = $this->frontController->getParam('password');
		$confirmPassword = $this->frontController->getParam('confirmPassword');
		
		$user = new User_Model_User();
		$user->loadPost();
		$success = $user->save();
		if (!$success) {
			$this->addError($user->errors);
		}
		
	}
Exemplo n.º 3
0
 public function testDatabase()
 {
     // first migrate database if needed
     if (Install_Api_Migration::getInstance()->getCurrentVersion() < Install_Api_Migration::getInstance()->getLatestVersion()) {
         Install_Api_Migration::getInstance()->migrate();
     }
     $api = new Devtools_Api_DoctrineTool();
     // truncate all tables or import data if there is some
     $api->importFixtures(APPLICATION_PATH . '/resource/fixtures');
     // create an admin user for unit testing
     $user = new User_Model_User();
     $user->name = 'PHPUnit';
     $user->password = '******';
     $user->email = '*****@*****.**';
     $user->description = 'PHPUnit Testuser';
     $user->activated = 'yes';
     $user->active = 'no';
     $user->show_team = 'no';
     $user->save();
     $role = new User_Model_Role();
     $role->link('User_Model_User', array($user->id));
     $role->role_name = 'admin_admin';
     $role->save();
 }
Exemplo n.º 4
0
 public function sendInvites(User_Model_User $user, $recipients, $message)
 {
     $settings = Engine_Api::_()->getApi('settings', 'core');
     // Check recipients
     if (is_string($recipients)) {
         $recipients = preg_split("/[\\s,]+/", $recipients);
     }
     if (is_array($recipients)) {
         $recipients = array_map('strtolower', array_unique(array_filter(array_map('trim', $recipients))));
     }
     if (!is_array($recipients) || empty($recipients)) {
         return 0;
     }
     // Only allow a certain number for now
     $max = $settings->getSetting('invite.max', 10);
     if (count($recipients) > $max) {
         $recipients = array_slice($recipients, 0, $max);
     }
     // Check message
     $message = trim($message);
     // Get tables
     $userTable = Engine_Api::_()->getItemTable('user');
     $inviteTable = $this;
     $inviteOnlySetting = $settings->getSetting('user.signup.inviteonly', 0);
     // Get ones that are already members
     $alreadyMembers = $userTable->fetchAll(array('email IN(?)' => $recipients));
     $alreadyMemberEmails = array();
     foreach ($alreadyMembers as $alreadyMember) {
         if (in_array(strtolower($alreadyMember->email), $recipients)) {
             $alreadyMemberEmails[] = strtolower($alreadyMember->email);
         }
     }
     // Remove the ones that are already members
     $recipients = array_diff($recipients, $alreadyMemberEmails);
     $emailsSent = 0;
     // Send them invites
     foreach ($recipients as $recipient) {
         // start inserting database entry
         // generate unique invite code and confirm it truly is unique
         do {
             $inviteCode = substr(md5(rand(0, 999) . $recipient), 10, 7);
         } while (null !== $inviteTable->fetchRow(array('code = ?' => $inviteCode)));
         $row = $inviteTable->createRow();
         $row->user_id = $user->getIdentity();
         $row->recipient = $recipient;
         $row->code = $inviteCode;
         $row->timestamp = new Zend_Db_Expr('NOW()');
         $row->message = $message;
         $row->save();
         try {
             $inviteUrl = (_ENGINE_SSL ? 'https://' : 'http://') . $_SERVER['HTTP_HOST'] . Zend_Controller_Front::getInstance()->getRouter()->assemble(array('module' => 'invite', 'controller' => 'signup'), 'default', true) . '?' . http_build_query(array('code' => $inviteCode, 'email' => $recipient));
             $message = str_replace('%invite_url%', $inviteUrl, $message);
             // Send mail
             $mailType = $inviteOnlySetting == 2 ? 'invite_code' : 'invite';
             $mailParams = array('host' => $_SERVER['HTTP_HOST'], 'email' => $recipient, 'date' => time(), 'sender_email' => $user->email, 'sender_title' => $user->getTitle(), 'sender_link' => $user->getHref(), 'sender_photo' => $user->getPhotoUrl('thumb.icon'), 'message' => $message, 'object_link' => $inviteUrl, 'code' => $inviteCode);
             Engine_Api::_()->getApi('mail', 'core')->sendSystem($recipient, $mailType, $mailParams);
         } catch (Exception $e) {
             // Silence
             if (APPLICATION_ENV == 'development') {
                 throw $e;
             }
             continue;
         }
         $emailsSent++;
     }
     $user->invites_used += $emailsSent;
     $user->save();
     // @todo Send requests to users that are already members?
     return $emailsSent;
 }