/** * Fetch the project from LDAP and initialize the object * @return void */ function fetchProjectInfo() { global $wgAuth; global $wgOpenStackManagerLDAPProjectBaseDN; $result = LdapAuthenticationPlugin::ldap_search($wgAuth->ldapconn, $wgOpenStackManagerLDAPProjectBaseDN, '(&(cn=' . $this->projectname . ')(owner=*))'); $this->projectInfo = LdapAuthenticationPlugin::ldap_get_entries($wgAuth->ldapconn, $result); $this->projectDN = $this->projectInfo[0]['dn']; $this->roles = array(); foreach (self::$rolenames as $rolename) { $this->roles[] = OpenStackNovaRole::getProjectRoleByName($rolename, $this); } }
/** * Fetch the project from LDAP and initialize the object * @return void */ function fetchProjectInfo($refresh = true) { global $wgAuth; global $wgOpenStackManagerLDAPProjectBaseDN; if ($this->loaded and !$refresh) { return; } $result = LdapAuthenticationPlugin::ldap_search($wgAuth->ldapconn, $wgOpenStackManagerLDAPProjectBaseDN, '(&(cn=' . $this->projectname . ')(objectclass=groupofnames))'); $this->projectInfo = LdapAuthenticationPlugin::ldap_get_entries($wgAuth->ldapconn, $result); if ($this->projectInfo['count'] === 0) { return; } $this->projectDN = $this->projectInfo[0]['dn']; $this->roles = array(); foreach (self::$rolenames as $rolename) { $this->roles[] = OpenStackNovaRole::getProjectRoleByName($rolename, $this); } // fetch the associated posix project group (project-$projectname) $this->fetchProjectGroup(); $this->fetchServiceGroups(); $this->loaded = true; }
/** * @param $formData * @param string $entryPoint * @return bool */ function tryDeleteMemberSubmit( $formData, $entryPoint = 'internal' ) { $projectname = $formData['projectname']; if ( $projectname ) { $project = OpenStackNovaProject::getProjectByName( $projectname ); if ( ! $project ) { $this->getOutput()->addWikiMsg( 'openstackmanager-nonexistentproject' ); return true; } $role = OpenStackNovaRole::getProjectRoleByName( $formData['rolename'], $project ); } else { $role = OpenStackNovaRole::getGlobalRoleByName( $formData['rolename'] ); } if ( ! $role ) { $this->getOutput()->addWikiMsg( 'openstackmanager-nonexistentrole' ); return true; } foreach ( $formData['members'] as $member ) { $success = $role->deleteMember( $member ); if ( $success ) { $this->getOutput()->addWikiMsg( 'openstackmanager-removedfrom', $member, $formData['rolename'] ); } else { $this->getOutput()->addWikiMsg( 'openstackmanager-failedtoremove', $member, $formData['rolename'] ); } } $out = '<br />'; $returnto = Title::newFromText( $formData['returnto'] ); $out .= Linker::link( $returnto, wfMsgHtml( 'openstackmanager-backprojectlist' ) ); $this->getOutput()->addHTML( $out ); return true; }