The module integrates the about.me profile with Drupal and display the profile
information in a block which can be placed anywhere in the site.

Go to admin/config/services/aboutme and fill out the configuration form for the
block. Here you need to enter your about.me username, photo settings and other
settings which you want to pull from your about.me profile.

Currently only the basic informations are being fetched.

Once the configurations are saved a block will be created which can be placed
in any region or can be used in panels.

Sandbox URL https://www.drupal.org/sandbox/malabya/2485723

Git Instructions
git clone --branch 7.x-1.x http://git.drupal.org/sandbox/malabya/2485723.git aboutme

Comments

malavya created an issue. See original summary.

PA robot’s picture

Issue summary: View changes

Fixed the git clone URL in the issue summary for non-maintainer users.

We are currently quite busy with all the project applications and we prefer projects with a review bonus. Please help reviewing and put yourself on the high priority list, then we will take a look at your project right away :-)

Also, you should get your friends, colleagues or other community members involved to review this application. Let them go through the review checklist and post a comment that sets this issue to "needs work" (they found some problems with the project) or "reviewed & tested by the community" (they found no major flaws).

I'm a robot and this is an automated message from Project Applications Scraper.

Chandan Chaudhary’s picture

Manual Review

Individual user account
Yes: Follows the guidelines for individual user accounts.
No duplication
Yes: Does not cause module duplication and/or fragmentation.
Master Branch
Yes: Follows the guidelines for master branch.
Licensing
Yes: Followsthe licensing requirements.
3rd party assets/code
Yes: Follows the guidelines for 3rd party assets/code.
README.txt/README.md
Yes: Follows the guidelines for in-project documentation and/or the README Template.
Code long/complex enough for review
Yes: Follows the guidelines for project length and complexity.
Secure code
Yes: Meets the security requirements.
Chandan Chaudhary’s picture

Status: Needs review » Needs work

Nicely coded module :)

1. @ line #202 return $block_data; should be inside the if condition, because it dose not make much sense there.
2. Should have the provision to change the ABOUTME_CLIENT_ID

imalabya’s picture

Status: Needs work » Needs review

Hi chandan, Thanks for the review. I have updated the module with the changes that you pointed out. Please review.

sysosmaster’s picture

Status: Needs review » Needs work
Issue tags: +Security

Module does what it advertises, unfortunetly I identified a security issue otherways I would have passed this.

Manual Review

