/**
  * Creates a PermissionsEditor
  *
  * @param SiteSettings $settings
  * @param DataEditControl $controlling_editor
  * @param string $s_id
  * @param string $s_title
  */
 public function __construct(SiteSettings $settings, DataEditControl $controlling_editor, $s_id, $s_title)
 {
     $this->SetDataObjectClass('IdValue');
     $this->SetDataObjectMethods('GetId', '', '');
     parent::__construct($settings, $controlling_editor, $s_id, $s_title, array("Permission", "Resource URI"));
     # initialise arrays
     $this->permissions = array(new IdValue(PermissionType::ViewPage(), ucfirst(PermissionType::Text(PermissionType::ViewPage()))), new IdValue(PermissionType::ForumAddMessage(), ucfirst(PermissionType::Text(PermissionType::ForumAddMessage()))), new IdValue(PermissionType::EditPersonalInfo(), ucfirst(PermissionType::Text(PermissionType::EditPersonalInfo()))), new IdValue(PermissionType::MANAGE_CATEGORIES, ucfirst(PermissionType::Text(PermissionType::MANAGE_CATEGORIES))), new IdValue(PermissionType::MANAGE_USERS_AND_PERMISSIONS, ucfirst(PermissionType::Text(PermissionType::MANAGE_USERS_AND_PERMISSIONS))), new IdValue(PermissionType::PageSubscribe(), ucfirst(PermissionType::Text(PermissionType::PageSubscribe()))), new IdValue(PermissionType::MANAGE_URLS, ucfirst(PermissionType::Text(PermissionType::MANAGE_URLS))), new IdValue(PermissionType::MANAGE_SEARCH, ucfirst(PermissionType::Text(PermissionType::MANAGE_SEARCH))), new IdValue(PermissionType::VIEW_ADMINISTRATION_PAGE, ucfirst(PermissionType::Text(PermissionType::VIEW_ADMINISTRATION_PAGE))), new IdValue(PermissionType::VIEW_WORDPRESS_LOGIN, ucfirst(PermissionType::Text(PermissionType::VIEW_WORDPRESS_LOGIN))), new IdValue(PermissionType::EXCLUDE_FROM_ANALYTICS, ucfirst(PermissionType::Text(PermissionType::EXCLUDE_FROM_ANALYTICS))), new IdValue(PermissionType::MANAGE_TEAMS, ucfirst(PermissionType::Text(PermissionType::MANAGE_TEAMS))), new IdValue(PermissionType::MANAGE_COMPETITIONS, ucfirst(PermissionType::Text(PermissionType::MANAGE_COMPETITIONS))), new IdValue(PermissionType::MANAGE_GROUNDS, ucfirst(PermissionType::Text(PermissionType::MANAGE_GROUNDS))), new IdValue(PermissionType::ADD_MATCH, ucfirst(PermissionType::Text(PermissionType::ADD_MATCH))), new IdValue(PermissionType::EDIT_MATCH, ucfirst(PermissionType::Text(PermissionType::EDIT_MATCH))), new IdValue(PermissionType::DELETE_MATCH, ucfirst(PermissionType::Text(PermissionType::DELETE_MATCH))), new IdValue(PermissionType::MANAGE_MATCHES, ucfirst(PermissionType::Text(PermissionType::MANAGE_MATCHES))), new IdValue(PermissionType::MANAGE_PLAYERS, ucfirst(PermissionType::Text(PermissionType::MANAGE_PLAYERS))), new IdValue(PermissionType::MANAGE_STATISTICS, ucfirst(PermissionType::Text(PermissionType::MANAGE_STATISTICS))));
 }
 /**
  * Gets a description of a permission
  * @param int $type
  * @return string
  */
 public static function Text($type)
 {
     switch ($type) {
         case PermissionType::ViewPage():
             return 'view a page';
         case PermissionType::ForumAddMessage():
             return "post a forum message";
         case PermissionType::EditPersonalInfo():
             return "edit own profile";
         case PermissionType::MANAGE_CATEGORIES:
             return "manage categories";
         case PermissionType::MANAGE_USERS_AND_PERMISSIONS:
             return "manage users and permissions";
         case PermissionType::PageSubscribe():
             return "subscribe to alerts for comments on pages";
         case PermissionType::MANAGE_URLS:
             return "manage URLs";
         case PermissionType::MANAGE_SEARCH:
             return "manage search";
         case PermissionType::VIEW_ADMINISTRATION_PAGE:
             return "view the admin menu";
         case PermissionType::VIEW_WORDPRESS_LOGIN:
             return "view the WordPress login link";
         case PermissionType::EXCLUDE_FROM_ANALYTICS:
             return "opt out of Google Analytics";
         case PermissionType::MANAGE_TEAMS:
             return "manage teams and clubs";
         case PermissionType::MANAGE_COMPETITIONS:
             return "manage competitions and seasons";
         case PermissionType::MANAGE_GROUNDS:
             return "manage grounds";
         case PermissionType::ADD_MATCH:
             return 'add matches';
         case PermissionType::EDIT_MATCH:
             return "edit own matches, and results of any match";
         case PermissionType::DELETE_MATCH:
             return "delete own matches";
         case PermissionType::MANAGE_MATCHES:
             return "manage matches";
         case PermissionType::MANAGE_PLAYERS:
             return "manage players";
         case PermissionType::MANAGE_STATISTICS:
             return "manage match statistics";
     }
 }
コード例 #3
0
require_once 'forums/subscription-manager.class.php';
require_once 'forums/subscription-grid.class.php';
class SubscriptionManagerPage extends StoolballPage
{
    private $a_subs;
    function OnLoadPageData()
    {
        $sub_manager = new SubscriptionManager($this->GetSettings(), $this->GetDataConnection());
        # process delete request
        if (isset($_GET['delete']) and is_numeric($_GET['delete']) and (isset($_GET['type']) and is_numeric($_GET['type']))) {
            $sub_manager->DeleteSubscription($_GET['delete'], $_GET['type'], AuthenticationManager::GetUser()->GetId());
        }
        # get subscription data
        $sub_manager->ReadSubscriptionsForUser(AuthenticationManager::GetUser()->GetId());
        $this->a_subs = $sub_manager->GetItems();
    }
    function OnPrePageLoad()
    {
        $this->SetPageTitle('Email alerts for ' . AuthenticationManager::GetUser()->GetName());
    }
    function OnPageLoad()
    {
        echo new XhtmlElement('h1', Html::Encode($this->GetPageTitle()));
        echo '<p>You can subscribe to emails for ' . Html::Encode($this->GetSettings()->GetSiteName()) . '\'s match comments. ' . 'Once you have subscribed, as soon as anyone else adds their comments,  you\'ll get an email.</p>';
        # display tables of subscriptions
        echo new SubscriptionGrid($this->GetSettings(), $this->a_subs);
        echo '<form method="get" action="' . Html::Encode($this->GetSettings()->GetUrl('AccountEdit')) . '"><div>' . '<input type="submit" class="submit" value="Done" title="Return to your edit profile options page" />' . '</div></form>';
    }
}
new SubscriptionManagerPage(new StoolballSettings(), PermissionType::PageSubscribe(), false);