本文整理汇总了PHP中Factory::getUserService方法的典型用法代码示例。如果您正苦于以下问题:PHP Factory::getUserService方法的具体用法?PHP Factory::getUserService怎么用?PHP Factory::getUserService使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Factory
的用法示例。
在下文中一共展示了Factory::getUserService方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: my_sites
function my_sites()
{
require_once __DIR__ . '/../../../lib/Gocdb_Services/Factory.php';
require_once __DIR__ . '/../components/Get_User_Principle.php';
$params = array();
$userServ = \Factory::getUserService();
$dn = Get_User_Principle();
$user = \Factory::getUserService()->getUserByPrinciple($dn);
if (is_null($user)) {
show_view('error.php', "Unregistered users can't hold a role over sites, NGIs or service groups.");
die;
}
$sites = $userServ->getSitesFromRoles($user);
if (!empty($sites)) {
$params['sites_from_roles'] = $sites;
}
$sGroups = $userServ->getSGroupsFromRoles($user);
if (!empty($sGroups)) {
$params['sgroups_from_roles'] = $sGroups;
}
$ngis = $userServ->getNgisFromRoles($user);
if (!empty($ngis)) {
$params['ngis_from_roles'] = $ngis;
}
$projects = $userServ->getProjectsFromRoles($user);
if (!empty($projects)) {
$params['projects_from_roles'] = $projects;
}
$title = "My Sites and Groups";
show_view('my_sites.php', $params, $title);
}
示例2: delete_project
function delete_project()
{
if (true) {
throw new Exception("Project deletion is disabled - see controller to enable");
}
if (!isset($_REQUEST['id']) || !is_numeric($_REQUEST['id'])) {
throw new Exception("An id must be specified");
}
$dn = Get_User_Principle();
$user = \Factory::getUserService()->getUserByPrinciple($dn);
//Check the portal is not in read only mode, returns exception if it is and user is not an admin
checkPortalIsNotReadOnlyOrUserIsAdmin($user);
//Get the project from the id
$serv = \Factory::getProjectService();
$project = $serv->getProject($_REQUEST['id']);
//keep the name to display later
$params['Name'] = $project->getName();
// Delete the project. This fuction will check the user is allowed to
// perform this action and throw an error if not (only gocdb admins allowed).
// Project deletion does not delete child NGIs and automatically cascade
// deletes the user Roles over the OwnedEntity.
try {
$serv->deleteProject($project, $user);
} catch (\Exception $e) {
show_view('error.php', $e->getMessage());
die;
}
show_view("project/deleted_project.php", $params, $params['Name'] . 'deleted');
}
示例3: view_se
function view_se()
{
require_once __DIR__ . '/../utils.php';
require_once __DIR__ . '/../../../web_portal/components/Get_User_Principle.php';
if (!isset($_GET['id']) || !is_numeric($_GET['id'])) {
throw new Exception("An id must be specified");
}
$id = $_GET['id'];
//get user for case that portal is read only and user is admin, so they can still see edit links
$dn = Get_User_Principle();
$user = \Factory::getUserService()->getUserByPrinciple($dn);
$serv = \Factory::getServiceService();
$params['authenticated'] = false;
if ($user != null) {
$params['authenticated'] = true;
}
$params['portalIsReadOnly'] = portalIsReadOnlyAndUserIsNotAdmin($user);
$se = $serv->getService($id);
// Does current viewer have edit permissions over object ?
$params['ShowEdit'] = false;
if ($user != null && count($serv->authorizeAction(\Action::EDIT_OBJECT, $se, $user)) >= 1) {
$params['ShowEdit'] = true;
}
$title = $se->getHostName() . " - " . $se->getServiceType()->getName();
$params['se'] = $se;
$params['sGroups'] = $se->getServiceGroups();
$params['Scopes'] = $serv->getScopesWithParentScopeInfo($se);
// Show upcoming downtimes and downtimes that started within the last thirty days
$downtimes = $serv->getDowntimes($id, 31);
$params['Downtimes'] = $downtimes;
show_view("service/view_service.php", $params, $title);
}
示例4: submit
function submit()
{
//Only administrators can delete sites, double check user is an administrator
checkUserIsAdmin();
if (!isset($_REQUEST['id']) || !is_numeric($_REQUEST['id'])) {
throw new Exception("An id must be specified");
}
if (isset($_REQUEST['id'])) {
$ngi = \Factory::getNgiService()->getNgi($_REQUEST['id']);
} else {
throw new \Exception("A NGI must be specified in the url");
}
//save name to display later
$params['Name'] = $ngi->getName();
$dn = Get_User_Principle();
$user = \Factory::getUserService()->getUserByPrinciple($dn);
//remove ngi
try {
\Factory::getNgiService()->deleteNgi($ngi, $user);
} catch (\Exception $e) {
show_view('error.php', $e->getMessage());
die;
}
show_view('/site/deleted_site.php', $params);
}
示例5: submit
/**
* Retrieves the NGIS to be added and then add them.
* @return null
*/
function submit()
{
require_once __DIR__ . '/../../../../htdocs/web_portal/components/Get_User_Principle.php';
//Get user details (for the remove ngi function so it can check permissions)
$dn = Get_User_Principle();
$user = \Factory::getUserService()->getUserByPrinciple($dn);
//Get a project and NGI services
$projectServ = \Factory::getProjectService();
$ngiServ = \Factory::getNgiService();
//Get the posted service type data
$projectId = $_REQUEST['ID'];
$ngiIds = $_REQUEST['NGIs'];
//turn ngiIds into NGIs
$ngis = new Doctrine\Common\Collections\ArrayCollection();
foreach ($ngiIds as $ngiId) {
$ngis[] = $ngiServ->getNgi($ngiId);
}
//get the project
$project = $projectServ->getProject($projectId);
try {
//function will throw error if user does not have the correct permissions
$projectServ->addNgisToProject($project, $ngis, $user);
$params = array('Name' => $project->getName(), 'ID' => $project->getId(), 'NGIs' => $ngis);
show_view("project/added_ngis.php", $params, "Success");
} catch (Exception $e) {
show_view('error.php', $e->getMessage());
die;
}
}
示例6: view_revoke_request
function view_revoke_request()
{
require_once __DIR__ . '/../../../../lib/Gocdb_Services/Factory.php';
require_once __DIR__ . '/../../components/Get_User_Principle.php';
require_once __DIR__ . '/../utils.php';
$dn = Get_User_Principle();
$user = \Factory::getUserService()->getUserByPrinciple($dn);
if ($user == null) {
throw new Exception("Unregistered users can't revoke roles");
}
//Check the portal is not in read only mode, returns exception if it is and user is not an admin
checkPortalIsNotReadOnlyOrUserIsAdmin($user);
$requestId = $_POST['id'];
if (!isset($requestId) || !is_numeric($requestId)) {
throw new LogicException("Invalid role id");
}
// Either a self revocation or revoke is requested by 2nd party
// check to see that user has permission to revoke role
$role = \Factory::getRoleService()->getRoleById($requestId);
\Factory::getRoleService()->revokeRole($role, $user);
if ($role->getUser() != $user) {
// revoke by 2nd party
show_view('political_role/role_revoked.php');
} else {
// Self revocation
show_view('political_role/role_self_revoked.php');
}
die;
}
示例7: CheckCurrentUserCanEditProject
function CheckCurrentUserCanEditProject(\Project $project)
{
require_once __DIR__ . '/../../web_portal/components/Get_User_Principle.php';
$dn = Get_User_Principle();
$user = \Factory::getUserService()->getUserByPrinciple($dn);
$enablingRoles = \Factory::getProjectService()->authorizeAction('ACTION_EDIT_OBJECT', $project, $user);
if (count($enablingRoles) == 0) {
throw new Exception("You do not have a role that enables you to edit this project");
}
}
示例8: draw
/**
* Draw the add service form
* @param \User $user current user
* @return null
*/
function draw($user)
{
if (is_null($user)) {
throw new Exception("Unregistered users can't add a service .");
}
/* Optional site parameter is set if a user clicked
* "add SE to this site" on the view site page */
$site = null;
if (isset($_REQUEST['siteId'])) {
$site = \Factory::getSiteService()->getSite($_REQUEST['siteId']);
if ($site == null) {
throw new Exception('Invalid site');
}
if (count(\Factory::getSiteService()->authorizeAction(\Action::SITE_ADD_SERVICE, $site, $user)) == 0) {
throw new Exception('You do not have permission to add a service to this site');
}
}
// Add sites which user has required action permission to array.
$allUserSites = \Factory::getUserService()->getSitesFromRoles($user);
$sites = array();
foreach ($allUserSites as $s) {
if (count(\Factory::getSiteService()->authorizeAction(\Action::SITE_ADD_SERVICE, $s, $user)) != 0) {
$sites[] = $s;
}
}
//For admin users, return all sites instead.
if ($user->isAdmin()) {
$sites = \Factory::getSiteService()->getSitesBy();
}
if (count($sites) == 0 and !$user->isAdmin()) {
throw new Exception("You need at least one NGI or Site level role to add a new service.");
}
$serviceTypes = \Factory::getServiceService()->getServiceTypes();
//If a site has been specified get scopes wit that sites scopes selected, otherwise get the default
if (!is_null($serviceTypes) && $site instanceof \Site) {
$scopes = \Factory::getScopeService()->getScopesSelectedArray($site->getScopes());
} else {
$scopes = \Factory::getScopeService()->getDefaultScopesSelectedArray();
}
//get the number of scopes that we require
$numberScopesRequired = \Factory::getConfigService()->getMinimumScopesRequired('service');
// remove the deprecated CE type (temp hack)
foreach ($serviceTypes as $key => $st) {
if ($st->getName() == "CE") {
unset($serviceTypes[$key]);
}
}
$params = array('sites' => $sites, 'serviceTypes' => $serviceTypes, 'scopes' => $scopes, 'site' => $site, 'numberOfScopesRequired' => $numberScopesRequired);
//Check that there is at least one Site available before allowing a user to add a service.
if ($params['sites'] == null) {
show_view('error.php', "GocDB requires one or more Sites to be able to add a service.");
}
show_view("service/add_service.php", $params);
}
示例9: show_all
function show_all()
{
//Check the user has permission to see the page, will throw exception
//if correct permissions are lacking
checkUserIsAdmin();
$dn = Get_User_Principle();
$user = \Factory::getUserService()->getUserByPrinciple($dn);
$serviceTypes = \Factory::getServiceTypeService()->getServiceTypes();
$params['ServiceTypes'] = $serviceTypes;
$params['portalIsReadOnly'] = portalIsReadOnlyAndUserIsNotAdmin($user);
show_view('admin/view_service_types.php', $params, 'Service Types');
}
示例10: view_ngi
function view_ngi()
{
require_once __DIR__ . '/../../../../lib/Gocdb_Services/Factory.php';
require_once __DIR__ . '/../utils.php';
require_once __DIR__ . '/../../../web_portal/components/Get_User_Principle.php';
if (!isset($_GET['id']) || !is_numeric($_GET['id'])) {
throw new Exception("An id must be specified");
}
$ngiId = $_GET['id'];
//get user for case that portal is read only and user is admin, so they can still see edit links
$dn = Get_User_Principle();
$user = \Factory::getUserService()->getUserByPrinciple($dn);
$params['portalIsReadOnly'] = portalIsReadOnlyAndUserIsNotAdmin($user);
$params['UserIsAdmin'] = false;
if (!is_null($user)) {
$params['UserIsAdmin'] = $user->isAdmin();
}
$params['authenticated'] = false;
if ($user != null) {
$params['authenticated'] = true;
}
$ngiServ = \Factory::getNgiService();
$siteServ = \Factory::getSiteService();
$ngi = $ngiServ->getNgi($ngiId);
// Does current viewer have edit permissions over NGI ?
$params['ShowEdit'] = false;
if (count($ngiServ->authorizeAction(\Action::EDIT_OBJECT, $ngi, $user)) >= 1) {
$params['ShowEdit'] = true;
}
// Add ngi to params
$params['ngi'] = $ngi;
// Add all roles over ngi to params
$allRoles = $ngi->getRoles();
$roles = array();
foreach ($allRoles as $role) {
if ($role->getStatus() == \RoleStatus::GRANTED) {
$roles[] = $role;
}
}
$params['roles'] = $roles;
// Add ngi's project to params
$projects = $ngi->getProjects();
$params['Projects'] = $projects;
// Add sites and scopes to params
$params['SitesAndScopes'] = array();
foreach ($ngi->getSites() as $site) {
$params['SitesAndScopes'][] = array('Site' => $site, 'Scopes' => $siteServ->getScopesWithParentScopeInfo($site));
}
// Add RoleActionRecords to params
$params['RoleActionRecords'] = \Factory::getRoleService()->getRoleActionRecordsById_Type($ngi->getId(), 'ngi');
show_view('ngi/view_ngi.php', $params, $ngi->getName());
die;
}
示例11: edit_property
/**
* Controller for an edit site property request
* @global array $_POST only set if the browser has POSTed data
* @return null
*/
function edit_property()
{
$dn = Get_User_Principle();
$user = \Factory::getUserService()->getUserByPrinciple($dn);
//Check the portal is not in read only mode, returns exception if it is and user is not an admin
checkPortalIsNotReadOnlyOrUserIsAdmin($user);
if ($_POST) {
submit($user);
} else {
draw($user);
}
}
示例12: view_user
function view_user()
{
require_once __DIR__ . '/../../../../lib/Gocdb_Services/Factory.php';
require_once __DIR__ . '/../../components/Get_User_Principle.php';
if (!isset($_GET['id']) || !is_numeric($_GET['id'])) {
throw new Exception("An id must be specified");
}
$userId = $_GET['id'];
$user = \Factory::getUserService()->getUser($userId);
if ($user === null) {
throw new Exception("No user with that ID");
}
$params['user'] = $user;
// get the targetUser's roles
$roles = \Factory::getRoleService()->getUserRoles($user, \RoleStatus::GRANTED);
//$user->getRoles();
$callingUser = \Factory::getUserService()->getUserByPrinciple(Get_User_Principle());
// can the calling user revoke the targetUser's roles?
if ($user != $callingUser) {
foreach ($roles as $r) {
//$ownedEntityDetail = $r->getOwnedEntity()->getName(). ' ('. $r->getOwnedEntity()->getType().')';
$authorisingRoleNames = \Factory::getRoleService()->authorizeAction(\Action::REVOKE_ROLE, $r->getOwnedEntity(), $callingUser);
if (count($authorisingRoleNames) >= 1) {
$allAuthorisingRoleNames = '';
foreach ($authorisingRoleNames as $arName) {
$allAuthorisingRoleNames .= $arName . ', ';
}
$allAuthorisingRoleNames = substr($allAuthorisingRoleNames, 0, strlen($allAuthorisingRoleNames) - 2);
$r->setDecoratorObject('[' . $allAuthorisingRoleNames . '] ');
}
}
} else {
// current user is viewing their own roles, so they can revoke their own roles
foreach ($roles as $r) {
$r->setDecoratorObject('[Self revoke own role]');
}
}
// Check to see if the current calling user has permission to edit the target user
try {
\Factory::getUserService()->editUserAuthorization($user, $callingUser);
$params['ShowEdit'] = true;
} catch (Exception $e) {
$params['ShowEdit'] = false;
}
/* @var $authToken \org\gocdb\security\authentication\IAuthentication */
$authToken = Get_User_AuthToken();
$params['authAttributes'] = $authToken->getDetails();
$params['roles'] = $roles;
$params['portalIsReadOnly'] = \Factory::getConfigService()->IsPortalReadOnly();
$title = $user->getFullName();
show_view("user/view_user.php", $params, $title);
}
示例13: startPage
function startPage()
{
require_once __DIR__ . '/../../../lib/Gocdb_Services/Factory.php';
require_once __DIR__ . '/../components/Get_User_Principle.php';
$dn = Get_User_Principle();
$user = \Factory::getUserService()->getUserByPrinciple($dn);
$roles = \Factory::getRoleService()->getPendingRolesUserCanApprove($user);
$configServ = \Factory::getConfigService();
$showMap = $configServ->getShowMapOnStartPage();
$apiKey = $configServ->getGoogleAPIKey();
$params = array('roles' => $roles, 'googleAPIKey' => $apiKey, 'showMap' => $showMap);
$title = "GOCDB";
show_view('start_page.php', $params, $title, null);
}
示例14: edit_service
/**
* Controller for an edit service request
* @global array $_POST only set if the browser has POSTed data
* @return null
*/
function edit_service()
{
$dn = Get_User_Principle();
$user = \Factory::getUserService()->getUserByPrinciple($dn);
//Check the portal is not in read only mode, returns exception if it is and user is not an admin
checkPortalIsNotReadOnlyOrUserIsAdmin($user);
if ($_POST) {
// If we receive a POST request it's for a new site
submit($user);
} else {
// If there is no post data, draw the edit site form
draw($user);
}
}
示例15: delete
function delete()
{
if (!isset($_REQUEST['id']) || !is_numeric($_REQUEST['id'])) {
throw new Exception("An id must be specified");
}
$dn = Get_User_Principle();
$user = \Factory::getUserService()->getUserByPrinciple($dn);
//get the site
$site = \Factory::getSiteService()->getSite($_REQUEST['id']);
if ($_POST or sizeof($site->getServices()) == 0) {
submit($site, $user);
} else {
draw($site);
}
}