diff --git a/content/Makefile b/content/Makefile index fff619b..f4dd33a 100755 --- a/content/Makefile +++ b/content/Makefile @@ -1,4 +1,4 @@ -o = content.o priv.o emacs.o login.o rm.o cat.o logout.o ls.o node.o mkdir.o default.o run.o last.o who.o +o = content.o priv.o emacs.o login.o rm.o cat.o logout.o ls.o node.o mkdir.o default.o run.o last.o who.o thread.o createthread.o all: content.a diff --git a/content/Makefile.dep b/content/Makefile.dep index 5c75a1f..5af0b66 100755 --- a/content/Makefile.dep +++ b/content/Makefile.dep @@ -5,13 +5,14 @@ cat.o: ../core/misc.h ../core/log.h ../core/item.h ../core/error.h cat.o: ../core/dirs.h ../core/db.h ../core/dircontainer.h ../core/user.h cat.o: ../core/group.h ../core/ugcontainer.h ../core/users.h ../core/groups.h cat.o: ../core/functions.h ../core/function.h ../core/functioncodeparser.h -cat.o: ../core/lastcontainer.h ../core/request.h ../core/requesttypes.h -cat.o: ../core/session.h ../core/done.h ../core/getparser.h -cat.o: ../core/httpsimpleparser.h ../core/postparser.h ../core/cookieparser.h -cat.o: ../core/item.h ../core/db.h ../core/error.h ../core/user.h -cat.o: ../core/group.h ../core/users.h ../core/groups.h ../core/log.h -cat.o: ../templates/patterncacher.h ../app/templates.h ../core/misc.h -cat.o: ../core/function.h ../core/functionparser.h ../core/request.h +cat.o: ../core/lastcontainer.h ../core/mounts.h ../core/mount.h +cat.o: ../core/request.h ../core/requesttypes.h ../core/session.h +cat.o: ../core/done.h ../core/getparser.h ../core/httpsimpleparser.h +cat.o: ../core/postparser.h ../core/cookieparser.h ../core/mountparser.h +cat.o: ../core/request.h ../core/item.h ../core/db.h ../core/error.h +cat.o: ../core/user.h ../core/group.h ../core/users.h ../core/groups.h +cat.o: ../core/log.h ../templates/patterncacher.h ../app/templates.h +cat.o: ../core/misc.h ../core/function.h ../core/functionparser.h cat.o: ../core/data.h ../app/content.h content.o: content.h ../templates/templates.h ../../ezc/src/ezc.h content.o: ../core/data.h ../core/misc.h ../core/log.h ../core/item.h @@ -19,96 +20,120 @@ content.o: ../core/error.h ../core/dirs.h ../core/db.h ../core/dircontainer.h content.o: ../core/user.h ../core/group.h ../core/ugcontainer.h content.o: ../core/users.h ../core/groups.h ../core/functions.h content.o: ../core/function.h ../core/functioncodeparser.h -content.o: ../core/lastcontainer.h ../core/request.h ../core/requesttypes.h -content.o: ../core/session.h ../core/done.h ../core/getparser.h -content.o: ../core/httpsimpleparser.h ../core/postparser.h -content.o: ../core/cookieparser.h ../core/item.h ../core/db.h ../core/error.h +content.o: ../core/lastcontainer.h ../core/mounts.h ../core/mount.h +content.o: ../core/request.h ../core/requesttypes.h ../core/session.h +content.o: ../core/done.h ../core/getparser.h ../core/httpsimpleparser.h +content.o: ../core/postparser.h ../core/cookieparser.h ../core/mountparser.h +content.o: ../core/request.h ../core/item.h ../core/db.h ../core/error.h content.o: ../core/user.h ../core/group.h ../core/users.h ../core/groups.h content.o: ../core/log.h ../templates/patterncacher.h ../app/templates.h content.o: ../core/misc.h ../core/function.h ../core/functionparser.h -content.o: ../core/request.h ../core/data.h ../app/content.h +content.o: ../core/data.h ../app/content.h +createthread.o: content.h ../templates/templates.h ../../ezc/src/ezc.h +createthread.o: ../core/data.h ../core/misc.h ../core/log.h ../core/item.h +createthread.o: ../core/error.h ../core/dirs.h ../core/db.h +createthread.o: ../core/dircontainer.h ../core/user.h ../core/group.h +createthread.o: ../core/ugcontainer.h ../core/users.h ../core/groups.h +createthread.o: ../core/functions.h ../core/function.h +createthread.o: ../core/functioncodeparser.h ../core/lastcontainer.h +createthread.o: ../core/mounts.h ../core/mount.h ../core/request.h +createthread.o: ../core/requesttypes.h ../core/session.h ../core/done.h +createthread.o: ../core/getparser.h ../core/httpsimpleparser.h +createthread.o: ../core/postparser.h ../core/cookieparser.h +createthread.o: ../core/mountparser.h ../core/request.h ../core/item.h +createthread.o: ../core/db.h ../core/error.h ../core/user.h ../core/group.h +createthread.o: ../core/users.h ../core/groups.h ../core/log.h +createthread.o: ../templates/patterncacher.h ../app/templates.h +createthread.o: ../core/misc.h ../core/function.h ../core/functionparser.h +createthread.o: ../core/data.h ../app/content.h default.o: content.h ../templates/templates.h ../../ezc/src/ezc.h default.o: ../core/data.h ../core/misc.h ../core/log.h ../core/item.h default.o: ../core/error.h ../core/dirs.h ../core/db.h ../core/dircontainer.h default.o: ../core/user.h ../core/group.h ../core/ugcontainer.h default.o: ../core/users.h ../core/groups.h ../core/functions.h default.o: ../core/function.h ../core/functioncodeparser.h -default.o: ../core/lastcontainer.h ../core/request.h ../core/requesttypes.h -default.o: ../core/session.h ../core/done.h ../core/getparser.h -default.o: ../core/httpsimpleparser.h ../core/postparser.h -default.o: ../core/cookieparser.h ../core/item.h ../core/db.h ../core/error.h +default.o: ../core/lastcontainer.h ../core/mounts.h ../core/mount.h +default.o: ../core/request.h ../core/requesttypes.h ../core/session.h +default.o: ../core/done.h ../core/getparser.h ../core/httpsimpleparser.h +default.o: ../core/postparser.h ../core/cookieparser.h ../core/mountparser.h +default.o: ../core/request.h ../core/item.h ../core/db.h ../core/error.h default.o: ../core/user.h ../core/group.h ../core/users.h ../core/groups.h default.o: ../core/log.h ../templates/patterncacher.h ../app/templates.h default.o: ../core/misc.h ../core/function.h ../core/functionparser.h -default.o: ../core/request.h ../core/data.h ../app/content.h +default.o: ../core/data.h ../app/content.h emacs.o: content.h ../templates/templates.h ../../ezc/src/ezc.h emacs.o: ../core/data.h ../core/misc.h ../core/log.h ../core/item.h emacs.o: ../core/error.h ../core/dirs.h ../core/db.h ../core/dircontainer.h emacs.o: ../core/user.h ../core/group.h ../core/ugcontainer.h ../core/users.h emacs.o: ../core/groups.h ../core/functions.h ../core/function.h emacs.o: ../core/functioncodeparser.h ../core/lastcontainer.h -emacs.o: ../core/request.h ../core/requesttypes.h ../core/session.h -emacs.o: ../core/done.h ../core/getparser.h ../core/httpsimpleparser.h -emacs.o: ../core/postparser.h ../core/cookieparser.h ../core/item.h -emacs.o: ../core/db.h ../core/error.h ../core/user.h ../core/group.h -emacs.o: ../core/users.h ../core/groups.h ../core/log.h +emacs.o: ../core/mounts.h ../core/mount.h ../core/request.h +emacs.o: ../core/requesttypes.h ../core/session.h ../core/done.h +emacs.o: ../core/getparser.h ../core/httpsimpleparser.h ../core/postparser.h +emacs.o: ../core/cookieparser.h ../core/mountparser.h ../core/request.h +emacs.o: ../core/item.h ../core/db.h ../core/error.h ../core/user.h +emacs.o: ../core/group.h ../core/users.h ../core/groups.h ../core/log.h emacs.o: ../templates/patterncacher.h ../app/templates.h ../core/misc.h -emacs.o: ../core/function.h ../core/functionparser.h ../core/request.h -emacs.o: ../core/data.h ../app/content.h +emacs.o: ../core/function.h ../core/functionparser.h ../core/data.h +emacs.o: ../app/content.h last.o: content.h ../templates/templates.h ../../ezc/src/ezc.h ../core/data.h last.o: ../core/misc.h ../core/log.h ../core/item.h ../core/error.h last.o: ../core/dirs.h ../core/db.h ../core/dircontainer.h ../core/user.h last.o: ../core/group.h ../core/ugcontainer.h ../core/users.h last.o: ../core/groups.h ../core/functions.h ../core/function.h -last.o: ../core/functioncodeparser.h ../core/lastcontainer.h -last.o: ../core/request.h ../core/requesttypes.h ../core/session.h -last.o: ../core/done.h ../core/getparser.h ../core/httpsimpleparser.h -last.o: ../core/postparser.h ../core/cookieparser.h ../core/item.h -last.o: ../core/db.h ../core/error.h ../core/user.h ../core/group.h -last.o: ../core/users.h ../core/groups.h ../core/log.h +last.o: ../core/functioncodeparser.h ../core/lastcontainer.h ../core/mounts.h +last.o: ../core/mount.h ../core/request.h ../core/requesttypes.h +last.o: ../core/session.h ../core/done.h ../core/getparser.h +last.o: ../core/httpsimpleparser.h ../core/postparser.h +last.o: ../core/cookieparser.h ../core/mountparser.h ../core/request.h +last.o: ../core/item.h ../core/db.h ../core/error.h ../core/user.h +last.o: ../core/group.h ../core/users.h ../core/groups.h ../core/log.h last.o: ../templates/patterncacher.h ../app/templates.h ../core/misc.h -last.o: ../core/function.h ../core/functionparser.h ../core/request.h -last.o: ../core/data.h ../app/content.h +last.o: ../core/function.h ../core/functionparser.h ../core/data.h +last.o: ../app/content.h login.o: content.h ../templates/templates.h ../../ezc/src/ezc.h login.o: ../core/data.h ../core/misc.h ../core/log.h ../core/item.h login.o: ../core/error.h ../core/dirs.h ../core/db.h ../core/dircontainer.h login.o: ../core/user.h ../core/group.h ../core/ugcontainer.h ../core/users.h login.o: ../core/groups.h ../core/functions.h ../core/function.h login.o: ../core/functioncodeparser.h ../core/lastcontainer.h -login.o: ../core/request.h ../core/requesttypes.h ../core/session.h -login.o: ../core/done.h ../core/getparser.h ../core/httpsimpleparser.h -login.o: ../core/postparser.h ../core/cookieparser.h ../core/item.h -login.o: ../core/db.h ../core/error.h ../core/user.h ../core/group.h -login.o: ../core/users.h ../core/groups.h ../core/log.h +login.o: ../core/mounts.h ../core/mount.h ../core/request.h +login.o: ../core/requesttypes.h ../core/session.h ../core/done.h +login.o: ../core/getparser.h ../core/httpsimpleparser.h ../core/postparser.h +login.o: ../core/cookieparser.h ../core/mountparser.h ../core/request.h +login.o: ../core/item.h ../core/db.h ../core/error.h ../core/user.h +login.o: ../core/group.h ../core/users.h ../core/groups.h ../core/log.h login.o: ../templates/patterncacher.h ../app/templates.h ../core/misc.h -login.o: ../core/function.h ../core/functionparser.h ../core/request.h -login.o: ../core/data.h ../app/content.h +login.o: ../core/function.h ../core/functionparser.h ../core/data.h +login.o: ../app/content.h logout.o: content.h ../templates/templates.h ../../ezc/src/ezc.h logout.o: ../core/data.h ../core/misc.h ../core/log.h ../core/item.h logout.o: ../core/error.h ../core/dirs.h ../core/db.h ../core/dircontainer.h logout.o: ../core/user.h ../core/group.h ../core/ugcontainer.h logout.o: ../core/users.h ../core/groups.h ../core/functions.h logout.o: ../core/function.h ../core/functioncodeparser.h -logout.o: ../core/lastcontainer.h ../core/request.h ../core/requesttypes.h -logout.o: ../core/session.h ../core/done.h ../core/getparser.h -logout.o: ../core/httpsimpleparser.h ../core/postparser.h -logout.o: ../core/cookieparser.h ../core/item.h ../core/db.h ../core/error.h +logout.o: ../core/lastcontainer.h ../core/mounts.h ../core/mount.h +logout.o: ../core/request.h ../core/requesttypes.h ../core/session.h +logout.o: ../core/done.h ../core/getparser.h ../core/httpsimpleparser.h +logout.o: ../core/postparser.h ../core/cookieparser.h ../core/mountparser.h +logout.o: ../core/request.h ../core/item.h ../core/db.h ../core/error.h logout.o: ../core/user.h ../core/group.h ../core/users.h ../core/groups.h logout.o: ../core/log.h ../templates/patterncacher.h ../app/templates.h logout.o: ../core/misc.h ../core/function.h ../core/functionparser.h -logout.o: ../core/request.h ../core/data.h ../app/content.h +logout.o: ../core/data.h ../app/content.h ls.o: content.h ../templates/templates.h ../../ezc/src/ezc.h ../core/data.h ls.o: ../core/misc.h ../core/log.h ../core/item.h ../core/error.h ls.o: ../core/dirs.h ../core/db.h ../core/dircontainer.h ../core/user.h ls.o: ../core/group.h ../core/ugcontainer.h ../core/users.h ../core/groups.h ls.o: ../core/functions.h ../core/function.h ../core/functioncodeparser.h -ls.o: ../core/lastcontainer.h ../core/request.h ../core/requesttypes.h -ls.o: ../core/session.h ../core/done.h ../core/getparser.h -ls.o: ../core/httpsimpleparser.h ../core/postparser.h ../core/cookieparser.h -ls.o: ../core/item.h ../core/db.h ../core/error.h ../core/user.h -ls.o: ../core/group.h ../core/users.h ../core/groups.h ../core/log.h -ls.o: ../templates/patterncacher.h ../app/templates.h ../core/misc.h -ls.o: ../core/function.h ../core/functionparser.h ../core/request.h +ls.o: ../core/lastcontainer.h ../core/mounts.h ../core/mount.h +ls.o: ../core/request.h ../core/requesttypes.h ../core/session.h +ls.o: ../core/done.h ../core/getparser.h ../core/httpsimpleparser.h +ls.o: ../core/postparser.h ../core/cookieparser.h ../core/mountparser.h +ls.o: ../core/request.h ../core/item.h ../core/db.h ../core/error.h +ls.o: ../core/user.h ../core/group.h ../core/users.h ../core/groups.h +ls.o: ../core/log.h ../templates/patterncacher.h ../app/templates.h +ls.o: ../core/misc.h ../core/function.h ../core/functionparser.h ls.o: ../core/data.h ../app/content.h mkdir.o: content.h ../templates/templates.h ../../ezc/src/ezc.h mkdir.o: ../core/data.h ../core/misc.h ../core/log.h ../core/item.h @@ -116,78 +141,99 @@ mkdir.o: ../core/error.h ../core/dirs.h ../core/db.h ../core/dircontainer.h mkdir.o: ../core/user.h ../core/group.h ../core/ugcontainer.h ../core/users.h mkdir.o: ../core/groups.h ../core/functions.h ../core/function.h mkdir.o: ../core/functioncodeparser.h ../core/lastcontainer.h -mkdir.o: ../core/request.h ../core/requesttypes.h ../core/session.h -mkdir.o: ../core/done.h ../core/getparser.h ../core/httpsimpleparser.h -mkdir.o: ../core/postparser.h ../core/cookieparser.h ../core/item.h -mkdir.o: ../core/db.h ../core/error.h ../core/user.h ../core/group.h -mkdir.o: ../core/users.h ../core/groups.h ../core/log.h +mkdir.o: ../core/mounts.h ../core/mount.h ../core/request.h +mkdir.o: ../core/requesttypes.h ../core/session.h ../core/done.h +mkdir.o: ../core/getparser.h ../core/httpsimpleparser.h ../core/postparser.h +mkdir.o: ../core/cookieparser.h ../core/mountparser.h ../core/request.h +mkdir.o: ../core/item.h ../core/db.h ../core/error.h ../core/user.h +mkdir.o: ../core/group.h ../core/users.h ../core/groups.h ../core/log.h mkdir.o: ../templates/patterncacher.h ../app/templates.h ../core/misc.h -mkdir.o: ../core/function.h ../core/functionparser.h ../core/request.h -mkdir.o: ../core/data.h ../app/content.h +mkdir.o: ../core/function.h ../core/functionparser.h ../core/data.h +mkdir.o: ../app/content.h node.o: content.h ../templates/templates.h ../../ezc/src/ezc.h ../core/data.h node.o: ../core/misc.h ../core/log.h ../core/item.h ../core/error.h node.o: ../core/dirs.h ../core/db.h ../core/dircontainer.h ../core/user.h node.o: ../core/group.h ../core/ugcontainer.h ../core/users.h node.o: ../core/groups.h ../core/functions.h ../core/function.h -node.o: ../core/functioncodeparser.h ../core/lastcontainer.h -node.o: ../core/request.h ../core/requesttypes.h ../core/session.h -node.o: ../core/done.h ../core/getparser.h ../core/httpsimpleparser.h -node.o: ../core/postparser.h ../core/cookieparser.h ../core/item.h -node.o: ../core/db.h ../core/error.h ../core/user.h ../core/group.h -node.o: ../core/users.h ../core/groups.h ../core/log.h +node.o: ../core/functioncodeparser.h ../core/lastcontainer.h ../core/mounts.h +node.o: ../core/mount.h ../core/request.h ../core/requesttypes.h +node.o: ../core/session.h ../core/done.h ../core/getparser.h +node.o: ../core/httpsimpleparser.h ../core/postparser.h +node.o: ../core/cookieparser.h ../core/mountparser.h ../core/request.h +node.o: ../core/item.h ../core/db.h ../core/error.h ../core/user.h +node.o: ../core/group.h ../core/users.h ../core/groups.h ../core/log.h node.o: ../templates/patterncacher.h ../app/templates.h ../core/misc.h -node.o: ../core/function.h ../core/functionparser.h ../core/request.h -node.o: ../core/data.h ../app/content.h +node.o: ../core/function.h ../core/functionparser.h ../core/data.h +node.o: ../app/content.h priv.o: content.h ../templates/templates.h ../../ezc/src/ezc.h ../core/data.h priv.o: ../core/misc.h ../core/log.h ../core/item.h ../core/error.h priv.o: ../core/dirs.h ../core/db.h ../core/dircontainer.h ../core/user.h priv.o: ../core/group.h ../core/ugcontainer.h ../core/users.h priv.o: ../core/groups.h ../core/functions.h ../core/function.h -priv.o: ../core/functioncodeparser.h ../core/lastcontainer.h -priv.o: ../core/request.h ../core/requesttypes.h ../core/session.h -priv.o: ../core/done.h ../core/getparser.h ../core/httpsimpleparser.h -priv.o: ../core/postparser.h ../core/cookieparser.h ../core/item.h -priv.o: ../core/db.h ../core/error.h ../core/user.h ../core/group.h -priv.o: ../core/users.h ../core/groups.h ../core/log.h +priv.o: ../core/functioncodeparser.h ../core/lastcontainer.h ../core/mounts.h +priv.o: ../core/mount.h ../core/request.h ../core/requesttypes.h +priv.o: ../core/session.h ../core/done.h ../core/getparser.h +priv.o: ../core/httpsimpleparser.h ../core/postparser.h +priv.o: ../core/cookieparser.h ../core/mountparser.h ../core/request.h +priv.o: ../core/item.h ../core/db.h ../core/error.h ../core/user.h +priv.o: ../core/group.h ../core/users.h ../core/groups.h ../core/log.h priv.o: ../templates/patterncacher.h ../app/templates.h ../core/misc.h -priv.o: ../core/function.h ../core/functionparser.h ../core/request.h -priv.o: ../core/data.h ../app/content.h +priv.o: ../core/function.h ../core/functionparser.h ../core/data.h +priv.o: ../app/content.h rm.o: content.h ../templates/templates.h ../../ezc/src/ezc.h ../core/data.h rm.o: ../core/misc.h ../core/log.h ../core/item.h ../core/error.h rm.o: ../core/dirs.h ../core/db.h ../core/dircontainer.h ../core/user.h rm.o: ../core/group.h ../core/ugcontainer.h ../core/users.h ../core/groups.h rm.o: ../core/functions.h ../core/function.h ../core/functioncodeparser.h -rm.o: ../core/lastcontainer.h ../core/request.h ../core/requesttypes.h -rm.o: ../core/session.h ../core/done.h ../core/getparser.h -rm.o: ../core/httpsimpleparser.h ../core/postparser.h ../core/cookieparser.h -rm.o: ../core/item.h ../core/db.h ../core/error.h ../core/user.h -rm.o: ../core/group.h ../core/users.h ../core/groups.h ../core/log.h -rm.o: ../templates/patterncacher.h ../app/templates.h ../core/misc.h -rm.o: ../core/function.h ../core/functionparser.h ../core/request.h +rm.o: ../core/lastcontainer.h ../core/mounts.h ../core/mount.h +rm.o: ../core/request.h ../core/requesttypes.h ../core/session.h +rm.o: ../core/done.h ../core/getparser.h ../core/httpsimpleparser.h +rm.o: ../core/postparser.h ../core/cookieparser.h ../core/mountparser.h +rm.o: ../core/request.h ../core/item.h ../core/db.h ../core/error.h +rm.o: ../core/user.h ../core/group.h ../core/users.h ../core/groups.h +rm.o: ../core/log.h ../templates/patterncacher.h ../app/templates.h +rm.o: ../core/misc.h ../core/function.h ../core/functionparser.h rm.o: ../core/data.h ../app/content.h run.o: content.h ../templates/templates.h ../../ezc/src/ezc.h ../core/data.h run.o: ../core/misc.h ../core/log.h ../core/item.h ../core/error.h run.o: ../core/dirs.h ../core/db.h ../core/dircontainer.h ../core/user.h run.o: ../core/group.h ../core/ugcontainer.h ../core/users.h ../core/groups.h run.o: ../core/functions.h ../core/function.h ../core/functioncodeparser.h -run.o: ../core/lastcontainer.h ../core/request.h ../core/requesttypes.h -run.o: ../core/session.h ../core/done.h ../core/getparser.h -run.o: ../core/httpsimpleparser.h ../core/postparser.h ../core/cookieparser.h -run.o: ../core/item.h ../core/db.h ../core/error.h ../core/user.h -run.o: ../core/group.h ../core/users.h ../core/groups.h ../core/log.h -run.o: ../templates/patterncacher.h ../app/templates.h ../core/misc.h -run.o: ../core/function.h ../core/functionparser.h ../core/request.h +run.o: ../core/lastcontainer.h ../core/mounts.h ../core/mount.h +run.o: ../core/request.h ../core/requesttypes.h ../core/session.h +run.o: ../core/done.h ../core/getparser.h ../core/httpsimpleparser.h +run.o: ../core/postparser.h ../core/cookieparser.h ../core/mountparser.h +run.o: ../core/request.h ../core/item.h ../core/db.h ../core/error.h +run.o: ../core/user.h ../core/group.h ../core/users.h ../core/groups.h +run.o: ../core/log.h ../templates/patterncacher.h ../app/templates.h +run.o: ../core/misc.h ../core/function.h ../core/functionparser.h run.o: ../core/data.h ../app/content.h +thread.o: content.h ../templates/templates.h ../../ezc/src/ezc.h +thread.o: ../core/data.h ../core/misc.h ../core/log.h ../core/item.h +thread.o: ../core/error.h ../core/dirs.h ../core/db.h ../core/dircontainer.h +thread.o: ../core/user.h ../core/group.h ../core/ugcontainer.h +thread.o: ../core/users.h ../core/groups.h ../core/functions.h +thread.o: ../core/function.h ../core/functioncodeparser.h +thread.o: ../core/lastcontainer.h ../core/mounts.h ../core/mount.h +thread.o: ../core/request.h ../core/requesttypes.h ../core/session.h +thread.o: ../core/done.h ../core/getparser.h ../core/httpsimpleparser.h +thread.o: ../core/postparser.h ../core/cookieparser.h ../core/mountparser.h +thread.o: ../core/request.h ../core/item.h ../core/db.h ../core/error.h +thread.o: ../core/user.h ../core/group.h ../core/users.h ../core/groups.h +thread.o: ../core/log.h ../templates/patterncacher.h ../app/templates.h +thread.o: ../core/misc.h ../core/function.h ../core/functionparser.h +thread.o: ../core/data.h ../app/content.h who.o: content.h ../templates/templates.h ../../ezc/src/ezc.h ../core/data.h who.o: ../core/misc.h ../core/log.h ../core/item.h ../core/error.h who.o: ../core/dirs.h ../core/db.h ../core/dircontainer.h ../core/user.h who.o: ../core/group.h ../core/ugcontainer.h ../core/users.h ../core/groups.h who.o: ../core/functions.h ../core/function.h ../core/functioncodeparser.h -who.o: ../core/lastcontainer.h ../core/request.h ../core/requesttypes.h -who.o: ../core/session.h ../core/done.h ../core/getparser.h -who.o: ../core/httpsimpleparser.h ../core/postparser.h ../core/cookieparser.h -who.o: ../core/item.h ../core/db.h ../core/error.h ../core/user.h -who.o: ../core/group.h ../core/users.h ../core/groups.h ../core/log.h -who.o: ../templates/patterncacher.h ../app/templates.h ../core/misc.h -who.o: ../core/function.h ../core/functionparser.h ../core/request.h +who.o: ../core/lastcontainer.h ../core/mounts.h ../core/mount.h +who.o: ../core/request.h ../core/requesttypes.h ../core/session.h +who.o: ../core/done.h ../core/getparser.h ../core/httpsimpleparser.h +who.o: ../core/postparser.h ../core/cookieparser.h ../core/mountparser.h +who.o: ../core/request.h ../core/item.h ../core/db.h ../core/error.h +who.o: ../core/user.h ../core/group.h ../core/users.h ../core/groups.h +who.o: ../core/log.h ../templates/patterncacher.h ../app/templates.h +who.o: ../core/misc.h ../core/function.h ../core/functionparser.h who.o: ../core/data.h ../app/content.h diff --git a/content/content.cpp b/content/content.cpp index afd0050..b4a4852 100755 --- a/content/content.cpp +++ b/content/content.cpp @@ -11,7 +11,6 @@ - bool Content::Init() { templates.Read(); @@ -39,18 +38,31 @@ return true; - -void Content::SetDefaultFunction() +void Content::SetDefaultFunctionForFile() { - if( request.is_item ) + if( request.HasReadExecAccess(request.item) ) + request.pfunction = data.functions.GetFunction(FUN_RUN); + else + request.pfunction = data.functions.GetFunction(FUN_CAT); + + if( request.pfunction ) + log << log3 << "Content: default function: " << request.pfunction->item.url << logend; +} + + + + +void Content::SetDefaultFunctionForDir() +{ + Mount mount = data.mounts.GetCurrentMountPoint(); + + if( mount.type == Mount::thread ) { - if( request.HasReadExecAccess(request.item) ) - request.pfunction = data.functions.GetFunction(FUN_RUN); - else - request.pfunction = data.functions.GetFunction(FUN_CAT); - + request.pfunction = data.functions.GetFunction(FUN_THREAD); + if( request.pfunction ) log << log3 << "Content: default function: " << request.pfunction->item.url << logend; + } else { @@ -69,7 +81,20 @@ void Content::SetDefaultFunction() log << log3 << "Content: Default item: id: " << default_item << logend; RedirectTo(default_item); - } + } + } +} + + +void Content::SetDefaultFunction() +{ + if( request.is_item ) + { + SetDefaultFunctionForFile(); + } + else + { + SetDefaultFunctionForDir(); } } @@ -127,6 +152,15 @@ void Content::MakeStandardFunction() else if( request.pfunction->code == FUN_LAST ) FunLast(); + else + if( request.pfunction->code == FUN_THREAD ) + FunThread(); + else + if( request.pfunction->code == FUN_CREATETHREAD ) + FunCreateThread(); + else + request.status = Error::permision_denied; + } @@ -165,8 +199,13 @@ void Content::MakePost() PostFunLogin(); break; + case FUN_CREATETHREAD: + PostFunCreateThread(); + break; + default: log << log1 << "Content: unknown post function" << logend; + // !! moze daj tutaj tez access denied? break; } } diff --git a/content/content.h b/content/content.h index c036826..0920ba3 100755 --- a/content/content.h +++ b/content/content.h @@ -35,6 +35,8 @@ class Content void PrepareUrl(Item & item); + void SetDefaultFunctionForFile(); + void SetDefaultFunctionForDir(); void SetDefaultFunction(); bool DirsHaveReadExecPerm(); @@ -60,15 +62,17 @@ class Content void FunRun(); void FunWho(); void FunLast(); - + void FunThread(); + void FunCreateThread(); void PostFunLogin(); void PostFunEmacsAdd(); void PostFunEmacsEdit(bool with_url); void PostFunEmacs(); - void PostFunMkdir(); + void PostFunMkdir(bool add_to_dir_table = false); void PostFunDefault(); void PostFunPriv(); + void PostFunCreateThread(); void RedirectTo(const Item & item); void RedirectTo(long item_id); diff --git a/content/createthread.cpp b/content/createthread.cpp new file mode 100755 index 0000000..e8a5040 --- /dev/null +++ b/content/createthread.cpp @@ -0,0 +1,56 @@ +/* + * 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 "content.h" +#include "../app/content.h" + + + +void Content::PostFunCreateThread() +{ + if( !request.HasWriteAccess(*request.dir_table.back()) || request.is_item ) + { + request.status = Error::permision_denied; + return; + } + + PostFunMkdir(true); + + if( request.session->done_status == Error::ok ) + { + PostFunEmacs(); + + if( request.session->done_status == Error::ok ) + { + request.session->done = Done::added_thread; + RedirectTo(*request.dir_table.back()); + } + } +} + + + + + + + +void Content::FunCreateThread() +{ + if( !request.HasWriteAccess(*request.dir_table.back()) ) + { + request.status = Error::permision_denied; + return; + } + + +} + + + + diff --git a/content/ls.cpp b/content/ls.cpp index 9f25058..afe0e89 100755 --- a/content/ls.cpp +++ b/content/ls.cpp @@ -28,6 +28,8 @@ void Content::FunLs() request.item_table.push_back( request.item ); return; } + + // !! a gdzie sprawdzenie uprawnien? // we're showing the whole directory Item item_ref; diff --git a/content/mkdir.cpp b/content/mkdir.cpp index 45acfa4..8bb99ee 100755 --- a/content/mkdir.cpp +++ b/content/mkdir.cpp @@ -11,7 +11,7 @@ -void Content::PostFunMkdir() +void Content::PostFunMkdir(bool add_to_dir_table) { if( !request.HasWriteAccess(*request.dir_table.back()) ) { @@ -47,7 +47,10 @@ void Content::PostFunMkdir() if( request.session->done_status == Error::ok ) { - data.dirs.AddDir(item); + Item * pdir = data.dirs.AddDir(item); + + if( add_to_dir_table ) + request.dir_table.push_back(pdir); request.session->item = item; request.session->done_timer = 2; diff --git a/content/thread.cpp b/content/thread.cpp new file mode 100755 index 0000000..4875381 --- /dev/null +++ b/content/thread.cpp @@ -0,0 +1,30 @@ +/* + * 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 "content.h" +#include "../app/content.h" + + + + + +void Content::FunThread() +{ + // we're showing the whole directory + Item item_ref; + + item_ref.parent_id = request.dir_table.back()->id; + + // !! zrobic inna metode, inny interfejs (jako parametr niech bierze parent_id), i zeby nie odczytywala contentu i subjectu (a moze tylko subject? przyda sie przy ls -l) + db.GetItems(request.item_table, item_ref); +} + + + + diff --git a/core/Makefile b/core/Makefile index eb9329b..a1fbe07 100755 --- a/core/Makefile +++ b/core/Makefile @@ -1,4 +1,4 @@ -o = data.o log.o sessionmanager.o requestcontroller.o dircontainer.o session.o main.o done.o request.o misc.o httpsimpleparser.o db.o error.o db_itemcolumns.o users.o config.o dirs.o groups.o function.o functionparser.o functions.o functioncodeparser.o sessioncontainer.o lastcontainer.o +o = data.o log.o sessionmanager.o requestcontroller.o dircontainer.o session.o main.o done.o request.o misc.o httpsimpleparser.o db.o error.o db_itemcolumns.o users.o config.o dirs.o groups.o function.o functionparser.o functions.o functioncodeparser.o sessioncontainer.o lastcontainer.o mounts.o mountparser.o diff --git a/core/Makefile.dep b/core/Makefile.dep index 830fe89..c31bc04 100755 --- a/core/Makefile.dep +++ b/core/Makefile.dep @@ -3,10 +3,14 @@ config.o: config.h ../confparser/confparser.h error.h log.h data.h misc.h config.o: item.h dirs.h db.h dircontainer.h user.h group.h ugcontainer.h config.o: users.h groups.h functions.h function.h functioncodeparser.h -config.o: lastcontainer.h +config.o: lastcontainer.h mounts.h mount.h request.h requesttypes.h session.h +config.o: done.h getparser.h httpsimpleparser.h postparser.h cookieparser.h +config.o: mountparser.h data.o: data.h misc.h log.h item.h error.h dirs.h db.h dircontainer.h user.h data.o: group.h ugcontainer.h users.h groups.h functions.h function.h -data.o: functioncodeparser.h lastcontainer.h +data.o: functioncodeparser.h lastcontainer.h mounts.h mount.h request.h +data.o: requesttypes.h session.h done.h getparser.h httpsimpleparser.h +data.o: postparser.h cookieparser.h mountparser.h db.o: db.h log.h item.h misc.h error.h dircontainer.h user.h group.h db.o: ugcontainer.h db_itemcolumns.o: db.h log.h item.h misc.h error.h dircontainer.h user.h @@ -22,9 +26,9 @@ functionparser.o: functionparser.h request.h requesttypes.h log.h session.h functionparser.o: error.h item.h done.h user.h getparser.h httpsimpleparser.h functionparser.o: postparser.h cookieparser.h function.h data.h misc.h dirs.h functionparser.o: db.h dircontainer.h group.h ugcontainer.h users.h groups.h -functionparser.o: functions.h functioncodeparser.h lastcontainer.h -functionparser.o: ../app/content.h ../core/log.h ../core/data.h -functionparser.o: ../core/function.h +functionparser.o: functions.h functioncodeparser.h lastcontainer.h mounts.h +functionparser.o: mount.h mountparser.h ../app/content.h ../core/log.h +functionparser.o: ../core/data.h ../core/function.h functions.o: functions.h function.h log.h item.h functioncodeparser.h groups.o: groups.h group.h db.h log.h item.h misc.h error.h dircontainer.h groups.o: user.h ugcontainer.h @@ -33,33 +37,37 @@ lastcontainer.o: lastcontainer.h log.h log.o: log.h main.o: requestcontroller.h data.h misc.h log.h item.h error.h dirs.h db.h main.o: dircontainer.h user.h group.h ugcontainer.h users.h groups.h -main.o: functions.h function.h functioncodeparser.h lastcontainer.h request.h -main.o: requesttypes.h session.h done.h getparser.h httpsimpleparser.h -main.o: postparser.h cookieparser.h ../content/content.h -main.o: ../templates/templates.h ../../ezc/src/ezc.h ../core/data.h -main.o: ../core/request.h ../core/item.h ../core/db.h ../core/error.h -main.o: ../core/user.h ../core/group.h ../core/users.h ../core/groups.h -main.o: ../core/log.h ../templates/patterncacher.h ../app/templates.h -main.o: ../core/misc.h ../core/function.h ../core/functionparser.h -main.o: ../app/content.h sessionmanager.h sessioncontainer.h config.h -main.o: ../confparser/confparser.h +main.o: functions.h function.h functioncodeparser.h lastcontainer.h mounts.h +main.o: mount.h request.h requesttypes.h session.h done.h getparser.h +main.o: httpsimpleparser.h postparser.h cookieparser.h mountparser.h +main.o: ../content/content.h ../templates/templates.h ../../ezc/src/ezc.h +main.o: ../core/data.h ../core/request.h ../core/item.h ../core/db.h +main.o: ../core/error.h ../core/user.h ../core/group.h ../core/users.h +main.o: ../core/groups.h ../core/log.h ../templates/patterncacher.h +main.o: ../app/templates.h ../core/misc.h ../core/function.h +main.o: ../core/functionparser.h ../app/content.h sessionmanager.h +main.o: sessioncontainer.h config.h ../confparser/confparser.h misc.o: misc.h log.h item.h +mountparser.o: mountparser.h log.h mount.h error.h +mounts.o: mounts.h mount.h request.h requesttypes.h log.h session.h error.h +mounts.o: item.h done.h user.h getparser.h httpsimpleparser.h postparser.h +mounts.o: cookieparser.h function.h mountparser.h request.o: request.h requesttypes.h log.h session.h error.h item.h done.h request.o: user.h getparser.h httpsimpleparser.h postparser.h cookieparser.h request.o: function.h requestcontroller.o: requestcontroller.h data.h misc.h log.h item.h error.h requestcontroller.o: dirs.h db.h dircontainer.h user.h group.h ugcontainer.h requestcontroller.o: users.h groups.h functions.h function.h -requestcontroller.o: functioncodeparser.h lastcontainer.h request.h -requestcontroller.o: requesttypes.h session.h done.h getparser.h +requestcontroller.o: functioncodeparser.h lastcontainer.h mounts.h mount.h +requestcontroller.o: request.h requesttypes.h session.h done.h getparser.h requestcontroller.o: httpsimpleparser.h postparser.h cookieparser.h -requestcontroller.o: ../content/content.h ../templates/templates.h -requestcontroller.o: ../../ezc/src/ezc.h ../core/data.h ../core/request.h -requestcontroller.o: ../core/item.h ../core/db.h ../core/error.h -requestcontroller.o: ../core/user.h ../core/group.h ../core/users.h -requestcontroller.o: ../core/groups.h ../core/log.h -requestcontroller.o: ../templates/patterncacher.h ../app/templates.h -requestcontroller.o: ../core/misc.h ../core/function.h +requestcontroller.o: mountparser.h ../content/content.h +requestcontroller.o: ../templates/templates.h ../../ezc/src/ezc.h +requestcontroller.o: ../core/data.h ../core/request.h ../core/item.h +requestcontroller.o: ../core/db.h ../core/error.h ../core/user.h +requestcontroller.o: ../core/group.h ../core/users.h ../core/groups.h +requestcontroller.o: ../core/log.h ../templates/patterncacher.h +requestcontroller.o: ../app/templates.h ../core/misc.h ../core/function.h requestcontroller.o: ../core/functionparser.h ../app/content.h requestcontroller.o: sessionmanager.h sessioncontainer.h session.o: session.h requesttypes.h error.h log.h item.h done.h user.h @@ -69,7 +77,7 @@ sessionmanager.o: sessionmanager.h request.h requesttypes.h log.h session.h sessionmanager.o: error.h item.h done.h user.h getparser.h httpsimpleparser.h sessionmanager.o: postparser.h cookieparser.h function.h data.h misc.h dirs.h sessionmanager.o: db.h dircontainer.h group.h ugcontainer.h users.h groups.h -sessionmanager.o: functions.h functioncodeparser.h lastcontainer.h -sessionmanager.o: sessioncontainer.h +sessionmanager.o: functions.h functioncodeparser.h lastcontainer.h mounts.h +sessionmanager.o: mount.h mountparser.h sessioncontainer.h users.o: users.h user.h db.h log.h item.h misc.h error.h dircontainer.h users.o: group.h ugcontainer.h diff --git a/core/data.h b/core/data.h index 39c6207..8f7d826 100755 --- a/core/data.h +++ b/core/data.h @@ -23,7 +23,7 @@ #include "groups.h" #include "functions.h" #include "lastcontainer.h" - +#include "mounts.h" @@ -119,8 +119,14 @@ public: // functions (ls, cat, etc) Functions functions; + // for 'last' function LastContainer last; + // mount points + Mounts mounts; + + + Data(); diff --git a/core/dircontainer.cpp b/core/dircontainer.cpp index da6e17a..12a3b9b 100755 --- a/core/dircontainer.cpp +++ b/core/dircontainer.cpp @@ -52,12 +52,12 @@ bool DirContainer::Empty() -void DirContainer::PushBack(const Item & item) +DirContainer::Iterator DirContainer::PushBack(const Item & item) { if( item.parent_id == -1 && is_root ) { log << log1 << "DirCont: more than one root dir - skipped, id: " << item.id << logend; - return; + return root_iter; } Iterator last_iter = table.insert(table.end(), item); @@ -74,6 +74,8 @@ void DirContainer::PushBack(const Item & item) table_parent.insert( std::make_pair(last_iter->parent_id, last_iter) ); log << log3 << "DirCont: added indexes to dir, id: " << last_iter->id << ", parent_id: " << last_iter->parent_id << logend; + +return last_iter; } diff --git a/core/dircontainer.h b/core/dircontainer.h index b2e10e9..2a7384f 100755 --- a/core/dircontainer.h +++ b/core/dircontainer.h @@ -38,7 +38,7 @@ public: Iterator End(); SizeType Size(); bool Empty(); - void PushBack(const Item & item); + Iterator PushBack(const Item & item); void Clear(); Iterator FindId(long id); diff --git a/core/dirs.cpp b/core/dirs.cpp index bc255c3..a4da5a3 100755 --- a/core/dirs.cpp +++ b/core/dirs.cpp @@ -342,9 +342,9 @@ return &(*i); -void Dirs::AddDir(const Item & item) +Item * Dirs::AddDir(const Item & item) { - dir_table.PushBack(item); + return &(*dir_table.PushBack(item)); } diff --git a/core/dirs.h b/core/dirs.h index 3aed0d9..784299a 100755 --- a/core/dirs.h +++ b/core/dirs.h @@ -68,7 +68,7 @@ public: Item * GetDir(const std::string & path); Item * GetDir(long id); - void AddDir(const Item & item); + Item * AddDir(const Item & item); static void SplitPath(const std::string & path, std::string & dir, std::string & file); diff --git a/core/done.h b/core/done.h index 47bde76..11b7da0 100755 --- a/core/done.h +++ b/core/done.h @@ -26,6 +26,7 @@ public: deleted_dir, privileged_item, added_dir, + added_thread, defaulted_dir, loggedout }; diff --git a/core/error.h b/core/error.h index 620f1de..67525c4 100755 --- a/core/error.h +++ b/core/error.h @@ -44,6 +44,9 @@ public: item_required, // !! zamienic na no_item (i usunac db_no_item) unknown_param, + + mount_unknown, + no_mountpoint, unknown = 1000 diff --git a/core/function.h b/core/function.h index f660ddd..5dc9839 100755 --- a/core/function.h +++ b/core/function.h @@ -2,7 +2,7 @@ * This file is a part of CMSLU -- Content Management System like Unix * and is not publicly distributed * - * Copyright (c) 2008, Tomasz Sowa + * Copyright (c) 2008-2009, Tomasz Sowa * All rights reserved. * */ @@ -29,6 +29,9 @@ #define FUN_RUN 11 #define FUN_WHO 12 #define FUN_LAST 13 +#define FUN_CREATETHREAD 14 +#define FUN_THREAD 15 + diff --git a/core/functions.cpp b/core/functions.cpp index 40bdbf6..9416f51 100755 --- a/core/functions.cpp +++ b/core/functions.cpp @@ -2,7 +2,7 @@ * This file is a part of CMSLU -- Content Management System like Unix * and is not publicly distributed * - * Copyright (c) 2008, Tomasz Sowa + * Copyright (c) 2008-2009, Tomasz Sowa * All rights reserved. * */ @@ -87,6 +87,14 @@ void Functions::ReadFunctions() 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 diff --git a/core/mount.h b/core/mount.h new file mode 100755 index 0000000..12d6302 --- /dev/null +++ b/core/mount.h @@ -0,0 +1,66 @@ +/* + * This file is a part of CMSLU -- Content Management System like Unix + * and is not publicly distributed + * + * Copyright (c) 2009, Tomasz Sowa + * All rights reserved. + * + */ + + +#ifndef headerfilecoremount +#define headerfilecoremount + + + + + +class Mount +{ +public: + + + enum Type + { + cms = 0, + thread + }; + + + long dir_id; + Type type; + + // in the future can be more parameters to a mount point + + + const char * TypeToStr() + { + static char buffer[30]; + + switch( type ) + { + case cms: + sprintf(buffer, "cms"); + break; + + case thread: + sprintf(buffer, "thread"); + break; + + default: + sprintf(buffer, "the name is not set"); + break; + } + + return buffer; + } + + + +}; + + + + +#endif + diff --git a/core/mountparser.cpp b/core/mountparser.cpp new file mode 100755 index 0000000..b9e3c54 --- /dev/null +++ b/core/mountparser.cpp @@ -0,0 +1,146 @@ +/* + * This file is a part of CMSLU -- Content Management System like Unix + * and is not publicly distributed + * + * Copyright (c) 2009, Tomasz Sowa + * All rights reserved. + * + */ + +#include "mountparser.h" +#include "data.h" + + + +bool MountParser::IsWhite(int c) +{ + if( c==' ' || c=='\t' || c==13 ) + return true; + +return false; +} + + +void MountParser::SkipWhite() +{ + while( IsWhite(*pinput) ) + ++pinput; +} + + +void MountParser::SkipLine() +{ + while( *pinput && *pinput != 10 ) + ++pinput; + + if( *pinput == 10 ) + ++pinput; +} + + + +void MountParser::ReadWord(std::string & res) +{ + res.clear(); + + while( *pinput && *pinput!=10 && !IsWhite(*pinput) ) + { + res += *pinput; + ++pinput; + } +} + + + +void MountParser::ReadMountType() +{ + SkipWhite(); + ReadWord(temp); + + if( temp == "cms" ) + { + mount_type = Mount::cms; + log << log3 << "MP: mount type: cms" << logend; + } + else + if( temp == "thread" ) + { + mount_type = Mount::thread; + log << log3 << "MP: mount type: thread" << logend; + } + else + { + err = Error::mount_unknown; + log << log1 << "MP: unknown mount type: " << temp << logend; + } +} + + + +void MountParser::ReadMountPoint() +{ + SkipWhite(); + + // !! narazie bez cudzyslowow + ReadWord(temp); + + pdir = data.dirs.GetDir(temp); + + if( pdir ) + { + log << log3 << "MP: mount point: " << temp << logend; + } + else + { + err == Error::no_mountpoint; + log << log1 << "MP: there is no such a mount point: " << temp << logend; + } +} + + + +void MountParser::ReadRow(std::map & output) +{ + ReadMountType(); + + if( err == Error::ok ) + ReadMountPoint(); + + + if( err == Error::ok ) + { + Mount m; + m.dir_id = pdir->id; + m.type = mount_type; + + output.insert( std::make_pair(pdir->id, m) ); + } + + SkipLine(); +} + + + + +Error MountParser::Parse(const std::string & input, std::map & output) +{ + pinput = input.c_str(); + err = Error::ok; + output.clear(); + + while( *pinput && err == Error::ok ) + ReadRow(output); + +return err; +} + + + + + + + + + + + diff --git a/core/mountparser.h b/core/mountparser.h new file mode 100755 index 0000000..8372ebf --- /dev/null +++ b/core/mountparser.h @@ -0,0 +1,49 @@ +/* + * This file is a part of CMSLU -- Content Management System like Unix + * and is not publicly distributed + * + * Copyright (c) 2009, Tomasz Sowa + * All rights reserved. + * + */ + +#ifndef headerfilecoremountparser +#define headerfilecoremountparser + +#include +#include + +#include "log.h" +#include "mount.h" +#include "error.h" +#include "item.h" + + + + +class MountParser +{ +public: + + Error Parse(const std::string & input, std::map & output); + + +private: + + bool IsWhite(int c); + void SkipWhite(); + void SkipLine(); + void ReadWord(std::string & res); + void ReadMountType(); + void ReadMountPoint(); + void ReadRow(std::map & output); + + const char * pinput; + std::string temp; + Mount::Type mount_type; + Item * pdir; + Error err; +}; + + +#endif diff --git a/core/mounts.cpp b/core/mounts.cpp new file mode 100755 index 0000000..f4f295e --- /dev/null +++ b/core/mounts.cpp @@ -0,0 +1,81 @@ +/* + * This file is a part of CMSLU -- Content Management System like Unix + * and is not publicly distributed + * + * Copyright (c) 2009, Tomasz Sowa + * All rights reserved. + * + */ + +#include "mounts.h" +#include "data.h" + + +void Mounts::ReadMounts() +{ + MountParser mp; + + // !! tymczasowo - bedzie odczyt z bazy z /etc/fstab + std::string temp = "thread /forum"; + + Error err = mp.Parse(temp, mount_table); + + if( err != Error::ok ) + { + log << log1 << "M: some problems with mountpoints (mountpoints table will be empty)" << logend; + mount_table.clear(); + } +} + + + + + + +Mount Mounts::GetCurrentMountPoint() +{ + return current_dir; +} + + + +void Mounts::MountCmsForRoot() +{ + current_dir.type = Mount::cms; + + Item * proot = data.dirs.GetRootDir(); + + if( proot ) + current_dir.dir_id = proot->id; + else + { + current_dir.dir_id = -1; + log << log1 << "M: there is no a root dir" << logend; + } +} + + + + +void Mounts::CalculateCurrentMountType() +{ +std::vector::reverse_iterator i; + + + for(i = request.dir_table.rbegin() ; i!=request.dir_table.rend() ; ++i) + { + std::map::iterator m = mount_table.find( (*i)->id ); + + if( m != mount_table.end() ) + { + current_dir = m->second; + log << log2 << "M: current mount point is: " << current_dir.TypeToStr() << logend; + return; + } + } + + + // we assume that 'cms' mount point is used + MountCmsForRoot(); + log << log2 << "M: current mount point is: cms (default)" << logend; +} diff --git a/core/mounts.h b/core/mounts.h new file mode 100755 index 0000000..d347264 --- /dev/null +++ b/core/mounts.h @@ -0,0 +1,45 @@ +/* + * This file is a part of CMSLU -- Content Management System like Unix + * and is not publicly distributed + * + * Copyright (c) 2009, Tomasz Sowa + * All rights reserved. + * + */ + + +#ifndef headerfilecoremounts +#define headerfilecoremounts + + +#include +#include "mount.h" +#include "request.h" +#include "log.h" +#include "mountparser.h" + + + +class Mounts +{ +public: + + void ReadMounts(); + + void CalculateCurrentMountType(); + Mount GetCurrentMountPoint(); + void MountCmsForRoot(); + + +private: + + Mount current_dir; + + // dir_id, mount_point + std::map mount_table; + +}; + + + +#endif diff --git a/core/requestcontroller.cpp b/core/requestcontroller.cpp index fb50b86..828791a 100755 --- a/core/requestcontroller.cpp +++ b/core/requestcontroller.cpp @@ -100,6 +100,7 @@ bool RequestController::Init() data.users.ReadUsers(); data.groups.ReadGroups(); data.functions.ReadFunctions(); + data.mounts.ReadMounts(); // if( !content.Init() ) @@ -150,6 +151,7 @@ void RequestController::Loop() request.session->CheckTimers(); function_parser.Parse(); + data.mounts.CalculateCurrentMountType(); content.Make(); } diff --git a/templates/Makefile b/templates/Makefile index bd60a7b..d69aff8 100755 --- a/templates/Makefile +++ b/templates/Makefile @@ -1,4 +1,4 @@ -o = templates.o sys.o item.o doc.o user.o dir.o done.o priv.o patterncacher.o who.o last.o +o = templates.o sys.o item.o doc.o user.o dir.o done.o priv.o patterncacher.o who.o last.o thread.o all: templates.a diff --git a/templates/Makefile.dep b/templates/Makefile.dep index 3834544..cbc3cdd 100755 --- a/templates/Makefile.dep +++ b/templates/Makefile.dep @@ -5,32 +5,35 @@ dir.o: ../core/log.h ../core/item.h ../core/error.h ../core/dirs.h dir.o: ../core/db.h ../core/dircontainer.h ../core/user.h ../core/group.h dir.o: ../core/ugcontainer.h ../core/users.h ../core/groups.h dir.o: ../core/functions.h ../core/function.h ../core/functioncodeparser.h -dir.o: ../core/lastcontainer.h ../core/request.h ../core/requesttypes.h -dir.o: ../core/session.h ../core/done.h ../core/getparser.h -dir.o: ../core/httpsimpleparser.h ../core/postparser.h ../core/cookieparser.h -dir.o: ../core/item.h ../core/db.h ../core/error.h ../core/user.h -dir.o: ../core/group.h ../core/users.h ../core/groups.h ../core/log.h -dir.o: patterncacher.h ../app/templates.h +dir.o: ../core/lastcontainer.h ../core/mounts.h ../core/mount.h +dir.o: ../core/request.h ../core/requesttypes.h ../core/session.h +dir.o: ../core/done.h ../core/getparser.h ../core/httpsimpleparser.h +dir.o: ../core/postparser.h ../core/cookieparser.h ../core/mountparser.h +dir.o: ../core/request.h ../core/item.h ../core/db.h ../core/error.h +dir.o: ../core/user.h ../core/group.h ../core/users.h ../core/groups.h +dir.o: ../core/log.h patterncacher.h ../app/templates.h doc.o: templates.h ../../ezc/src/ezc.h ../core/data.h ../core/misc.h doc.o: ../core/log.h ../core/item.h ../core/error.h ../core/dirs.h doc.o: ../core/db.h ../core/dircontainer.h ../core/user.h ../core/group.h doc.o: ../core/ugcontainer.h ../core/users.h ../core/groups.h doc.o: ../core/functions.h ../core/function.h ../core/functioncodeparser.h -doc.o: ../core/lastcontainer.h ../core/request.h ../core/requesttypes.h -doc.o: ../core/session.h ../core/done.h ../core/getparser.h -doc.o: ../core/httpsimpleparser.h ../core/postparser.h ../core/cookieparser.h -doc.o: ../core/item.h ../core/db.h ../core/error.h ../core/user.h -doc.o: ../core/group.h ../core/users.h ../core/groups.h ../core/log.h -doc.o: patterncacher.h ../app/templates.h +doc.o: ../core/lastcontainer.h ../core/mounts.h ../core/mount.h +doc.o: ../core/request.h ../core/requesttypes.h ../core/session.h +doc.o: ../core/done.h ../core/getparser.h ../core/httpsimpleparser.h +doc.o: ../core/postparser.h ../core/cookieparser.h ../core/mountparser.h +doc.o: ../core/request.h ../core/item.h ../core/db.h ../core/error.h +doc.o: ../core/user.h ../core/group.h ../core/users.h ../core/groups.h +doc.o: ../core/log.h patterncacher.h ../app/templates.h done.o: templates.h ../../ezc/src/ezc.h ../core/data.h ../core/misc.h done.o: ../core/log.h ../core/item.h ../core/error.h ../core/dirs.h done.o: ../core/db.h ../core/dircontainer.h ../core/user.h ../core/group.h done.o: ../core/ugcontainer.h ../core/users.h ../core/groups.h done.o: ../core/functions.h ../core/function.h ../core/functioncodeparser.h -done.o: ../core/lastcontainer.h ../core/request.h ../core/requesttypes.h -done.o: ../core/session.h ../core/done.h ../core/getparser.h -done.o: ../core/httpsimpleparser.h ../core/postparser.h -done.o: ../core/cookieparser.h ../core/item.h ../core/db.h ../core/error.h +done.o: ../core/lastcontainer.h ../core/mounts.h ../core/mount.h +done.o: ../core/request.h ../core/requesttypes.h ../core/session.h +done.o: ../core/done.h ../core/getparser.h ../core/httpsimpleparser.h +done.o: ../core/postparser.h ../core/cookieparser.h ../core/mountparser.h +done.o: ../core/request.h ../core/item.h ../core/db.h ../core/error.h done.o: ../core/user.h ../core/group.h ../core/users.h ../core/groups.h done.o: ../core/log.h patterncacher.h ../app/templates.h item.o: templates.h ../../ezc/src/ezc.h ../core/data.h ../core/misc.h @@ -38,10 +41,11 @@ item.o: ../core/log.h ../core/item.h ../core/error.h ../core/dirs.h item.o: ../core/db.h ../core/dircontainer.h ../core/user.h ../core/group.h item.o: ../core/ugcontainer.h ../core/users.h ../core/groups.h item.o: ../core/functions.h ../core/function.h ../core/functioncodeparser.h -item.o: ../core/lastcontainer.h ../core/request.h ../core/requesttypes.h -item.o: ../core/session.h ../core/done.h ../core/getparser.h -item.o: ../core/httpsimpleparser.h ../core/postparser.h -item.o: ../core/cookieparser.h ../core/item.h ../core/db.h ../core/error.h +item.o: ../core/lastcontainer.h ../core/mounts.h ../core/mount.h +item.o: ../core/request.h ../core/requesttypes.h ../core/session.h +item.o: ../core/done.h ../core/getparser.h ../core/httpsimpleparser.h +item.o: ../core/postparser.h ../core/cookieparser.h ../core/mountparser.h +item.o: ../core/request.h ../core/item.h ../core/db.h ../core/error.h item.o: ../core/user.h ../core/group.h ../core/users.h ../core/groups.h item.o: ../core/log.h patterncacher.h ../app/templates.h last.o: templates.h ../../ezc/src/ezc.h ../core/data.h ../core/misc.h @@ -49,10 +53,11 @@ last.o: ../core/log.h ../core/item.h ../core/error.h ../core/dirs.h last.o: ../core/db.h ../core/dircontainer.h ../core/user.h ../core/group.h last.o: ../core/ugcontainer.h ../core/users.h ../core/groups.h last.o: ../core/functions.h ../core/function.h ../core/functioncodeparser.h -last.o: ../core/lastcontainer.h ../core/request.h ../core/requesttypes.h -last.o: ../core/session.h ../core/done.h ../core/getparser.h -last.o: ../core/httpsimpleparser.h ../core/postparser.h -last.o: ../core/cookieparser.h ../core/item.h ../core/db.h ../core/error.h +last.o: ../core/lastcontainer.h ../core/mounts.h ../core/mount.h +last.o: ../core/request.h ../core/requesttypes.h ../core/session.h +last.o: ../core/done.h ../core/getparser.h ../core/httpsimpleparser.h +last.o: ../core/postparser.h ../core/cookieparser.h ../core/mountparser.h +last.o: ../core/request.h ../core/item.h ../core/db.h ../core/error.h last.o: ../core/user.h ../core/group.h ../core/users.h ../core/groups.h last.o: ../core/log.h patterncacher.h ../app/templates.h last.o: ../core/lastcontainer.h ../core/misc.h @@ -63,10 +68,11 @@ priv.o: ../core/log.h ../core/item.h ../core/error.h ../core/dirs.h priv.o: ../core/db.h ../core/dircontainer.h ../core/user.h ../core/group.h priv.o: ../core/ugcontainer.h ../core/users.h ../core/groups.h priv.o: ../core/functions.h ../core/function.h ../core/functioncodeparser.h -priv.o: ../core/lastcontainer.h ../core/request.h ../core/requesttypes.h -priv.o: ../core/session.h ../core/done.h ../core/getparser.h -priv.o: ../core/httpsimpleparser.h ../core/postparser.h -priv.o: ../core/cookieparser.h ../core/item.h ../core/db.h ../core/error.h +priv.o: ../core/lastcontainer.h ../core/mounts.h ../core/mount.h +priv.o: ../core/request.h ../core/requesttypes.h ../core/session.h +priv.o: ../core/done.h ../core/getparser.h ../core/httpsimpleparser.h +priv.o: ../core/postparser.h ../core/cookieparser.h ../core/mountparser.h +priv.o: ../core/request.h ../core/item.h ../core/db.h ../core/error.h priv.o: ../core/user.h ../core/group.h ../core/users.h ../core/groups.h priv.o: ../core/log.h patterncacher.h ../app/templates.h sys.o: templates.h ../../ezc/src/ezc.h ../core/data.h ../core/misc.h @@ -74,33 +80,49 @@ sys.o: ../core/log.h ../core/item.h ../core/error.h ../core/dirs.h sys.o: ../core/db.h ../core/dircontainer.h ../core/user.h ../core/group.h sys.o: ../core/ugcontainer.h ../core/users.h ../core/groups.h sys.o: ../core/functions.h ../core/function.h ../core/functioncodeparser.h -sys.o: ../core/lastcontainer.h ../core/request.h ../core/requesttypes.h -sys.o: ../core/session.h ../core/done.h ../core/getparser.h -sys.o: ../core/httpsimpleparser.h ../core/postparser.h ../core/cookieparser.h -sys.o: ../core/item.h ../core/db.h ../core/error.h ../core/user.h -sys.o: ../core/group.h ../core/users.h ../core/groups.h ../core/log.h -sys.o: patterncacher.h ../app/templates.h +sys.o: ../core/lastcontainer.h ../core/mounts.h ../core/mount.h +sys.o: ../core/request.h ../core/requesttypes.h ../core/session.h +sys.o: ../core/done.h ../core/getparser.h ../core/httpsimpleparser.h +sys.o: ../core/postparser.h ../core/cookieparser.h ../core/mountparser.h +sys.o: ../core/request.h ../core/item.h ../core/db.h ../core/error.h +sys.o: ../core/user.h ../core/group.h ../core/users.h ../core/groups.h +sys.o: ../core/log.h patterncacher.h ../app/templates.h templates.o: templates.h ../../ezc/src/ezc.h ../core/data.h ../core/misc.h templates.o: ../core/log.h ../core/item.h ../core/error.h ../core/dirs.h templates.o: ../core/db.h ../core/dircontainer.h ../core/user.h templates.o: ../core/group.h ../core/ugcontainer.h ../core/users.h templates.o: ../core/groups.h ../core/functions.h ../core/function.h templates.o: ../core/functioncodeparser.h ../core/lastcontainer.h -templates.o: ../core/request.h ../core/requesttypes.h ../core/session.h -templates.o: ../core/done.h ../core/getparser.h ../core/httpsimpleparser.h -templates.o: ../core/postparser.h ../core/cookieparser.h ../core/item.h +templates.o: ../core/mounts.h ../core/mount.h ../core/request.h +templates.o: ../core/requesttypes.h ../core/session.h ../core/done.h +templates.o: ../core/getparser.h ../core/httpsimpleparser.h +templates.o: ../core/postparser.h ../core/cookieparser.h +templates.o: ../core/mountparser.h ../core/request.h ../core/item.h templates.o: ../core/db.h ../core/error.h ../core/user.h ../core/group.h templates.o: ../core/users.h ../core/groups.h ../core/log.h patterncacher.h templates.o: ../app/templates.h +thread.o: templates.h ../../ezc/src/ezc.h ../core/data.h ../core/misc.h +thread.o: ../core/log.h ../core/item.h ../core/error.h ../core/dirs.h +thread.o: ../core/db.h ../core/dircontainer.h ../core/user.h ../core/group.h +thread.o: ../core/ugcontainer.h ../core/users.h ../core/groups.h +thread.o: ../core/functions.h ../core/function.h ../core/functioncodeparser.h +thread.o: ../core/lastcontainer.h ../core/mounts.h ../core/mount.h +thread.o: ../core/request.h ../core/requesttypes.h ../core/session.h +thread.o: ../core/done.h ../core/getparser.h ../core/httpsimpleparser.h +thread.o: ../core/postparser.h ../core/cookieparser.h ../core/mountparser.h +thread.o: ../core/request.h ../core/item.h ../core/db.h ../core/error.h +thread.o: ../core/user.h ../core/group.h ../core/users.h ../core/groups.h +thread.o: ../core/log.h patterncacher.h ../app/templates.h user.o: templates.h ../../ezc/src/ezc.h ../core/data.h ../core/misc.h user.o: ../core/log.h ../core/item.h ../core/error.h ../core/dirs.h user.o: ../core/db.h ../core/dircontainer.h ../core/user.h ../core/group.h user.o: ../core/ugcontainer.h ../core/users.h ../core/groups.h user.o: ../core/functions.h ../core/function.h ../core/functioncodeparser.h -user.o: ../core/lastcontainer.h ../core/request.h ../core/requesttypes.h -user.o: ../core/session.h ../core/done.h ../core/getparser.h -user.o: ../core/httpsimpleparser.h ../core/postparser.h -user.o: ../core/cookieparser.h ../core/item.h ../core/db.h ../core/error.h +user.o: ../core/lastcontainer.h ../core/mounts.h ../core/mount.h +user.o: ../core/request.h ../core/requesttypes.h ../core/session.h +user.o: ../core/done.h ../core/getparser.h ../core/httpsimpleparser.h +user.o: ../core/postparser.h ../core/cookieparser.h ../core/mountparser.h +user.o: ../core/request.h ../core/item.h ../core/db.h ../core/error.h user.o: ../core/user.h ../core/group.h ../core/users.h ../core/groups.h user.o: ../core/log.h patterncacher.h ../app/templates.h who.o: templates.h ../../ezc/src/ezc.h ../core/data.h ../core/misc.h @@ -108,13 +130,14 @@ who.o: ../core/log.h ../core/item.h ../core/error.h ../core/dirs.h who.o: ../core/db.h ../core/dircontainer.h ../core/user.h ../core/group.h who.o: ../core/ugcontainer.h ../core/users.h ../core/groups.h who.o: ../core/functions.h ../core/function.h ../core/functioncodeparser.h -who.o: ../core/lastcontainer.h ../core/request.h ../core/requesttypes.h -who.o: ../core/session.h ../core/done.h ../core/getparser.h -who.o: ../core/httpsimpleparser.h ../core/postparser.h ../core/cookieparser.h -who.o: ../core/item.h ../core/db.h ../core/error.h ../core/user.h -who.o: ../core/group.h ../core/users.h ../core/groups.h ../core/log.h -who.o: patterncacher.h ../app/templates.h ../core/sessioncontainer.h -who.o: ../core/requestcontroller.h ../core/data.h ../core/request.h +who.o: ../core/lastcontainer.h ../core/mounts.h ../core/mount.h +who.o: ../core/request.h ../core/requesttypes.h ../core/session.h +who.o: ../core/done.h ../core/getparser.h ../core/httpsimpleparser.h +who.o: ../core/postparser.h ../core/cookieparser.h ../core/mountparser.h +who.o: ../core/request.h ../core/item.h ../core/db.h ../core/error.h +who.o: ../core/user.h ../core/group.h ../core/users.h ../core/groups.h +who.o: ../core/log.h patterncacher.h ../app/templates.h +who.o: ../core/sessioncontainer.h ../core/requestcontroller.h ../core/data.h who.o: ../content/content.h ../templates/templates.h ../core/misc.h who.o: ../core/function.h ../core/functionparser.h ../app/content.h who.o: ../core/sessionmanager.h ../core/sessioncontainer.h diff --git a/templates/templates.cpp b/templates/templates.cpp index 9ee0174..4166831 100755 --- a/templates/templates.cpp +++ b/templates/templates.cpp @@ -25,6 +25,8 @@ Ezc::Pattern pat_fun_rm; Ezc::Pattern pat_fun_who; Ezc::Pattern pat_fun_run; Ezc::Pattern pat_fun_last; +Ezc::Pattern pat_fun_thread; +Ezc::Pattern pat_fun_createthread; Ezc::Pattern pat_err_item_required; Ezc::Pattern pat_err_404; Ezc::Pattern pat_err_per_denied; @@ -108,6 +110,14 @@ Ezc::Pattern * p = 0; p = &pat_fun_last; break; + case FUN_THREAD: + p = &pat_fun_thread; + break; + + case FUN_CREATETHREAD: + p = &pat_fun_createthread; + break; + default: break; } @@ -318,6 +328,12 @@ void Templates::CreateFunctions() functions.Insert("last_tab_start", last_tab_start); functions.Insert("last_tab_end", last_tab_end); + + /* + thread + */ + functions.Insert("thread_subject", thread_subject); + // !! tymczasowa @@ -385,6 +401,12 @@ void Templates::Read() pat_item_info.Directory(data.templates); pat_item_info.ParseFile("item_info.html"); + pat_fun_thread.Directory(data.templates); + pat_fun_thread.ParseFile("fun_thread.html"); + + pat_fun_createthread.Directory(data.templates); + pat_fun_createthread.ParseFile("fun_createthread.html"); + CreateFunctions(); #ifdef APPTEMPLATES diff --git a/templates/templates.h b/templates/templates.h index f9fc13a..83a498a 100755 --- a/templates/templates.h +++ b/templates/templates.h @@ -175,6 +175,7 @@ namespace TemplatesFunctions void who_tab_time(Info & i); void who_tab_last_time(Info & i); + /* last */ @@ -185,6 +186,12 @@ namespace TemplatesFunctions void last_tab_end(Info & i); + /* + thread + */ + void thread_subject(Info & i); + + } // namespace TemplatesFunctions diff --git a/templates/thread.cpp b/templates/thread.cpp new file mode 100755 index 0000000..d74ea33 --- /dev/null +++ b/templates/thread.cpp @@ -0,0 +1,32 @@ +/* + * 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 "templates.h" + + +namespace TemplatesFunctions +{ + + +void thread_subject(Info & i) +{ + // !! jesli bedzie podzial na strony (np page:2) to bedzie trzeba w inny sposob ustalac tytul dla calego watku + + if( !request.item_table.empty() ) + HtmlEscape(i.out, request.item_table[0].subject); + +} + + + + +} // namespace TemplatesFunctions + + +