Real Project Management for Real Businesses

Browsing Posts in Development Blog

One of the most common configurations out there is related to allowing web2project users to have access to only specific companies. While it’s not as simple as saying “users should only see things from their own company,” it’s not as complicated as you might think. Here’s how I’ve done it for various groups.

If you start with the basic roles, here are the step by step directions:

Role: Project Worker

Non-Admin Modules – Allow – Access, Add, Delete, Edit, View
Companies – Deny – Access, Add, Delete, Edit, View
Reports – Allow – Access, Add, Delete, Edit, View

Explanation: This gives access for a User to do anything they want on any of the non-admin modules *except* for Company. But since all of my Projects are assigned to a company, they can’t actually see anything other than the navigation menu and empty screens.

Results: I just created a new User with *only* this Role. The only Nav options visible are Projects, Tasks, Calendar, Files, Contacts, SmartSearch, Links, Reports. Under each, there is no data visible other than information not associated with any Company… for example, some of the Contacts.

Now, I got back and add permissions to individual users:

Companies – CaseySoftware, LLC – Allow – Access, View

Results: The User can now view all the information associated with my Company. This includes all of its Projects, Files, Contacts, etc. This user could even create new projects if they wanted, but only for this Company.

Now, since this is a ficticious contractor user, I add the following permissions:
Companies – Acme Anvil Corporation – Allow – Access, View

Results: The User can now view all the information associated with this additional Company. Everything they could do/see for CaseySoftware, LLC now applies here too. Now, if they were working on this company’s projects, they could log time against tasks, whatever.

Now let’s say I have a single Project within CaseySoftware, LLC that the person shouldn’t see, so I add these permissions:

Projects – Secret Anvil Development – Deny – Access, View, Add, Edit, Delete

Results: This prevents the User from seeing *anything* involved with this project. No Tasks, no Files, no Calendar Events.

A few weeks ago, I spent a week at Microsoft Headquarters in Redmond, Washington representing web2project and working on SQL Server support. During the week, many people asked me variations of:

Why? What are you thinking? Are you dropping MySQL support? What in the world are you doing?

In some cases, their questions seemed more panicked that anything. To clarify what is going here, let me explain:

First of all, no, we are not dropping MySQL support. To be blunt, that would be dumb of us. Our community knows and loves MySQL. It’s installed on something like 103% of the web servers out there. For years, it has served as the foundation of web2project and we don’t plan to drop it.

Next, with respect to Microsoft.. their relationship with the Open Source community has ranged somewhere between global thermonuclear war and that awkward guy on the wall at prom. In some places, they’re doing good work while in other places, people are still aiming missiles. Regardless, some groups within Microsoft have worked hard to build positive, productive relationships with the PHP community.

Therefore, our goal is obvious. The goal was SQL Server Compatibility.

Our Vision for web2project is that we take over the world it can be installed into any company’s infrastructure and *poof* it works. Our users shouldn’t worry that their IT staff only supports SQL Server or prefers Apache over IIS or runs Ubuntu instead of Redhat. They just want their tools to work and we want web2project to be one of those tools, so the need was clear.

With that, I’m proud to announce that as a result of this week’s efforts, we believe we have full SQL Server support in the core system. I don’t (and won’t) know the compatibility of the Add On Modules, but if they’ve followed our suggestions in the Module Building Guide, they should be pretty close already.

My personal goal is to have SQL Server support ready for production use in the web2project v3.0 release this winter with at least one beta and one release candidate before then. If you know how to run SQL Server and would be willing to test, please contact me at caseydk [at] web2project.net and let me know. Any and all feedback is appreciated.


Disclosure: I have worked for Microsoft numerous times in the last few years and I continue to work with them in both paid and unpaid roles. Regardless, when they do something right, I applaud them. And when they do something dumb, I challenge them.

At php|tek 2011 last month, we had three of the five core web2project members in attendance. Despite my best efforts to protect the project by making sure we were never standing as a group (vulnerable to a meteor), eating together (vulnerable to food poisoning), or flying together (vulnerable to the Swan Station), cooler heads prevailed and we had a group picture.

Some of the web2project Team, May 2011

Some of the web2project Team, May 2011

From left to right are me (Keith Casey), our Testing King Trevor Morse, and Master of RESTfulness Benjamin Young.

And yes, there are now web2project shirts out in the wild. The first batch went to team members, any user I’ve met recently, friends of the project, and people who have helped us along. If you are interested in getting your own shirt, drop me a note:  caseydk [at] web2project.net  Once I have enough for an order, I will get pricing and notify everyone of the cost.

Or.. if someone wants to contribute $500, I can get a bunch printed and start sending them out immediately..

At least a dozen times a week, I pitch someone on why they should use web2project. Depending on whether they’re a developer, a project manager, or a small business owner, I tune the pitch appropriately. I call it a pitch.. not because I want someone to buy web2project – it’s free for anyone to download and use – but because I’m an organizer and an entrepreneur and I want to “keep the sword sharp.”

More importantly.. a few times every week, I tell people not to use web2project.

Yes, you read that correctly: I tell people why they shouldn’t use web2project.

There are many reasons, but three particular reasons stand out:

Because they’re a jerk. Yes, like any place on the internet, occasionally, we attract some jerks. They tell us how we’re doing everything wrong. They tell me how much better web2project would be if it was in Rails. And generally their only contribution is antagonizing our regular members who are trying to get their job done and occasionally lending a hand. As noted on our “About us” page:

The community should be open with clear expectations for behavior while encouraging constructive criticism

