Ejemplo n.º 1
0
 /**
  * @param HTTPRequest $request
  * @return bool
  */
 public function userIsAdmin(HTTPRequest $request)
 {
     $user = $request->getCurrentUser();
     $forge_user_manager = new User_ForgeUserGroupPermissionsManager(new User_ForgeUserGroupPermissionsDao());
     $has_special_permission = $forge_user_manager->doesUserHavePermission($user, new User_ForgeUserGroupPermission_MediawikiAdminAllProjects());
     return $has_special_permission || $user->isMember($request->getProject()->getID(), 'A');
 }
 private function deletePermissions()
 {
     $id = $this->request->get('id');
     $permission_ids = $this->request->get('permissions');
     if ($id) {
         try {
             $user_group = $this->user_group_factory->getForgeUserGroupById($id);
             foreach ($permission_ids as $permission_id) {
                 $permission = $this->user_group_permissions_factory->getForgePermissionById($permission_id);
                 $this->user_group_permissions_manager->deletePermission($user_group, $permission);
             }
         } catch (User_UserGroupNotFoundException $e) {
             $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('admin_permission_delegation', 'ugroup_not_found'));
         } catch (User_ForgeUserGroupPermission_NotFoundException $e) {
             $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('admin_permission_delegation', 'permission_not_found'));
         }
     }
     $this->redirect($id);
 }
Ejemplo n.º 3
0
 public function delegatePermissionsToManageUser()
 {
     $user = $this->user_manager->getUserById(self::TEST_USER_3_ID);
     // Create group
     $user_group_dao = new UserGroupDao();
     $user_group_factory = new User_ForgeUserGroupFactory($user_group_dao);
     $user_group = $user_group_factory->createForgeUGroup('site remote admins', '');
     // Grant Retrieve Membership permissions
     $permission = new User_ForgeUserGroupPermission_UserManagement();
     $permissions_dao = new User_ForgeUserGroupPermissionsDao();
     $user_group_permissions_manager = new User_ForgeUserGroupPermissionsManager($permissions_dao);
     $user_group_permissions_manager->addPermission($user_group, $permission);
     // Add user to group
     $user_group_users_dao = new User_ForgeUserGroupUsersDao();
     $user_group_users_manager = new User_ForgeUserGroupUsersManager($user_group_users_dao);
     $user_group_users_manager->addUserToForgeUserGroup($user, $user_group);
     return $this;
 }
