本文整理汇总了C++中UserServer::isAdmin方法的典型用法代码示例。如果您正苦于以下问题:C++ UserServer::isAdmin方法的具体用法?C++ UserServer::isAdmin怎么用?C++ UserServer::isAdmin使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类UserServer
的用法示例。
在下文中一共展示了UserServer::isAdmin方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: UMSVishnuException
/**
* \brief Function to reconnect the session
* \param user The object which manipulates user information
* \param host The object which manipulates client machine information
* \param sessionId The session identifier
* \return raises an exception on error
*/
int
SessionServer::reconnect(UserServer user, MachineClientServer clientMachineServer,
std::string sessionId) {
msession.setSessionId(sessionId);
if (! user.isAuthenticate()) {
throw UMSVishnuException (ERRCODE_UNKNOWN_USER);
}
int state = getState(true);
if (state < 0) {
throw UMSVishnuException (ERRCODE_UNKNOWN_SESSION_ID);
}
if (state != vishnu::SESSION_ACTIVE) {
throw UMSVishnuException (ERRCODE_UNKNOWN_SESSION_ID);
}
int existSessionKey = getSessionkey(clientMachineServer.getId(),
user.getNumUserFromLoginInfo(user.getData().getUserId(),user.getData().getPassword()),
user.isAdmin());
if (existSessionKey == -1) {
throw UMSVishnuException (ERRCODE_SESSIONKEY_NOT_FOUND);
}
return 0;
}
示例2: UMSVishnuException
/**
* \brief Function to treat the ListUsersServer options
* \param userServer the object which encapsulates user information
* \param options The object which encapsulates the information of ListUsersServer options
* \param sqlRequest the sql data base request
* \return raises an exception on error
*/
void
processOptions(UserServer userServer, const UMS_Data::ListUsersOptions_ptr& options, std::string& sqlRequest) {
if(! userServer.isAdmin()) {
throw UMSVishnuException (ERRCODE_NO_ADMIN);
}
std::string userId = options->getUserId();
if(userId.size()!=0) {
//To check if the user id is correct
checkUserId(options->getUserId());
addOptionRequest("userid", userId, sqlRequest);
}
std::string authSystemId = options->getAuthSystemId();
if(authSystemId.size()!=0) {
//To check if the authSystem identifier is correct
checkAuthSystemId(authSystemId);
//addOptionRequest("authsystemid", authSystemId, sqlRequest);
std::string luserCmd = boost::str(boost::format("SELECT userid "
" FROM authsystem, users, authaccount "
" WHERE authaccount.authsystem_authsystemid=authsystem.numauthsystemid"
" AND authaccount.users_numuserid=users.numuserid"
" AND authsystemid='%1%'"
" AND authsystem.status!=%2%"
" AND users.status!=%2%"
" AND authaccount.status!=%2%"
)
% mdatabaseInstance->escapeData(authSystemId)
% vishnu::STATUS_DELETED);
sqlRequest.append(" AND userid IN ("+mdatabaseInstance->escapeData(luserCmd)+")");
}
}
示例3: processOptions
/**
* \brief Function to treat the ListLocalAccountsServer options
* \param userServer the object which encapsulates user information
* \param options the object which contains the ListLocalAccountsServer options
* \param sqlRequest the sql data base request
* \return raises an exception on error
*/
void processOptions(UserServer userServer, const UMS_Data::ListLocalAccOptions_ptr& options, std::string& sqlRequest)
{
if (! userServer.isAdmin()
&& (! options->getUserId().empty() || options->isAdminListOption())) {
throw UMSVishnuException(ERRCODE_NO_ADMIN);
}
if(! options->isAdminListOption()) {
addOptionRequest("userid", userServer.getData().getUserId(), sqlRequest);
}
//The admin option
if (! options->getUserId().empty()) {
addOptionRequest("users.userid", options->getUserId(), sqlRequest);
}
if (! options->getMachineId().empty()) {
addOptionRequest("machine.machineid", options->getMachineId(), sqlRequest);
if (! options->isAdminListOption()
&& options->getUserId().empty()) {
addOptionRequest("users.userid", userServer.getData().getUserId(), sqlRequest);
}
}
}
示例4: UMSVishnuException
/**
* \brief Function to treat the listSessionServer options
* \param userServer the object which encapsulates user information
* \param options the object which contains the ListSessionServer options values
* \param sqlRequest the sql data base request
* \return raises an exception on error
*/
void
processOptions(UserServer userServer, const UMS_Data::ListSessionOptions_ptr& options, std::string& query)
{
boost::posix_time::ptime pt;
bool listAll = options->isAdminListOption();
if (! userServer.isAdmin()
&& (! options->getUserId().empty() || listAll)) {
throw UMSVishnuException (ERRCODE_NO_ADMIN);
}
if(! options->getMachineId().empty()) {
addOptionRequest("clmachine.name", options->getMachineId(), query);
}
if(! options->getUserId().empty()) {
addOptionRequest("users.userid", options->getUserId(), query);
} else {
if (! listAll) {
addOptionRequest("users.userid", userServer.getData().getUserId(), query);
}
}
int status = options->getStatus();
if (status == vishnu::STATUS_UNDEFINED) {
status = vishnu::STATUS_ACTIVE;
}
addIntegerOptionRequest("state", status, query);
if (options->getSessionClosePolicy()) {
addIntegerOptionRequest("closepolicy", options->getSessionClosePolicy(), query);
}
if (options->getSessionInactivityDelay() < 0) {
throw UMSVishnuException(ERRCODE_INCORRECT_TIMEOUT);
}
if (options->getSessionInactivityDelay()) {
addIntegerOptionRequest("timeout", options->getSessionInactivityDelay(), query);
}
if (! options->getSessionId().empty()) {
addOptionRequest("vsessionid", options->getSessionId(), query);
}
time_t startDate = static_cast<time_t>(options->getStartDateOption());
if (startDate > 0) {
addTimeRequest("creation", vishnu::timeToTimestamp(startDate), query, ">=");
}
time_t endDate = static_cast<time_t>(options->getEndDateOption());
if (endDate > 0) {
addTimeRequest("closure", vishnu::timeToTimestamp(endDate), query, "<=");
}
}
示例5: UMSVishnuException
/**
* \brief Function to update a VISHNU machine
* \return raises an exception on error
*/
int
MachineServer::update() {
std::string sqlCommand = "";
UserServer userServer = UserServer(msessionServer);
userServer.init();
//if the user exists
if (! userServer.exist()) {
throw UMSVishnuException (ERRCODE_UNKNOWN_USER);
}
if (! userServer.isAdmin()) {
throw UMSVishnuException (ERRCODE_NO_ADMIN);
}
//if the machine to update exists
std::string numMachineId = getEntryAttribute(mmachine->getMachineId(), "nummachineid");
if (numMachineId.empty()) {
throw UMSVishnuException (ERRCODE_UNKNOWN_MACHINE);
}
if (! mmachine->getAddress().empty()) {
std::string query = boost::str(boost::format("UPDATE machine SET address='%1%'"
" WHERE nummachineid='%2%';")
% mdatabase->escapeData(mmachine->getAddress())
% numMachineId);
sqlCommand.append(query);
}
if (mmachine->getStatus() != vishnu::STATUS_UNDEFINED) {
std::string query = boost::str(
boost::format("UPDATE machine SET status='%1%'"
" WHERE nummachineid='%2%';")
% mmachine->getStatus()
% numMachineId);
sqlCommand.append(query);
}
if (! mmachine->getDescription().empty()) {
std::string query = boost::str(
boost::format("UPDATE machine SET description='%1%'"
" WHERE machine_nummachineid='%2%';")
% mdatabase->escapeData(mmachine->getDescription())
% numMachineId);
sqlCommand.append(query);
}
if (! sqlCommand.empty()) {
mdatabase->process(sqlCommand);
}
return 0;
}
示例6: e
/**
* \brief Function to connect the session
* \param user The object which manipulates user information
* \param host The object which manipulates client machine information
* \param connectOpt The options data structure for connection
* \return raises an exception on error
*/
int
SessionServer::connectSession(UserServer user, MachineClientServer host, UMS_Data::ConnectOptions* connectOpt) {
std::string numSubstituteUserId;
std::string numUserIdToconnect;
//To record the connection identifier
msession.setAuthenId(user.getData().getUserId());
//if the user exist
if (user.isAuthenticate()) {
//if a user to substitute is defined
if (connectOpt->getSubstituteUserId().size() != 0) {
// if the user is admin
if (user.isAdmin()) {
numSubstituteUserId = user.getAttribut("where "
"userid='"+mdatabaseVishnu->escapeData(connectOpt->getSubstituteUserId())+"'");
//If the user to substitute exist
if (! user.getNumUserId(connectOpt->getSubstituteUserId()).empty()) {
numUserIdToconnect = numSubstituteUserId;
msession.setUserId(connectOpt->getSubstituteUserId());
} //End If the user to substitute exist
else {
UMSVishnuException e(ERRCODE_UNKNOWN_USERID);
throw e;
}
} // END if the user is admin
else {
UMSVishnuException e(ERRCODE_NO_ADMIN);
throw e;
}
} //End if a user to substitute is defined
//if there is not a numSubstituteUserId
if (numUserIdToconnect.size() == 0) {
numUserIdToconnect = user.getAttribut("where userid='"+mdatabaseVishnu->escapeData(user.getData().getUserId())+"'"
" and pwd='"+mdatabaseVishnu->escapeData(user.getData().getPassword())+"'");
msession.setUserId(user.getData().getUserId());
} //END if There is not a numSubstituteUserId
generateSessionKey(user.getData().getUserId());
generateSessionId(user.getData().getUserId());
//To solve the connection mode
solveConnectionMode(connectOpt, numUserIdToconnect);
host.recordMachineClient();
recordSessionServer(host.getId(), numUserIdToconnect);
} // END if the user exist
else {
UMSVishnuException e(ERRCODE_UNKNOWN_USER);
throw e;
}
return 0;
}//END: connectSession(UserServer, MachineClientServer, ConnectOptions*)
示例7: transferId
/**
* \brief Function to treat the Stop file transfer options
* \param options the object which contains the Stop file transfers options values
* \param sqlRequest the sql data base request
* \return raises an exception on error
*/
void
FileTransferServer::processOptions(const FMS_Data::StopTransferOptions& options,
std::string& sqlRequest) {
std::string transferId(options.getTransferId()),machineName(options.getFromMachineId()),userId(options.getUserId());
//To check if the transferId is defined
if (transferId.size() != 0) {
if (transferId.compare("all")!=0 && transferId.compare("ALL")!=0){
//To check the transfer Id
FileTransferServer::checkTransferId(options.getTransferId());
//To add the transferId on the request
FileTransferServer::addOptionRequest("transferId", options.getTransferId(), sqlRequest);
}
}
//To check if the fromMachineId is defined
if (machineName.size() != 0) {
sqlRequest.append(" and (sourceMachineId='"+FileTransferServer::getDatabaseInstance()->escapeData(machineName)+"'"+" or destinationMachineId='"+FileTransferServer::getDatabaseInstance()->escapeData(machineName)+"')");
}
//Creation of the object user
UserServer userServer = UserServer(msessionServer);
userServer.init();
//To check if the userId is defined
if (userId.size() != 0) {
if (!userServer.isAdmin()) {
UMSVishnuException e (ERRCODE_NO_ADMIN);
throw e;
}
if (userId.compare("all")!=0 && userId.compare("ALL")!=0){
//To check the user Id
FileTransferServer::checkUserId(options.getUserId());
//To add the userId on the request
FileTransferServer::addOptionRequest("userId", userId, sqlRequest);
}
} else {
FileTransferServer::addOptionRequest("userId", userServer.getData().getUserId(), sqlRequest);
}
}
示例8: processOptions
/**
* \brief Function to treat the ListMachinesServer options
* \fn void processOptions(UserServer userServer,
* const UMS_Data::ListMachineOptions_ptr& options,
* std::string& sqlRequest)
* \param userServer the object which encapsulates user information
* \param options the object which contains the ListMachinesServer options values
* \param sqlRequest the sql data base request
* \return raises an exception on error
*/
void processOptions(UserServer userServer, const UMS_Data::ListMachineOptions_ptr& options, std::string& sqlRequest)
{
std::string sqlListofMachinesWithJointure = "SELECT machineid, name, site, machine.status, lang, description, userid "
" from machine, description, account, users where machine.nummachineid = description.machine_nummachineid "
" and account.machine_nummachineid=machine.nummachineid and account.users_numuserid=users.numuserid";
std::string sqlListofMachinesIntial = sqlRequest;
size_t userIdSize = options->getUserId().size();
size_t machineIdSize = options->getMachineId().size();
bool isListAll = options->isListAllMachine();
if ((!userServer.isAdmin()) && userIdSize!=0) {
UMSVishnuException e (ERRCODE_NO_ADMIN);
throw e;
}
if(!isListAll) {
sqlRequest = sqlListofMachinesWithJointure;
addOptionRequest("userid", userServer.getData().getUserId(), sqlRequest);
}
//The admin option
if(userIdSize!=0) {
//To check if the user id is correct
checkUserId(options->getUserId());
sqlRequest = sqlListofMachinesWithJointure;
addOptionRequest("userid", options->getUserId(), sqlRequest);
}
if(machineIdSize!=0) {
//To check if the machine id is correct
checkMachineId(options->getMachineId());
if(!isListAll && userIdSize==0) {
sqlRequest=sqlListofMachinesIntial;
}
addOptionRequest("machineid", options->getMachineId(), sqlRequest);
}
}
示例9: UMSVishnuException
/**
* \brief Function to treat the ListCommandsServer options
* \param userServer the object which encapsulates user information
* \param options the object which contains the ListCommandsServer options values
* \param sqlRequest the sql data base request
* \return raises an exception on error
*/
void
processOptions(UserServer userServer, const UMS_Data::ListCmdOptions_ptr& options, std::string& sqlRequest)
{
boost::posix_time::ptime pt;
bool listAll = options->isAdminListOption();
if (! userServer.isAdmin()
&& (! options->getUserId().empty() || listAll)) {
throw UMSVishnuException (ERRCODE_NO_ADMIN);
}
if(! options->getUserId().empty()) {
addOptionRequest("users.numuserid", getNumUser(options->getUserId()), sqlRequest);
} else {
if(! listAll) {
addOptionRequest("userid", userServer.getData().getUserId(), sqlRequest);
}
}
if (! options->getSessionId().empty()) {
checkSessionId(options->getSessionId());
addOptionRequest("vsessionid", options->getSessionId(), sqlRequest);
}
time_t startDate = static_cast<time_t>(options->getStartDateOption());
if (startDate != -1) {
pt = boost::posix_time::from_time_t(startDate);
std::string startDateStr = boost::posix_time::to_iso_string(pt);
addTimeRequest("starttime", startDateStr, sqlRequest, ">=");
}
time_t endDate = static_cast<time_t>(options->getEndDateOption());
if(endDate!=-1) {
pt = boost::posix_time::from_time_t(endDate);
std::string endDateStr = boost::posix_time::to_iso_string(pt);
addTimeRequest("endtime", endDateStr, sqlRequest, "<=");
}
}
示例10: UMSVishnuException
/**
* \brief Function to treat the ListMachinesServer options
* \param userServer the object which encapsulates user information
* \param options the object which contains the ListMachinesServer options values
* \param sqlRequest the sql data base request
* \return raises an exception on error
*/
void
processOptions(UserServer userServer, const UMS_Data::ListMachineOptions_ptr& options, std::string& sqlRequest)
{
std::string sqlJoinLstMachines = boost::str(boost::format("SELECT DISTINCT machineid, address, machine.status, description, userid "
" FROM machine, account, users"
" WHERE account.machine_nummachineid = machine.nummachineid "
" AND account.users_numuserid = users.numuserid "
" AND machine.status != %1%"
" AND account.status != %1%"
" AND users.status != %1%"
) % vishnu::STATUS_DELETED);
std::string sqlListofMachinesIntial = sqlRequest;
bool isListAll = options->isListAllMachine();
if (! userServer.isAdmin() && ! options->getUserId().empty()) {
throw UMSVishnuException (ERRCODE_NO_ADMIN);
}
if(! isListAll) {
sqlRequest = sqlJoinLstMachines;
addOptionRequest("userid", userServer.getData().getUserId(), sqlRequest);
}
//The admin option
if (! options->getUserId().empty()) {
sqlRequest = sqlJoinLstMachines;
addOptionRequest("users.numuserid", getNumUser(options->getUserId()), sqlRequest);
}
if (! options->getMachineId().empty()) {
getNumMachine( options->getMachineId() );
if(! isListAll && options->getUserId().empty()) {
sqlRequest = sqlListofMachinesIntial;
}
addOptionRequest("machineid", options->getMachineId(), sqlRequest);
}
}
示例11: list
/**
* \brief Function to list users information
* \return The pointer to the UMS_Data::ListUsers containing users information
* \return raises an exception on error
*/
UMS_Data::ListUsers* list(UMS_Data::ListUsersOptions_ptr option) {
std::vector<std::string>::iterator dbResultIter;
std::vector<std::string> results;
UMS_Data::UMS_DataFactory_ptr ecoreFactory = UMS_Data::UMS_DataFactory::_instance();
mlistObject = ecoreFactory->createListUsers();
//Creation of the object user
UserServer userServer = UserServer(msessionServer);
userServer.init();
//if the user exists
if (userServer.exist()) {
std::string sqlQuery = "";
if ( userServer.isAdmin()) {
// query all users
sqlQuery = boost::str(boost::format(
"SELECT userid, pwd, firstname, lastname, privilege, email, status"
" FROM users"
" WHERE users.status<>%1%") % vishnu::STATUS_DELETED);
} else {
// dont query admin users
sqlQuery = boost::str(boost::format(
"SELECT userid, pwd, firstname, lastname, privilege, email, status"
" FROM users"
" WHERE userid<>'%1%'"
" AND users.status<>%2%") % vishnu::ROOTUSERNAME % vishnu::STATUS_DELETED);
}
processOptions(userServer, option, sqlQuery);
sqlQuery.append(" ORDER BY userid");
//To get the list of users from the database
boost::scoped_ptr<DatabaseResult> ListofUsers (mdatabaseInstance->getResult(sqlQuery));
if (ListofUsers->getNbTuples() != 0){
for (size_t resultIndex = 0; resultIndex < ListofUsers->getNbTuples(); ++resultIndex) {
results.clear();
results = ListofUsers->get(resultIndex);
dbResultIter = results.begin();
UMS_Data::User_ptr user = ecoreFactory->createUser();
user->setUserId(*dbResultIter);
user->setPassword(*(++dbResultIter));
user->setFirstname(*(++dbResultIter));
user->setLastname(*(++dbResultIter));
user->setPrivilege(vishnu::convertToInt(*(++dbResultIter)));
user->setEmail(*(++dbResultIter));
user->setStatus(vishnu::convertToInt(*(++dbResultIter)));
mlistObject->getUsers().push_back(user);
}
}
}
else {
UMSVishnuException e (ERRCODE_UNKNOWN_USER);
throw e;
}
return mlistObject;
}
示例12: e
/**
* \brief Function to treat the listSessionServer options
* \param userServer the object which encapsulates user information
* \param options the object which contains the ListSessionServer options values
* \param sqlRequest the sql data base request
* \return raises an exception on error
*/
void
processOptions(UserServer userServer, const UMS_Data::ListSessionOptions_ptr& options, std::string& sqlRequest)
{
boost::posix_time::ptime pt;
size_t userIdSize = options->getUserId().size();
bool listAll = options->isAdminListOption();
if ((!userServer.isAdmin()) && (userIdSize!=0 || listAll)) {
UMSVishnuException e (ERRCODE_NO_ADMIN);
throw e;
}
if(options->getMachineId().size()!=0) {
//To check if the name of the machine is correct
checkClientMachineName(options->getMachineId());
sqlRequest = "SELECT vsessionid, userid, sessionkey, state, closepolicy, timeout, lastconnect,"
"creation, closure, authid from vsession, users, clmachine where vsession.users_numuserid=users.numuserid"
" and vsession.clmachine_numclmachineid=clmachine.numclmachineid";
addOptionRequest("name", options->getMachineId(), sqlRequest);
}
if(userIdSize!=0) {
//To check if the user id is correct
checkUserId(options->getUserId());
addOptionRequest("userid", options->getUserId(), sqlRequest);
} else {
if(!listAll) {
addOptionRequest("userid", userServer.getData().getUserId(), sqlRequest);
}
}
int status = options->getStatus();
if (status == vishnu::STATUS_UNDEFINED) {
status = vishnu::STATUS_ACTIVE;
}
//To check the status value
checkStatus(status);
addIntegerOptionRequest("state", status, sqlRequest);
int closePolicy = options->getSessionClosePolicy();
//To check the closePolicy value
checkClosePolicy(closePolicy);
if(closePolicy) {
addIntegerOptionRequest("closepolicy", closePolicy, sqlRequest);
}
int timeOut = options->getSessionInactivityDelay();
if(timeOut < 0) {
throw UMSVishnuException(ERRCODE_INCORRECT_TIMEOUT);
}
if(timeOut) {
addIntegerOptionRequest("timeout", timeOut, sqlRequest);
}
if(options->getSessionId().size()!=0) {
//To check if the session id is correct
checkSessionId(options->getSessionId());
addOptionRequest("vsessionid", options->getSessionId(), sqlRequest);
}
time_t startDate = static_cast<time_t>(options->getStartDateOption());
if(startDate!=-1) {
pt = boost::posix_time::from_time_t(startDate);
std::string startDateStr = boost::posix_time::to_iso_string(pt);
addTimeRequest("creation", startDateStr, sqlRequest, ">=");
}
time_t endDate = static_cast<time_t>(options->getEndDateOption());
if(endDate!=-1) {
pt = boost::posix_time::from_time_t(endDate);
std::string endDateStr = boost::posix_time::to_iso_string(pt);
addTimeRequest("closure", endDateStr, sqlRequest, "<=");
}
}