public static function addUserToBastionProject($user, &$group)
 {
     global $wgOpenStackManagerBastionProjectName;
     if (User::groupHasPermission($group, 'loginviashell')) {
         // Add the user to the bastion project if not already a
         // member.
         $username = $user->getName();
         $project = new OpenStackNovaProject($wgOpenStackManagerBastionProjectName);
         if (!in_array($username, $project->getMembers())) {
             $project->addMember($username);
         }
     }
     return true;
 }
 /**
  * @param  $formData
  * @param string $entryPoint
  * @return bool
  */
 function tryAddMemberSubmit($formData, $entryPoint = 'internal')
 {
     $project = new OpenStackNovaProject($formData['projectname']);
     $members = explode(',', $formData['member']);
     foreach ($members as $member) {
         $user = User::newFromName($member, 'usable');
         if (!$user) {
             $this->getOutput()->addWikiMsg('openstackmanager-failedtoadd', $formData['member'], $formData['projectname']);
             continue;
         }
         $success = $project->addMember($member);
         if ($success) {
             if (!$user->isAllowed('loginviashell')) {
                 # Grant user the shell right if they have
                 # successfully been added to a project
                 $user->addGroup('shell');
             }
             $this->getOutput()->addWikiMsg('openstackmanager-addedto', $formData['member'], $formData['projectname']);
             if (class_exists('EchoEvent')) {
                 EchoEvent::create(array('type' => 'osm-projectmembers-add', 'title' => Title::newFromText($formData['projectname'], NS_NOVA_RESOURCE), 'agent' => $this->getUser(), 'extra' => array('userAdded' => $user->getId())));
             }
         } else {
             $this->getOutput()->addWikiMsg('openstackmanager-failedtoadd', $formData['member'], $formData['projectname']);
         }
     }
     $out = '<br />';
     $out .= Linker::link($this->getPageTitle(), $this->msg('openstackmanager-backprojectlist')->escaped());
     $this->getOutput()->addHTML($out);
     return true;
 }
コード例 #3
0
	/**
	 * @param  $formData
	 * @param string $entryPoint
	 * @return bool
	 */
	function tryAddMemberSubmit( $formData, $entryPoint = 'internal' ) {
		$project = new OpenStackNovaProject( $formData['projectname'] );
		$members = explode( ',', $formData['member'] );
		foreach ( $members as $member ) {
			$success = $project->addMember( $member );
			if ( $success ) {
				$project->editArticle();
				$this->getOutput()->addWikiMsg( 'openstackmanager-addedto', $formData['member'], $formData['projectname'] );
			} else {
				$this->getOutput()->addWikiMsg( 'openstackmanager-failedtoadd', $formData['member'], $formData['projectname'] );
			}
		}

		$out = '<br />';
		$out .= Linker::link( $this->getTitle(), wfMsgHtml( 'openstackmanager-backprojectlist' ) );
		$this->getOutput()->addHTML( $out );

		return true;
	}