/* * This file is a part of Winix * and is not publicly distributed * * Copyright (c) 2010, Tomasz Sowa * All rights reserved. * */ #ifndef headerfilecmslucontentprivchanger #define headerfilecmslucontentprivchanger #include "core/request.h" #include "core/system.h" #include "db/db.h" class PrivChanger { public: bool CheckAccess(); void Change(bool change_owner_, bool change_priv_); void SetRequest(Request * prequest); void SetSystem(System * psystem); void SetDb(Db * pdb); private: Request * request; System * system; Db * db; long user_id_file, group_id_file, user_id_dir, group_id_dir; int priv_file, priv_dir; bool subdirectories; bool change_owner, change_priv; bool ChangeOwner(Item & item, long user_id, long group_id); bool ChangePrivileges(Item & item, int privileges); void ChangePriv(Item & item, long user_id, long group_id, int privileges); void PrivLogStart(const wchar_t * what, long user, long group, int priv); void PrivLog(const wchar_t * what, long id, const std::wstring & url); void PrivFilesInDir(long parent_id); void PrivDir(long parent_id); void ReadPriv(const wchar_t * user_in, const wchar_t * group_in, const wchar_t * priv_in, long & user_id, long & group_id, int & priv); void PrivDir(); void PrivOneItem(); }; #endif