Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixing Redirect on Successful License Submission #450

Merged
merged 8 commits into from
Jun 24, 2023
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions src/app/templates/app/submit_new_license.html
Original file line number Diff line number Diff line change
Expand Up @@ -352,9 +352,11 @@
data: form,
success: function (data) {
var githubCode = data.statusCode;
var githubIssueId = data.issueId;
if(githubCode == '201'){
var successMessage = "The license request has been successfully submitted.";
$("#messages").html('<div class="alert alert-success alert-dismissable fade in"><a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a><strong>Success! </strong>'+ successMessage +'</div>');
window.location.href = "https://github.com/spdx/licnse-list-xml/issues/" + githubIssueId;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think directly transferring users to a new website is ideal. We should either redirect to our own license ID page which should list down the github url (i think it doesn't now) or open this github url in a new tab

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes @rtgdk , I had also suggested the same idea like once there is a successful license submission the user should get redirected to 'https://tools.spdx.org/app/license_requests/{id}' wherein they can see more about his license instead of just again redirecting them to submit new license. Discussion but @jlovejoy suggested that currently the working is like it gets redirected to the github page which was not working when I tried it.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah opening github link looks fine - both technically and legally. But this should get opened in a new tab. The user should still have a tab to navigate spdx tools.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, I will update the PR according so that whenever the new license get's submitted it gets opened in a new tab

setTimeout(function() {
$("#messages").html("");
}, 7000);
Expand Down
2 changes: 1 addition & 1 deletion src/app/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -352,7 +352,7 @@ def createIssue(licenseAuthorName, licenseName, licenseIdentifier, licenseCommen
headers = {'Authorization': 'token ' + token}
url = "{0}/issues".format(TYPE_TO_URL_LICENSE[urlType])
r = requests.post(url, data=json.dumps(payload), headers=headers)
return r.status_code
return r.status_code, r.json()["number"]
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will r.json() always work without issues? What about when status_code is not as expected like 404, 400, will r.json() parse correctly. Also, will "number" be always in the json? If not let's parse status_code for successfull code list and parse number key if exists. @BassCoder2808

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No actually, the number parameter will not be there if there was any issue while creating it through the API, I have added the code to handle that now, let me know if anything else needs to be done in that.



def postToGithub(message, encodedContent, filename):
Expand Down
4 changes: 3 additions & 1 deletion src/app/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@ def submitNewLicense(request):
"""
context_dict = {}
ajaxdict = {}
githubIssueId = ""
if request.method=="POST":
if not request.user.is_authenticated:
if (request.is_ajax()):
Expand Down Expand Up @@ -168,7 +169,7 @@ def submitNewLicense(request):
licenseId = licenseRequest.id
serverUrl = request.build_absolute_uri('/')
licenseRequestUrl = os.path.join(serverUrl, reverse('license-requests')[1:], str(licenseId))
statusCode = utils.createIssue(licenseAuthorName, licenseName, licenseIdentifier, licenseComments, licenseSourceUrls, licenseHeader, licenseOsi, licenseExamples, licenseRequestUrl, token, urlType)
statusCode, githubIssueId = utils.createIssue(licenseAuthorName, licenseName, licenseIdentifier, licenseComments, licenseSourceUrls, licenseHeader, licenseOsi, licenseExamples, licenseRequestUrl, token, urlType)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see multiple calls to utils.createIssue. You will need to update it elsewhere as well.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @rtgdk , I have made the above changes, please let me know, if anything else needs to be changed in this

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1% of developers fix this issue

E501: line too long (235 > 79 characters)

❗❗ 2 similar findings have been found in this PR

🔎 Expand here to view all instances of this finding
File Path Line Number
src/app/views.py 991
src/app/views.py 1166

Visit the Lift Web Console to find more details in your report.


ℹ️ Expand to see all @sonatype-lift commands

You can reply with the following commands. For example, reply with @sonatype-lift ignoreall to leave out all findings.

Command Usage
@sonatype-lift ignore Leave out the above finding from this PR
@sonatype-lift ignoreall Leave out all the existing findings from this PR
@sonatype-lift exclude <file|issue|path|tool> Exclude specified file|issue|path|tool from Lift findings by updating your config.toml file

Note: When talking to LiftBot, you need to refresh the page to see its response.
Click here to add LiftBot to another repo.


Help us improve LIFT! (Sonatype LiftBot external survey)

Was this a good recommendation for you? Answering this survey will not impact your Lift settings.

[ 🙁 Not relevant ] - [ 😕 Won't fix ] - [ 😑 Not critical, will fix ] - [ 🙂 Critical, will fix ] - [ 😊 Critical, fixing now ]


# If the license text matches with either rejected or yet not approved license then return 409 Conflict
else:
Expand All @@ -178,6 +179,7 @@ def submitNewLicense(request):
data['issueUrl'] = issueUrl

data['statusCode'] = str(statusCode)
data['issueId'] = str(githubIssueId)
return JsonResponse(data)
except UserSocialAuth.DoesNotExist:
""" User not authenticated with GitHub """
Expand Down