phpgroupware-developers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Phpgroupware-developers] ged


From: Sigurd Nes
Subject: Re: [Phpgroupware-developers] ged
Date: Sat, 01 Apr 2006 17:23:41 +0200
User-agent: Mail/News 1.5 (X11/20060225)

Pascal Vilarem wrote:
> hi,
> 
>> Some questions:
>> What is 'ged' compared to 'filemanager'?
>>  
>>
> it's something thought to fit "project documentations"... group acls,
> versions, expiration date... validation...
> 
> i started from mydms... but porting mydms as a module into phpgw turned
> into nearly rewriting everything :-/
> 
>> Is it going to use the existing vfs ?
>>  
>>
> i know nearly nothing about vfs... so it's difficult for me to answer :o)
> 
>> Will it utilize the new yahoo-treeview in /phpgwapi/js/ ?
>>  
>>
> now it uses a "static" tree i got from mydms... but perhaps the
> yahoo-treeview would be better ?
> 
> i still have many features to add : history of documents for example and
> the "look" need a great amount of work to be ok
> 
> by the way : i made a specific ACL system because .16 ACL could not fit
> my needs but skwashd said ACL2 is far better... i'd like to see with you
> how i can use ACL2 instead of ged's
> 
> regards,
> maat
> 
> 

There is some (extensive) documentation on vfs at phpgwapi/doc/vfs/

<wish-list>
It would be nice if documents are organized into projects - that could
be linked to both (one or the other) projects in the app 'projects' and
projects the app 'property'.

The app property is a facilities management system - and the
project-submodule would have good use for ged as a tool for coordination
/ validation and sharing of documents for house-building-projects where
many actors are involved and there is a complex structure of information
along different stages.

It would also be nice feature if involved parties (users and groups)
would get a reminder (an email and an item on an internal "todo-list" as
a part of a workflow) when new documents are added or documents are updated.

As a last feature to take over the marked from proprietary commercial
system - there would be a need for distributed print-outs - that is - to
order prints from selected documents (drawings) by listed vendors of
such services - and delivered to address of choice.
</wish-list>

As acl_location for the documents I would recommend a combination of
project_ID and folder-name.

The acl_locations goes into the table phpgw_acl_location.

There are two different aspects of the acl:
1) Give groups/users permission per locations within applications.
2) Grant other users rights related to ones (the grantor) records. These
rights can be defined with a group as the grantor (only admin-users can
do this).

Locations that are to be part of inheritance are named as:

.
.location1
.location1.sublocation1
.location1.sublocation2
.location2
.location2.sublocation1
.location2.sublocation2

The locations "run" and 'changepassword' are not listed at locations,
and are not subject to inheritance - because these locations are handled
in the user-setup.

Locations must be allowed to give grant - this is set in the
allow_grant-column in the phpgw_acl_location-table.
As an example - only the location '.user' is allowed to give grant in
the app 'hrm'.

Global categories for the application will be listed for both permission
and granting as:
$locations[$i]['id']    = 'C' . $cat['id'];
$locations[$i]['descr']    = $cat['name'];

The acl-class checks the groups-rights first - and then re-check for
user-rights

One can give a group some rights - and then mask - or give additional
rights for specified users.

In order to check if a user is allowed to add a record in
'.location1.sublocation1' at 'some_application' - one has to check for:
$GLOBALS['phpgw']->acl->check('.location1.sublocation1',
PHPGW_ACL_ADD,'some_application')
if the applicationname is not given - currentapp will be assumed.

check for grants:

in so-class:
$this->grants=$GLOBALS['phpgw']->acl->get_grants('some_application','.location1.sublocation1');

    .
    .
    .
while ($this->db->next_record())
{
    $ngrants = $this->grants[$this->db->f('account_id')];
    $account_info[] = array
    (
        'value'        => $this->db->f('value'),
        'grants'    => $ngrants
    );
}


Regards

Sigurd




reply via email to

[Prev in Thread] Current Thread [Next in Thread]