From 7f77b6e3ec12bff699a25143dbb7d80c729a50d7 Mon Sep 17 00:00:00 2001 From: Tomasz Sowa Date: Mon, 6 Dec 2010 01:37:30 +0000 Subject: [PATCH] added ezc function: user_is_in_all_groups changed: ezc function user_is_in_group (we can provide more than one group now) git-svn-id: svn://ttmath.org/publicrep/winix/trunk@691 e52654a7-88a9-db11-a3e9-0013d4bc506e --- core/basethread.cpp | 2 +- core/ugcontainer.h | 2 +- templates/templates.cpp | 1 + templates/templates.h | 1 + templates/user.cpp | 34 ++++++++++++++++++++++++++++++---- 5 files changed, 34 insertions(+), 6 deletions(-) diff --git a/core/basethread.cpp b/core/basethread.cpp index 3783c34..dd80482 100755 --- a/core/basethread.cpp +++ b/core/basethread.cpp @@ -87,7 +87,7 @@ void BaseThread::BaseUninit() bool BaseThread::BaseSignalReceived() { -bool make_do; +bool make_do = false; try { diff --git a/core/ugcontainer.h b/core/ugcontainer.h index 9b43257..a001dfd 100755 --- a/core/ugcontainer.h +++ b/core/ugcontainer.h @@ -27,7 +27,7 @@ public: typedef typename Table::iterator Iterator; typedef typename Table::size_type SizeType; - typedef typename std::map TableId; + typedef typename std::map TableId; typedef typename std::map TableName; diff --git a/templates/templates.cpp b/templates/templates.cpp index 0705a9e..56002c9 100755 --- a/templates/templates.cpp +++ b/templates/templates.cpp @@ -351,6 +351,7 @@ void Templates::CreateFunctions() ezc_functions.Insert("user_logged", user_logged); ezc_functions.Insert("user_super_user", user_super_user); ezc_functions.Insert("user_is_in_group", user_is_in_group); + ezc_functions.Insert("user_is_in_all_groups", user_is_in_all_groups); ezc_functions.Insert("user_can_use_html", user_can_use_html); ezc_functions.Insert("user_can_use_bbcode", user_can_use_bbcode); ezc_functions.Insert("user_can_use_raw", user_can_use_raw); diff --git a/templates/templates.h b/templates/templates.h index eb9e1a2..ccebe71 100755 --- a/templates/templates.h +++ b/templates/templates.h @@ -283,6 +283,7 @@ namespace TemplatesFunctions void user_logged(Info & i); void user_super_user(Info & i); void user_is_in_group(Info & i); + void user_is_in_all_groups(Info & i); void user_can_use_html(Info & i); void user_can_use_bbcode(Info & i); void user_can_use_raw(Info & i); diff --git a/templates/user.cpp b/templates/user.cpp index 25d568e..e3e1e26 100755 --- a/templates/user.cpp +++ b/templates/user.cpp @@ -34,17 +34,43 @@ void user_name(Info & i) } +// should be at least in one group +// !! moze lepsza nazwa? void user_is_in_group(Info & i) { - long gid = system->groups.GetGroupId(i.par); - - if( !request->session->puser || gid == -1 ) + if( !request->session->puser || i.params.empty() ) return; - i.res = request->session->puser->IsMemberOf(gid); + for(size_t a=0 ; agroups.GetGroupId(i.params[a]); + + if( gid!=-1 && request->session->puser->IsMemberOf(gid) ) + { + i.res = true; + break; + } + } } +// !! moze lepsza nazwa? +void user_is_in_all_groups(Info & i) +{ + if( !request->session->puser || i.params.empty() ) + return; + + for(size_t a=0 ; agroups.GetGroupId(i.params[a]); + + if( gid==-1 || !request->session->puser->IsMemberOf(gid) ) + return; + } + + i.res = true; +} + void user_super_user(Info & i) {