Ejemplo n.º 4
0
//
// SourceForge: Breaking Down the Barriers to Open Source Development
// Copyright 1999-2000 (c) The SourceForge Crew
// http://sourceforge.net
//
//
require_once 'pre.php';
require_once 'vars.php';
require_once 'account.php';
require_once 'proj_email.php';
require_once 'www/admin/admin_utils.php';
require_once 'www/project/admin/project_admin_utils.php';
require_once 'common/event/EventManager.class.php';
$user = UserManager::instance()->getCurrentUser();
$forge_ugroup_permissions_manager = new User_ForgeUserGroupPermissionsManager(new User_ForgeUserGroupPermissionsDao());
$special_access = $forge_ugroup_permissions_manager->doesUserHavePermission($user, new User_ForgeUserGroupPermission_ProjectApproval());
if (!$special_access) {
    session_require(array('group' => '1', 'admin_flags' => 'A'));
}
$action = $request->getValidated('action', 'string', '');
$em = EventManager::instance();
$pm = ProjectManager::instance();
// group public choice
if ($action == 'activate') {
    $groups = array();
    if ($request->exist('list_of_groups')) {
        $groups = array_filter(array_map('intval', explode(",", $request->get('list_of_groups'))));
    }
    foreach ($groups as $group_id) {
        $project = $pm->getProject($group_id);
Ejemplo n.º 5
0
 public function userCanAdminAllProjectTrackers($user = null)
 {
     if (!$user instanceof PFUser) {
         $um = UserManager::instance();
         $user = $um->getCurrentUser();
     }
     $permission = new User_ForgeUserGroupPermission_TrackerAdminAllProjects();
     $forge_ugroup_permissions_manager = new User_ForgeUserGroupPermissionsManager(new User_ForgeUserGroupPermissionsDao());
     return $forge_ugroup_permissions_manager->doesUserHavePermission($user, $permission);
 }
 public function has_user_been_delegated_access($params)
 {
     if (isset($_SERVER['REQUEST_URI']) && strpos($_SERVER['REQUEST_URI'], $this->getPluginPath()) === 0) {
         $forge_user_manager = new User_ForgeUserGroupPermissionsManager(new User_ForgeUserGroupPermissionsDao());
         $can_access = $forge_user_manager->doesUserHavePermission($params['user'], new User_ForgeUserGroupPermission_MediawikiAdminAllProjects());
         /**
          * Only change the access rights to the affirmative.
          * Otherwise, we could overwrite a "true" value set by another plugin.
          */
         if ($can_access) {
             $params['can_access'] = true;
         }
     }
 }
Ejemplo n.º 7
0
 private function IsUserAdmin()
 {
     $pfuser = UserManager::instance()->getCurrentUser();
     $forge_user_manager = new User_ForgeUserGroupPermissionsManager(new User_ForgeUserGroupPermissionsDao());
     $has_special_permission = $forge_user_manager->doesUserHavePermission($pfuser, new User_ForgeUserGroupPermission_MediawikiAdminAllProjects());
     return $pfuser->isMember($GLOBALS['group']->getId(), 'A') || $has_special_permission;
 }
Ejemplo n.º 8
0
 /**
  * @return bool
  */
 private function doesUserHavePermission(PFUser $user, User_ForgeUserGroupPermission $permission)
 {
     return $this->forge_ugroup_permissions_manager->doesUserHavePermission($user, $permission);
 }
Ejemplo n.º 9
0
 /**
  * @return Widget
  */
 public static function getInstance($widget_name)
 {
     $o = null;
     switch ($widget_name) {
         case 'mysurveys':
             $o = new Widget_MySurveys();
             break;
         case 'myprojects':
             $o = new Widget_MyProjects();
             break;
         case 'mybookmarks':
             $o = new Widget_MyBookmarks();
             break;
         case 'mymonitoredforums':
             $o = new Widget_MyMonitoredForums();
             break;
         case 'mymonitoredfp':
             $o = new Widget_MyMonitoredFp();
             break;
         case 'mylatestsvncommits':
             $o = new Widget_MyLatestSvnCommits();
             break;
         case 'myartifacts':
             $o = new Widget_MyArtifacts();
             break;
         case 'myrss':
             $o = new Widget_MyRss();
             break;
             //case 'mywikipage':                   //not yet
             //    $o = new Widget_MyWikiPage();
             //    break;
         //case 'mywikipage':                   //not yet
         //    $o = new Widget_MyWikiPage();
         //    break;
         case 'myimageviewer':
             $o = new Widget_MyImageViewer();
             break;
         case 'myadmin':
             $user_is_super_user = user_is_super_user();
             if (!$user_is_super_user) {
                 $user = UserManager::instance()->getCurrentUser();
                 $forge_ugroup_permissions_manager = new User_ForgeUserGroupPermissionsManager(new User_ForgeUserGroupPermissionsDao());
                 $can_access = $forge_ugroup_permissions_manager->doesUserHavePermission($user, new User_ForgeUserGroupPermission_ProjectApproval());
             }
             if ($user_is_super_user || $can_access) {
                 //This widget is mainly for super admin
                 $o = new Widget_MyAdmin($user_is_super_user);
             }
             break;
         case 'mysystemevent':
             if (user_is_super_user()) {
                 //This widget is only for super admin
                 $o = new Widget_MySystemEvent();
             }
             break;
         case 'projectdescription':
             $o = new Widget_ProjectDescription();
             break;
         case 'projectclassification':
             $o = new Widget_ProjectClassification();
             break;
         case 'projectmembers':
             $o = new Widget_ProjectMembers();
             break;
         case 'projectlatestfilereleases':
             $o = new Widget_ProjectLatestFileReleases();
             break;
         case 'projectlatestnews':
             $o = new Widget_ProjectLatestNews();
             break;
         case 'projectpublicareas':
             $o = new Widget_ProjectPublicAreas();
             break;
         case 'projectrss':
             $o = new Widget_ProjectRss();
             break;
         case 'projectsvnstats':
             $o = new Widget_ProjectSvnStats();
             break;
             //case 'projectwikipage':                    //not yet
             //    $o = new Widget_ProjectWikiPage();
             //    break;
         //case 'projectwikipage':                    //not yet
         //    $o = new Widget_ProjectWikiPage();
         //    break;
         case 'projectlatestsvncommits':
             $o = new Widget_ProjectLatestSvnCommits();
             break;
         case 'projectlatestcvscommits':
             $o = new Widget_ProjectLatestCvsCommits();
             break;
         case 'projectimageviewer':
             $o = new Widget_ProjectImageViewer();
             break;
         case 'projectcontacts':
             $o = new Widget_Contacts();
             break;
         default:
             $em = EventManager::instance();
             $em->processEvent('widget_instance', array('widget' => $widget_name, 'instance' => &$o));
             break;
     }
     if (!$o || !is_a($o, 'Widget')) {
         $o = null;
     }
     return $o;
 }
Ejemplo n.º 10
0
 /**
  * @param HTTPRequest $request
  * @return bool
  */
 public function userIsAdmin(PFUser $user)
 {
     $forge_user_manager = new User_ForgeUserGroupPermissionsManager(new User_ForgeUserGroupPermissionsDao());
     $has_special_permission = $forge_user_manager->doesUserHavePermission($user, new User_ForgeUserGroupPermission_MediawikiAdminAllProjects());
     return $has_special_permission || $user->isMember($this->project->getID(), 'A');
 }