Просмотр исходного кода

#2446 Admin/moderator should see when particular member level expires

RomanL 6 лет назад
Родитель
Сommit
a1cec6f103

+ 9 - 1
install/sql/system.sql

@@ -775,6 +775,10 @@ INSERT INTO `sys_acl_actions` (`Module`, `Name`, `AdditionalParamName`, `Title`,
 ('system', 'show membership levels in privacy groups', NULL, '_sys_acl_action_show_membership_levels_in_privacy_groups', '_sys_acl_action_show_membership_levels_in_privacy_groups_desc', 0, 0);
 SET @iIdActionShowMembershipLevelsInPrivacyGroups = LAST_INSERT_ID();
 
+INSERT INTO `sys_acl_actions` (`Module`, `Name`, `AdditionalParamName`, `Title`, `Desc`, `Countable`, `DisabledForLevels`) VALUES
+('system', 'show membership private info', NULL, '_sys_acl_action_show_membership_private_info', '_sys_acl_action_show_membership_private_info_desc', 0, 0);
+SET @iIdActionShowMembershipPrivateInfo = LAST_INSERT_ID();
+
 CREATE TABLE `sys_acl_actions_track` (
   `IDAction` int(10) unsigned NOT NULL DEFAULT '0',
   `IDMember` int(10) unsigned NOT NULL default '0',
@@ -940,7 +944,11 @@ INSERT INTO `sys_acl_matrix` (`IDLevel`, `IDAction`) VALUES
 (@iAdministrator, @iIdActionSwitchToAnyProfile),
 
 -- show membership levels in privacy groups
-(@iAdministrator, @iIdActionShowMembershipLevelsInPrivacyGroups);
+(@iAdministrator, @iIdActionShowMembershipLevelsInPrivacyGroups),
+
+-- show membership private info
+(@iModerator, @iIdActionShowMembershipPrivateInfo),
+(@iAdministrator, @iIdActionShowMembershipPrivateInfo);
 
 
 CREATE TABLE `sys_acl_levels` (

+ 2 - 0
modules/boonex/english/data/langs/system/en.xml

@@ -1749,6 +1749,8 @@
 	<string name="_sys_acl_action_set_acl_level_desc"><![CDATA[Set membership level for profiles]]></string>
   <string name="_sys_acl_action_show_membership_levels_in_privacy_groups"><![CDATA[Show membership levels in privacy groups]]></string>
   <string name="_sys_acl_action_show_membership_levels_in_privacy_groups_desc"><![CDATA[Show membership levels in privacy groups]]></string>
+  <string name="_sys_acl_action_show_membership_private_info"><![CDATA[Show membership private info]]></string>
+  <string name="_sys_acl_action_show_membership_private_info_desc"><![CDATA[Show membership private info]]></string>
   <string name="_sys_acl_action_set_badge"><![CDATA[Set badge]]></string>
   <string name="_sys_acl_action_set_badge_desc"><![CDATA[Set badge for content]]></string>
   <string name="_sys_acl_action_switch_to_any_profile"><![CDATA[Switch to any profile]]></string>

+ 2 - 0
modules/boonex/russian/data/langs/system/ru.xml

@@ -1737,6 +1737,8 @@
 	<string name="_sys_acl_action_set_acl_level_desc"><![CDATA[Назначить членство для профилей]]></string>
   <string name="_sys_acl_action_show_membership_levels_in_privacy_groups"><![CDATA[Показывать членство в группах конфиденциальности]]></string>
   <string name="_sys_acl_action_show_membership_levels_in_privacy_groups_desc"><![CDATA[Показывать членство в группах конфиденциальности]]></string>
+  <string name="_sys_acl_action_show_membership_private_info"><![CDATA[Показывать конфиденциальную информацию о членстве]]></string>
+  <string name="_sys_acl_action_show_membership_private_info_desc"><![CDATA[Показывать конфиденциальную информацию о членстве]]></string>
   <string name="_sys_acl_action_set_badge"><![CDATA[Назначение бейджей]]></string>
   <string name="_sys_acl_action_set_badge_desc"><![CDATA[Назначение бейджей для контента]]></string>
   <string name="_sys_acl_action_switch_to_any_profile"><![CDATA[Switch to any profile]]></string>

+ 5 - 2
template/scripts/BxBaseAcl.php

@@ -24,11 +24,14 @@ class BxBaseAcl extends BxDolAcl
     	if(empty($aLevel) || !is_array($aLevel))
             return '';
 
-        $iUserId = bx_get_logged_profile_id();
+        $iLoggedProfileId = bx_get_logged_profile_id();
         $aLevelInfo = $this->getMembershipInfo($aLevel['id']);
 
+		
+		$aCheck = checkActionModule($iLoggedProfileId, 'show membership private info', 'system', false);
+		
         $aTmplVarsPrivateInfo = array();
-        $bTmplVarsPrivateInfo = $iProfileId == $iUserId && !empty($aLevel['date_starts']);
+        $bTmplVarsPrivateInfo = ((BxDolProfile::getInstance($iProfileId)->getAccountId() == BxDolProfile::getInstance($iLoggedProfileId)->getAccountId() || $aCheck[CHECK_ACTION_RESULT] === CHECK_ACTION_RESULT_ALLOWED) && !empty($aLevel['date_starts']));
         if($bTmplVarsPrivateInfo)
             $aTmplVarsPrivateInfo = array(
                 'date_start' => bx_time_js($aLevel['date_starts']),