Individual user account
[Yes: Follows] the guidelines for individual user accounts.
No duplication
[Yes: Does not cause] module duplication and/or fragmentation.
Master Branch
[Yes: Follows] the guidelines for master branch.
Licensing
[Yes: Follows] the licensing requirements.
3rd party assets/code
[Yes: Follows] the guidelines for 3rd party assets/code.
README.txt/README.md
[Yes: Follows] the guidelines for in-project documentation and/or the README Template.
Code long/complex enough for review
[Yes: Follows / No: Does not follow] the guidelines for project length and complexity.
Secure code
No: List of security issues identified.]
  1. Security: Possible Code Injection. All data from about.me is directly put into the Block array, this shold be treated as user unput and passed through a t() string to protect against malicous use. (Mitigated by about.me, they filter input on there service. Still should be fixed.
Coding style & Drupal API usage
  1. (*)Security issue, see above.
  2. (+)Line(140)[aboutme.module]"$data = json_decode($result->data);" use drupal_json_decode()

The starred items (*) are fairly big issues and warrant going back to Needs Work. Items marked with a plus sign (+) are important and should be addressed before a stable project release. The rest of the comments in the code walkthrough are recommendations.

If added, please don't remove the security tag, we keep that for statistics and to show examples of security problems.

This review uses the Project Application Review Template.

imalabya’s picture

Status: Needs work » Needs review

Hi sysosmaster,

For the security concern you mentioned, the data that is being put in the block array are all variables coming form the API. Now according to Drupal coding standards it is not suggested to pass variables through t() function.

Have updated the code replacing json_decode with drupal_json_decode.

Thanks

sysosmaster’s picture

Status: Needs review » Needs work

@malavya I believe you are confusing a Drupal variable (from the variables array) with external input. Coding standards indeed dictate that you do not mess with a Drupal variable and that we store input as given to us that we validated.

What you are doing is trusting the external service (with there API) to always have correct values. a service which may or may not be running on php and may or may not have the same security measures in place as Drupal does.
Since you are using an external provider you should consider all values passed on by them the same as if they were user input, and we never blindly put user input back in the page (we validate it and possibly impose a formatter on it to limit treats)

To have a similar protection in place without implimenting a full formatter implementation, you can use the t() functino to atleast have sane output.

PA robot’s picture

Status: Needs work » Closed (won't fix)

Closing due to lack of activity. If you are still working on this application, you should fix all known problems and then set the status to "Needs review". (See also the project application workflow).

I'm a robot and this is an automated message from Project Applications Scraper.

imalabya’s picture

Assigned: imalabya » Unassigned
Status: Closed (won't fix) » Needs review
shkiper’s picture

Status: Needs review » Needs work

Manual Review

Coding style & Drupal API usage
  1. Please use sanitization functions for data that you display from about.me service

Could you please consider possibility of using hook_block_configure function instead of custom menu item for about.me settings?

imalabya’s picture

Status: Needs work » Needs review

Have added the sanitation for data coming from about.me.

Could you please consider possibility of using hook_block_configure function instead of custom menu item for about.me settings?

I am not sure why should I use hook_block_configure over an administration form for the building the block content.

NitinSP’s picture

Hi jdrichmond

Manual Review:

I reviewed your module, following thing have need to fixed.
1. If I have enter integer value for Your about.me User Name and submit the form it will accept this value, so please ad validation for Your about.me User Name.
2. Please include hook_help.
3. In hook_menu, missing the t() in description text
4. have you also read the comments on Proper way to bulk-delete variables on module uninstall? You should not delete variables directly from db.
Please reffer following code

global $conf;
$module_string = "meet_our_team";
$vars = array_intersect_key($conf, array_flip(preg_grep("/^{$module_string}.*/", array_keys($conf))));
foreach (array_keys($vars) as $var) {
  variable_del($var);
}
NitinSP’s picture

Status: Needs review » Needs work
imalabya’s picture

Status: Needs work » Needs review

Hi Nitin,

Thanks for the review. Have added the hook_help for the module.

Regarding other points:

If I have enter integer value for Your about.me User Name and submit the form it will accept this value, so please ad validation for Your about.me User Name.

About.me allows user to have integers as username. check this profile https://about.me/09000910192091

In hook_menu, missing the t() in description text

As per Drupal coding standards we should not use t() in hook_menu()

have you also read the comments on Proper way to bulk-delete variables on module uninstall? You should not delete variables directly from db.

If you refer the code in the module even I am using variable_del() function to delete the variables on module uninstall. If you are talking about the manual deletion of the variables, I guess it's OK since the variables are fixed and number is less than 10.

Thanks

heykarthikwithu’s picture

Status: Needs review » Reviewed & tested by the community

Looks fine,
Let's wait for a git admin to look in this.

mlncn’s picture

@NitinSP, apologies if you've already taken this to heart, but in the order i've gone through the issues you've been corrected about recommending t() in hook_menu and asking for the unnecessarily complex way of deleting variables on uninstall more than once, so please, stop making those recommendations ;-)

mlncn’s picture

Status: Reviewed & tested by the community » Fixed

Thanks for your contribution! Congratulations, you are now a vetted Git user. You can promote this to a full project.

When you create new projects (typically as a sandbox to start) you can then promote them to a full project.

Here are some recommended readings to help with excellent maintainership:

You can find lots more contributors chatting on IRC in #drupal-contribute. So, come hang out and stay involved!

Thanks, also, for your patience with the review process. Anyone is welcome to participate in the review process. Please consider reviewing other projects that are pending review. I encourage you to learn more about that process and join the group of reviewers.

imalabya’s picture

Thanks a lot mlncn. I had a great learning through your review.

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.