function __AutoSetPerms($ID)
 {
     $ID = IntVal($ID);
     $arGroupPerms = CBlogUserGroupPerms::GetByID($ID);
     if (IntVal($arGroupPerms["POST_ID"]) == 0) {
         $dbBlogPosts = CBlogPost::GetList(array(), array("BLOG_ID" => $arGroupPerms["BLOG_ID"]), false, false, array("ID"));
         while ($arBlogPosts = $dbBlogPosts->Fetch()) {
             $dbGroupPerms1 = CBlogUserGroupPerms::GetList(array(), array("BLOG_ID" => $arGroupPerms["BLOG_ID"], "USER_GROUP_ID" => $arGroupPerms["USER_GROUP_ID"], "PERMS_TYPE" => $arGroupPerms["PERMS_TYPE"], "POST_ID" => $arBlogPosts["ID"]), false, false, array("ID", "AUTOSET", "PERMS"));
             if ($arGroupPerms1 = $dbGroupPerms1->Fetch()) {
                 if ($arGroupPerms1["AUTOSET"] == "Y" && $arGroupPerms["PERMS"] != $arGroupPerms1["PERMS"]) {
                     CBlogUserGroupPerms::Update($arGroupPerms1["ID"], array("PERMS" => $arGroupPerms["PERMS"]));
                 }
             } else {
                 CBlogUserGroupPerms::Add(array("BLOG_ID" => $arGroupPerms["BLOG_ID"], "USER_GROUP_ID" => $arGroupPerms["USER_GROUP_ID"], "PERMS_TYPE" => $arGroupPerms["PERMS_TYPE"], "POST_ID" => $arBlogPosts["ID"], "PERMS" => $arGroupPerms["PERMS"], "AUTOSET" => "Y"));
             }
         }
     }
 }
Esempio n. 2
0
 function SetPostPerms($ID, $arPerms = array(), $permsType = BLOG_PERMS_POST)
 {
     global $DB;
     $ID = IntVal($ID);
     $permsType = $permsType == BLOG_PERMS_COMMENT ? BLOG_PERMS_COMMENT : BLOG_PERMS_POST;
     $arPost = CBlogPost::GetByID($ID);
     if ($arPost) {
         $DB->StartTransaction();
         $arInsertedGroups = array();
         foreach ($arPerms as $key => $value) {
             $dbGroupPerms = CBlogUserGroupPerms::GetList(array(), array("BLOG_ID" => $arPost["BLOG_ID"], "USER_GROUP_ID" => $key, "PERMS_TYPE" => $permsType, "POST_ID" => $arPost["ID"]), false, false, array("ID"));
             if ($arGroupPerms = $dbGroupPerms->Fetch()) {
                 CBlogUserGroupPerms::Update($arGroupPerms["ID"], array("PERMS" => $value, "AUTOSET" => "N"));
             } else {
                 CBlogUserGroupPerms::Add(array("BLOG_ID" => $arPost["BLOG_ID"], "USER_GROUP_ID" => $key, "PERMS_TYPE" => $permsType, "POST_ID" => $arPost["ID"], "AUTOSET" => "N", "PERMS" => $value));
             }
             $arInsertedGroups[] = $key;
         }
         $dbResult = CBlogUserGroupPerms::GetList(array(), array("BLOG_ID" => $arPost["BLOG_ID"], "PERMS_TYPE" => $permsType, "POST_ID" => 0, "!USER_GROUP_ID" => $arInsertedGroups), false, false, array("ID", "USER_GROUP_ID", "PERMS"));
         while ($arResult = $dbResult->Fetch()) {
             $dbGroupPerms = CBlogUserGroupPerms::GetList(array(), array("BLOG_ID" => $arPost["BLOG_ID"], "USER_GROUP_ID" => $arResult["USER_GROUP_ID"], "PERMS_TYPE" => $permsType, "POST_ID" => $arPost["ID"]), false, false, array("ID"));
             if ($arGroupPerms = $dbGroupPerms->Fetch()) {
                 CBlogUserGroupPerms::Update($arGroupPerms["ID"], array("PERMS" => $arResult["PERMS"], "AUTOSET" => "Y"));
             } else {
                 CBlogUserGroupPerms::Add(array("BLOG_ID" => $arPost["BLOG_ID"], "USER_GROUP_ID" => $arResult["USER_GROUP_ID"], "PERMS_TYPE" => $permsType, "POST_ID" => $arPost["ID"], "AUTOSET" => "Y", "PERMS" => $arResult["PERMS"]));
             }
         }
         $DB->Commit();
     }
 }
Esempio n. 3
0
 function SetBlogPerms($ID, $arPerms = array(), $permsType = BLOG_PERMS_POST)
 {
     global $DB;
     $ID = IntVal($ID);
     $permsType = $permsType == BLOG_PERMS_COMMENT ? BLOG_PERMS_COMMENT : BLOG_PERMS_POST;
     $arBlog = CBlog::GetByID($ID);
     if ($arBlog) {
         $DB->StartTransaction();
         foreach ($arPerms as $key => $value) {
             $dbGroupPerms = CBlogUserGroupPerms::GetList(array(), array("BLOG_ID" => $ID, "USER_GROUP_ID" => $key, "PERMS_TYPE" => $permsType, "POST_ID" => 0), false, false, array("ID"));
             if ($arGroupPerms = $dbGroupPerms->Fetch()) {
                 CBlogUserGroupPerms::Update($arGroupPerms["ID"], array("PERMS" => $value));
             } else {
                 CBlogUserGroupPerms::Add(array("BLOG_ID" => $arBlog["ID"], "USER_GROUP_ID" => $key, "PERMS_TYPE" => $permsType, "POST_ID" => false, "AUTOSET" => "N", "PERMS" => $value));
             }
         }
         $DB->Commit();
     }
 }