Example #1
0
/**
 * Add a new user into a given project
 * 
 * @param Integer $group_id Project id
 * @param User    $user     User to add
 * 
 * @return Boolean
 */
function account_add_user_obj_to_group($group_id, User $user)
{
    //user was found but if it's a pending account adding
    //is not allowed
    if (!$user->isActive() && !$user->isRestricted()) {
        $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('include_account', 'account_notactive', $user->getUserName()));
        return false;
    }
    //if not already a member, add it
    $res_member = db_query("SELECT user_id FROM user_group WHERE user_id=" . $user->getId() . " AND group_id='" . db_ei($group_id) . "'");
    if (db_numrows($res_member) < 1) {
        //not already a member
        db_query("INSERT INTO user_group (user_id,group_id) VALUES (" . db_ei($user->getId()) . "," . db_ei($group_id) . ")");
        //if no unix account, give them a unix_uid
        if ($user->getUnixStatus() == 'N' || !$user->getUnixUid()) {
            $user->setUnixStatus('A');
            $um = UserManager::instance();
            $um->assignNextUnixUid($user);
            $um->updateDb($user);
        }
        // Raise an event
        $em = EventManager::instance();
        $em->processEvent('project_admin_add_user', array('group_id' => $group_id, 'user_id' => $user->getId(), 'user_unix_name' => $user->getUserName()));
        $GLOBALS['Response']->addFeedback('info', $GLOBALS['Language']->getText('include_account', 'user_added'));
        account_send_add_user_to_group_email($group_id, $user->getId());
        group_add_history('added_user', $user->getUserName(), $group_id, array($user->getUserName()));
        return true;
    } else {
        $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('include_account', 'user_already_member'));
    }
    return false;
}
Example #2
0
function user_to_soap(User $user = null, User $current_user)
{
    if ($user !== null && ($user->isActive() || $user->isRestricted())) {
        if ($current_user->canSee($user)) {
            return array('username' => $user->getUserName(), 'id' => $user->getId(), 'real_name' => $user->getRealName(), 'email' => $user->getEmail(), 'ldap_id' => $user->getLdapId());
        }
    }
}
 public function assertUserCanAccessProject(User $user, Project $project)
 {
     if ($project->isPublic() && $user->isRestricted() && !$user->isMember($project->getGroupId()) || !$project->isPublic() && !$user->isMember($project->getGroupId())) {
         throw new Exception('User do not have access to the project', '3002');
     }
 }
Example #4
0
 /**
  * Test is user can read the content of this repository and metadata
  *
  * @param User          $user       The user to test
  * @param GitRepository $repository The repository to test
  *
  * @return Boolean
  */
 public function userCanRead($user, $repository)
 {
     if ($repository->isPrivate() && $user->isMember($repository->getProjectId())) {
         return true;
     }
     if ($repository->isPublic()) {
         if ($user->isRestricted() && $user->isMember($repository->getProjectId())) {
             return true;
         }
         if (!$user->isAnonymous()) {
             return true;
         }
     }
     return false;
 }