who can program a rightsmanagement? the rights should be given or altered for a single dataset for example a posting or a picture which has an entry in a table in the databse...the entry consists of the creatorID, date/time and contents. in addition there should be another table in which is stored the information about who is allowed to see the dataset.
you should write a function which gets as an input the contents of the dataset to be built, the creator and the info about who may see it. another function alters the dataset and a third return a list with the datasets who can be seen by a special person (referenced by userid) ...there should also be a possibility to set a dataset visible if you are in a special 'group'/category of the website (the info yout where you are is given by the GET-variable).
in detail the function you get should now do the following (see attachment for db structure):
alter the rights of the posting:
function gets the objID of the posting for which the rights should be altered...this posting already exists in the table links.
function gets an array of userIDs which contains the userIDs of the users who are allowed to see the posting. these userIDs are the objID in the table obj_user.
function gets an array of groupIDs. they are the objID in the table 'obj_portal'.
function stores the objID of the posting in the field favID in the table obj_favoriten and the objIDs of the users or groups which are allowed to watch in the creatorID. so if there are several users who are allowed to there must be several new datasets in obj_favoriten.
the field status in obj_favoriten must be set on 1.
to say that user must have a special ID AND must be in a special group there should be added a field in the table links which specifies this..if it is 1 user must have a special ID AND must be in a special group. if its 0, user must have a special ID OR must be in a special group. your function will also get this field as a variable
of course if the rights for a dataset are altered all the former datasets concerning this posting in obj_favoriten must be deleted, so status must be set to 0.
the next thing is that the function should return the objIDs of the datasets which current user is allowed to see.
so function gets in this case the objID of the user. in addition it gets an array with userIDs for example ID1 and ID2. in this case it should only return the postings created be ID1 or ID2. the same with the groupIDs. if im in the group soccer i only want to see postings which can be seen by the group soccer. so there is another aray with groupIDs for example groupID1. in this case function also gets a variable which tells of it should return postings by users AND groups or by users OR groups...
the last thing is the case in which a posting should be seen if user is in a special group OR if he is not in a group (so on our main page). for example a soccer fan wants to tell us something but he is of the opinion that it should also be displayed on our main page where you are not in a group but not in the car group for example.
in this case the table links gets another nw field which specifies if posting should also be displayed if you are not in a special group. your function will also get this as a variable.
6 freelancers are bidding on average $275 for this job
I can provide this functionality for you. I've done very similiar things before, and have a large codebase to pull from to get the job done quickly and efficiently.