148 lines
2.5 KiB
C++
Executable File
148 lines
2.5 KiB
C++
Executable File
/*
|
|
* This file is a part of CMSLU -- Content Management System like Unix
|
|
* and is not publicly distributed
|
|
*
|
|
* Copyright (c) 2008-2009, Tomasz Sowa
|
|
* All rights reserved.
|
|
*
|
|
*/
|
|
|
|
#include "functions.h"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void Functions::Clear()
|
|
{
|
|
table.clear();
|
|
}
|
|
|
|
|
|
|
|
void Functions::ReadFunctions()
|
|
{
|
|
Clear();
|
|
|
|
Function f;
|
|
|
|
f.item.user_id = -1;
|
|
f.item.group_id = -1;
|
|
f.item.privileges = 0644;
|
|
f.item.parent_id = -1; // !! temporarily doesn't matter
|
|
f.item.id = -1;
|
|
f.item.type = Item::file;
|
|
|
|
// in the future we will read these functions from the database
|
|
f.code = FUN_LS;
|
|
f.item.url = "ls";
|
|
table.insert( std::make_pair(f.item.url, f) );
|
|
|
|
f.code = FUN_CAT;
|
|
f.item.url = "cat";
|
|
table.insert( std::make_pair(f.item.url, f) );
|
|
|
|
f.code = FUN_NODE;
|
|
f.item.url = "node";
|
|
table.insert( std::make_pair(f.item.url, f) );
|
|
|
|
f.code = FUN_EMACS;
|
|
f.item.url = "emacs";
|
|
table.insert( std::make_pair(f.item.url, f) );
|
|
|
|
f.code = FUN_MKDIR;
|
|
f.item.url = "mkdir";
|
|
table.insert( std::make_pair(f.item.url, f) );
|
|
|
|
f.code = FUN_DEFAULT;
|
|
f.item.url = "default";
|
|
table.insert( std::make_pair(f.item.url, f) );
|
|
|
|
f.code = FUN_PRIV;
|
|
f.item.url = "priv";
|
|
table.insert( std::make_pair(f.item.url, f) );
|
|
|
|
f.code = FUN_RM;
|
|
f.item.url = "rm";
|
|
table.insert( std::make_pair(f.item.url, f) );
|
|
|
|
f.code = FUN_LOGOUT;
|
|
f.item.url = "logout";
|
|
table.insert( std::make_pair(f.item.url, f) );
|
|
|
|
f.code = FUN_LOGIN;
|
|
f.item.url = "login";
|
|
table.insert( std::make_pair(f.item.url, f) );
|
|
|
|
f.code = FUN_RUN;
|
|
f.item.url = "run";
|
|
table.insert( std::make_pair(f.item.url, f) );
|
|
|
|
f.code = FUN_WHO;
|
|
f.item.url = "who";
|
|
table.insert( std::make_pair(f.item.url, f) );
|
|
|
|
f.code = FUN_LAST;
|
|
f.item.url = "last";
|
|
table.insert( std::make_pair(f.item.url, f) );
|
|
|
|
f.code = FUN_CREATETHREAD;
|
|
f.item.url = "createthread";
|
|
table.insert( std::make_pair(f.item.url, f) );
|
|
|
|
f.code = FUN_THREAD;
|
|
f.item.url = "thread";
|
|
table.insert( std::make_pair(f.item.url, f) );
|
|
|
|
// -----------
|
|
// FunctionCodeParser fc;
|
|
// fc.Parse(Item()); // temporary for linking
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
Function * Functions::GetFunction(const std::string & name)
|
|
{
|
|
Table::iterator i = table.find(name);
|
|
|
|
if( i == table.end() )
|
|
return 0;
|
|
|
|
return &(i->second);
|
|
}
|
|
|
|
|
|
// !! in the future there will be a special container where we can search through the Code object
|
|
Function * Functions::GetFunction(int code)
|
|
{
|
|
Table::iterator i = table.begin();
|
|
|
|
for( ; i != table.end() ; ++i )
|
|
{
|
|
if( i->second.code == code )
|
|
return &(i->second);
|
|
}
|
|
|
|
|
|
return 0;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|