• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

IQSS / dataverse / #24060

16 Dec 2024 01:30PM UTC coverage: 22.573% (+0.004%) from 22.569%
#24060

push

github

stevenwinship
Merge branch 'develop' into 10714-access-requests-missing-since-upgrade-v6-0

2 of 18 new or added lines in 5 files covered. (11.11%)

3 existing lines in 1 file now uncovered.

19544 of 86582 relevant lines covered (22.57%)

0.23 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/main/java/edu/harvard/iq/dataverse/privateurl/PrivateUrlPage.java
1
package edu.harvard.iq.dataverse.privateurl;
2

3
import edu.harvard.iq.dataverse.Dataset;
4
import edu.harvard.iq.dataverse.DatasetServiceBean;
5
import edu.harvard.iq.dataverse.DataverseRequestServiceBean;
6
import edu.harvard.iq.dataverse.DataverseSession;
7
import edu.harvard.iq.dataverse.PermissionsWrapper;
8
import edu.harvard.iq.dataverse.authorization.users.PrivateUrlUser;
9
import java.io.Serializable;
10
import java.util.logging.Logger;
11
import jakarta.ejb.EJB;
12
import jakarta.faces.view.ViewScoped;
13
import jakarta.inject.Inject;
14
import jakarta.inject.Named;
15

16
/**
17
 * Backing bean for JSF page. Sets session to {@link PrivateUrlUser}. 
18
 */
19
@ViewScoped
20
@Named("PrivateUrlPage")
21
public class PrivateUrlPage implements Serializable {
×
22

23
    private static final Logger logger = Logger.getLogger(PrivateUrlPage.class.getCanonicalName());
×
24

25
    @EJB
26
    PrivateUrlServiceBean privateUrlService;
27
    @EJB
28
    DatasetServiceBean datasetServiceBean;
29
    @Inject
30
    DataverseSession session;
31
    @Inject
32
    PermissionsWrapper permissionsWrapper;
33
    @Inject
34
    DataverseRequestServiceBean dvRequestService;
35

36
    /**
37
     * The unique string used to look up a PrivateUrlUser and the associated
38
     * draft dataset version to redirect the user to.
39
     */
40
    String token;
41

42
    public String init() {
43
        try {
44
            PrivateUrlRedirectData privateUrlRedirectData = privateUrlService.getPrivateUrlRedirectDataFromToken(token);
×
45
            String draftDatasetPageToBeRedirectedTo = privateUrlRedirectData.getDraftDatasetPageToBeRedirectedTo() + "&faces-redirect=true";
×
46
            PrivateUrlUser privateUrlUser = privateUrlRedirectData.getPrivateUrlUser();
×
NEW
47
            boolean sessionUserCanViewUnpublishedDataset = false;
×
NEW
48
            if (session.getUser().isAuthenticated()){
×
NEW
49
                Long datasetId = privateUrlUser.getDatasetId();
×
NEW
50
                Dataset dataset = datasetServiceBean.find(datasetId);
×
NEW
51
                sessionUserCanViewUnpublishedDataset = permissionsWrapper.canViewUnpublishedDataset(dvRequestService.getDataverseRequest(), dataset);
×
52
            }
NEW
53
            if(!sessionUserCanViewUnpublishedDataset){
×
54
                //Only Reset if user cannot view this Draft Version
NEW
55
                session.setUser(privateUrlUser); 
×
56
            }
57
            logger.info("Redirecting PrivateUrlUser '" + privateUrlUser.getIdentifier() + "' to " + draftDatasetPageToBeRedirectedTo);
×
58
            return draftDatasetPageToBeRedirectedTo;
×
59
        } catch (Exception ex) {
×
60
            logger.info("Exception processing Private URL token '" + token + "':" + ex);
×
61
            return "/404.xhtml";
×
62
        }
63
    }
64

65
    public String getToken() {
66
        return token;
×
67
    }
68

69
    public void setToken(String token) {
70
        this.token = token;
×
71
    }
×
72

73
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc