Hello,
Every module in epesi can specify custom access rights. When creating a user you can choose from several levels. See this post for some explanation:
http://forum.telaxus.com/viewtopic.php?f=8&t=117&start=0&st=0&sk=t&sd=a&hilit=administrator
User right are based on phpGACL and access levels can be defined in whatever way you like. Next in the module you can specify access rights, for example (this is from our Bugtracker module, file \modules\Premium\Projects\ProjectsInstall.php):
$this->add_aco('browse projects',array('Employee'));
$this->add_aco('view projects',array('Employee'));
$this->add_aco('edit projects',array('Employee'));
$this->add_aco('delete projects',array('Employee Manager'));
$this->add_aco('view protected notes','Employee');
$this->add_aco('view public notes','Employee');
$this->add_aco('edit protected notes','Employee Administrator');
$this->add_aco('edit public notes','Employee');
It is up to a developer to specify what rights a person has.
I understand that the concept of departments is a little different and it could be useful in some scenarios. At this moment we had no need to use it and phpGACL seems sufficient. For more info please read: http://phpgacl.sourceforge.net/