/** * 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"; } }
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);