예제 #1
0
 protected static function _socnet_check($USER, $iblock_type_id, $iblock_id, $socnet_group_id)
 {
     $type_check = CListPermissions::_socnet_type_check($USER, $iblock_type_id, $socnet_group_id);
     if ($type_check < 0) {
         return $type_check;
     }
     $iblock_check = CListPermissions::_iblock_check($iblock_type_id, $iblock_id);
     if ($iblock_check < 0) {
         return $iblock_check;
     }
     $iblock_socnet_group_id = CIBlock::GetArrayByID($iblock_id, "SOCNET_GROUP_ID");
     if ($iblock_socnet_group_id != $socnet_group_id) {
         return CListPermissions::ACCESS_DENIED;
     }
     $socnet_role = CSocNetUserToGroup::GetUserRole($USER->GetID(), $socnet_group_id);
     if ($socnet_role !== "A" && CIBlock::GetArrayByID($iblock_id, "RIGHTS_MODE") === "E") {
         return '';
     }
     static $roles = array("A", "E", "K", "T");
     if (!in_array($socnet_role, $roles)) {
         if ($USER->IsAuthorized()) {
             $socnet_role = "L";
         } else {
             $socnet_role = "N";
         }
     }
     $arSocnetPerm = CLists::GetSocnetPermission($iblock_id);
     return $arSocnetPerm[$socnet_role];
 }
예제 #2
0
 /**
  * @param $USER CUser
  * @param $iblock_type_id string
  * @param $iblock_id int
  * @param $socnet_group_id int
  * @return string
  */
 protected static function _socnet_check($USER, $iblock_type_id, $iblock_id, $socnet_group_id)
 {
     $type_check = CListPermissions::_socnet_type_check($USER, $iblock_type_id, $socnet_group_id);
     if ($type_check < 0) {
         return $type_check;
     }
     $iblock_check = CListPermissions::_iblock_check($iblock_type_id, $iblock_id);
     if ($iblock_check < 0) {
         return $iblock_check;
     }
     $iblock_socnet_group_id = CIBlock::GetArrayByID($iblock_id, "SOCNET_GROUP_ID");
     if ($iblock_socnet_group_id != $socnet_group_id) {
         return CListPermissions::ACCESS_DENIED;
     }
     $socnet_role = CSocNetUserToGroup::GetUserRole($USER->GetID(), $socnet_group_id);
     if ($socnet_role !== "A" && CIBlock::GetArrayByID($iblock_id, "RIGHTS_MODE") === "E") {
         return '';
     }
     static $roles = array("A", "E", "K", "T");
     if (!in_array($socnet_role, $roles)) {
         if ($USER->IsAuthorized()) {
             $socnet_role = "L";
         } else {
             $socnet_role = "N";
         }
     }
     if (!CSocNetFeaturesPerms::CanPerformOperation($USER->GetID(), SONET_ENTITY_GROUP, $socnet_group_id, "group_lists", "write", CSocNetUser::IsCurrentUserModuleAdmin())) {
         return "D";
     } else {
         $arSocnetPerm = CLists::GetSocnetPermission($iblock_id);
         return $arSocnetPerm[$socnet_role];
     }
 }