That’s right, we have expectations for behavior. They’re not as explicit as “thou shalt not top post” but we expect respect, PG-13 language, and generally constructive comments that help one another. Remember, we were all newbies at some point. So far we’ve never had to ask someone to leave the community – and I sincerely hope it never does – but there have a number of people I’ve encouraged towards other projects that better fit their needs.

Because web2project doesn’t fit their needs. We’re focused on building the best possible software that fits our and our community’s needs. It’s possible that our features don’t match your needs. It may be a fundamental disagreement on how things should work or it could be an architectural tradeoff. Either way, different priorities produce different results and it’s nothing to be offended about. We have purposely built an extensible system so our Add On Module community (downloads) may have already done it. But at the end of the day, it’s possible that we can’t do what you need. Luckily, even if web2project is the wrong path for you, our community is friendly, sharp, and well-informed and will attempt to point you in a better direction.

And finally, because web2project doesn’t teach project management. Web2project doesn’t require or describe a particular way of running a project, assigning tasks, managing people, estimating tasks, or anything else. It is simply a tool. It’s well-structured enough to fool some organizations to believe it prescribes a process, but it doesn’t. It simply captures information from your processes. Regardless,  it will teach you project management as effectively as a hammer will teach you to build a house.

There’s a more subtle point in there too. Many people contact me after being their boss says “we need project management!” At that point, they don’t have a project management process in place. They don’t know exactly what they want to do the process they don’t have. And they don’t know how to do what they don’t know to do for the process they haven’t defined. Therefore, no matter what web2project does or might do, it’s not the right answer. Even worse, somehow now it’s our fault and we suck.

No, I don’t understand that one either.

The funny thing about these.. none of them are specific to web2project! Every single issue can apply to any tool out there. It doesn’t matter if you use pen & paper, Excel, Microsoft Project, or that custom-system-that-one-guy-built-but-now-he-doesn’t-return-your-calls. If you don’t know your goals or how to get there, you will fail. And not because your group is “unmanageable”.. you just haven’t defined success!

So please do yourself a favor. Before you explore any tool, figure out what you need, define and implement the process you’re trying to support, don’t be a jerk… and then check out web2project. You’ll have a better day and we’ll be more likely to help you. :)

As of yesterday 30 March 2011, web2project v2.3 has hit the street. You can download it from Sourceforge now.

While under development, we didn’t fully realize what all this release would entail. As this development cycle began, we had a perfect storm of events: a holiday break, a particularly motivated project team, a few moments of clarity, and an engaged community. These things gave us significantly more updates for v2.3 than we ever expected.

For this release, a few specific people stood out within an already great community:

  • CasN has done an outstanding job in the forums in reporting & debugging issues, helping other users on the forums, and some Add On module work;
  • Eureka has submitted great bug reports, the occasional core patch, an updated French translation, and shared quite a bit of work on a number of Add On Modules;
  • Opto has contributed detailed and useful bug reports, good patches, and insight on the forums;
  • RobertBasic appeared out of nowhere to contribute patches related to better UTF/Unicode handling, translations, character encoding in general, and even a complete rework of the PDF-generation.

As a result of all of this activity, we have a variety of new features, updates, and fixes. While the full v2.3 Release Notes are too long to cover in detail in this post, here are some items I consider particularly useful:

For the Project Managers:

  • We further cleaned up the Project List screen – before one of the slowest in the system – and added support for configurable columns. Any core field from a project can now be displayed, formatted properly, and even sorted on.
  • We updated the Gantt Charts to ensure that project ordering is consistent and represents the standard waterfall layout.
  • We made all milestones in the Gantt Charts color-coded to distinguish upcoming, overdue, and complete.
  • We updated all user-specific task pages to include both the Task Priority and the User Priority to make sure everyone has a clear indication of goals, priorities, etc.

For General Users:

  • We rewired some of the post-save redirects. Now after saving many types of items – contacts, events, and files – instead of being sent to the list page of that module, you’re redirected to view the item.
  • We added a simple “password strength checker” to encourage strong passwords.
  • We made major improvements to the Calendar to ensure that private events and tasks are only visible to the proper people, that all events – both recurring and one-time – render in the Day, Week, or Month views appropriately, and that the tooltips have all the necessary information.
  • We eliminated upwards of 80% of the XHTML/CSS validation issues. As a result, the system is better behaved in all modern browsers.

For System Admins:

  • We added warnings in the Modules and Translations Admin to ensure that you know if any tweaks are necessary.
  • We eliminated over a dozen joins to speed performance and reduce memory use.
  • We updated many of the underlying libraries including ADODb, PHPMailer, and Xajax.
  • We adjusted the system configuration to automatically save known-safe values if they were previously unset.

For Developers:

  • We added a the ability to specify “preferred” values in dropdowns to simplify long option lists like Country.
  • We removed all references to soon-to-be deprecated classes and added deprecation warnings. If you develop Add On modules, please review your error logs to use the proper classes.
  • We refactored most of the controllers into a w2p_Base_Controller class to support Dependency Injection for Unit Testing.
  • We added over 50 Unit Tests since the v2.2 release in December.

From here forward, we can focus on the v3.0 release for June. You can review our agenda in the Issue Tracker (select v3.0 in the dropdown), but the top two things on my agenda are finishing the web2project license change and merging in my latest development on Project Budgeting.. more on both of those later.

You can download web2project v2.3 from Sourceforge now.

Powered by WordPress © 2013 web2Project Design by SRS Solutions

Get web2Project at SourceForge.net. Fast, secure and Free Open Source software downloads
LiveZilla Live Help