122 lines
2.0 KiB
C++
Executable File
122 lines
2.0 KiB
C++
Executable File
/*
|
|
* This file is a part of CMSLU -- Content Management System like Unix
|
|
* and is not publicly distributed
|
|
*
|
|
* Copyright (c) 2008, 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 = Function::ls;
|
|
f.item.url = "list";
|
|
table.insert( std::make_pair(f.item.url, f) );
|
|
|
|
f.code = Function::cat;
|
|
f.item.url = "wyswietl";
|
|
table.insert( std::make_pair(f.item.url, f) );
|
|
|
|
f.code = Function::node;
|
|
f.item.url = "node";
|
|
table.insert( std::make_pair(f.item.url, f) );
|
|
|
|
f.code = Function::emacs;
|
|
f.item.url = "edytuj";
|
|
table.insert( std::make_pair(f.item.url, f) );
|
|
|
|
f.code = Function::mkdir;
|
|
f.item.url = "mkdir";
|
|
table.insert( std::make_pair(f.item.url, f) );
|
|
|
|
f.code = Function::default_item;
|
|
f.item.url = "default";
|
|
table.insert( std::make_pair(f.item.url, f) );
|
|
|
|
f.code = Function::privileges;
|
|
f.item.url = "uprawnienia";
|
|
table.insert( std::make_pair(f.item.url, f) );
|
|
|
|
f.code = Function::rm;
|
|
f.item.url = "usun";
|
|
table.insert( std::make_pair(f.item.url, f) );
|
|
|
|
f.code = Function::logout;
|
|
f.item.url = "wyloguj";
|
|
table.insert( std::make_pair(f.item.url, f) );
|
|
|
|
f.code = Function::login;
|
|
f.item.url = "login";
|
|
table.insert( std::make_pair(f.item.url, f) );
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
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(Function::Code code)
|
|
{
|
|
Table::iterator i = table.begin();
|
|
|
|
for( ; i != table.end() ; ++i )
|
|
{
|
|
if( i->second.code == code )
|
|
return &(i->second);
|
|
}
|
|
|
|
|
|
return 0;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|