A general multi user / multi assets adminitration model - data-modeling

Im looking for a general "multi user with multi assets adminitration" databasemodel.
Especially i would like to know how to best handle the "rights".
Let me describe my problem and question using github as sample.
github has
- many users
- many repositories
In github you can create a repository and then grant rights on your repository to other users.
What does a model look like, that "answers the question":
What users are granted rights to what repository.
My first idea was to create a "Team"-Table.
When a User gets signed up, and creates a repository there is always created a team-record for that repository.
That team has only got one member (the user it selves).
Granting a new (second) user, rights on a repository, is accomplished by making the new (scond) user a member of the team for that repository.
Has any one of you done anything like this before?
I would appreciate any hints.
Perhaps i have overseen something important in my first sketch.

Related

adding user to community

I'm doing a tutorial on communities, and after setting pages and themes, i wanted to add users. The access is made from the contact object.
I setup the community, but think i should have a link here
i setup the user of a contact like this:
User License = Customer Community
Profile = Customer Community User
Active = true
but when i try to log him in, i get: "Looks like this portal user is not a member"
I tried the same with another profile, a clone of the native Administrator profile, to which i added, in Profile Overview > App Permissions
Manage External Users = true
then, one by one, i activated all permissions, and still had that warning.
edit:
i'm using Classic
This is a developer licence
What am i missing?
The links disappeared because you killed off your own access to community (on Sysadmin, cloned profile etc). Do you remember editing this page? (sorry I had to censor some bits). If you removed System Administrator from the list of profiles - #fail.
If you can work with the new community and it's OK to have old one lying around - cool. If not - You might be able to resurrect it by exporting the community definition file, tweaking it and deploying back. I'm assuming you have some dev experience.
Prepare package.xml that contains
<types>
<members>*</members>
<name>Network</name>
</types>
Export the zip file (you don't neccessarily need developer tools, http://workbench.developerforce.com/ might be enough). Inspect the networks/YourCommunityName.network file. There should be a section similar to this
<networkMemberGroups>
<permissionSet>Censored1Access</permissionSet>
<permissionSet>Censored2Access</permissionSet>
<profile>Censored User</profile>
<profile>Admin</profile>
</networkMemberGroups>
Make sure "Admin" is on the list and deploy it back to org. It should give you access back and then you can add your customer community user's profile, permission set or whatever you plan to give them.

Database Suggestion for a social network app using Parse Server

Need suggestion for database for our social network app
So we have a "GroupChat" class where we have an array of "_Users" class objects.
Now in this "_Users" array we want to add invited user aswell.
Example: "John" is a user who invited "Dave/dave#blah.com" but dave is yet to sign up.
But when we open the GroupChat and see the list of users, it should include the invited users as well.
So we are wondering if we should
1.create a new class "InvitedUsers" for invited users or
2.we should directly add invited users to "_Users" class with a flag signedUp=false. And when they signup we check if they already exists and overwrite the data.
Now Problems,
if we create new class "InvitedUsers" then we will have to fetch both the classes everytime which is make the app a bit slow
if we create these invited users directly into user class then parse-server automatically sends email to newly created users(which we dont want to until they sign up)
if we create these invited users directly into user class then we will have to check if the invited user already exists before signing up, if exists then just overwrite. which is doable without any problem?
Thanks
Your question has 2 votes to close as primarily opinion based by now. And indeed the answer is, whatever you like more.
To address your "problems":
I really don't see why this would make your app a bit slower
Well, why don't you adjust your parsing so that the signedUp=false is considered?
Why on earth should that be a problem? That's what databases do all day. Either do it in a transaction, or if your dbms has a built-in functionality use it (like MySQL's INSERT ON DUPLICATE KEY UPDATE)

Handle logins in the multidatabase SSDT solution

I have solution that has multiple databases in it. I would like to add logins/users/permissions to the project. I have the DB project that references DB projects that are created for the databases that are on the same server but in different databases.
When I've added login and the user to the first project everything worked fine. After that I've added user to the 2nd database project (as the server is the same and I do not need to create login again). Then the build complains that there is o login for the user. If I add login to the 2nd project then it complains that the object exists already ...
I am not sure what is the right solution for my problem, but I would like to have something like:
Project "DbA" has both login and user in the project;
Project "DbB" has user in the project that uses login from the project "DbA".
Any other suggestions are welcome.
EDITED:
As a workaround I've created new project where I've added this login and the added this project as a reference to all needed DBs, but I do not really like this solution.
I took the login/user info out of the solutions, mostly because we used different ones depending on the environments. We then added/tweaked them with post-deploy scripts. This is based off of Jamie Thomson's work, but may be helpful for you: http://schottsql.blogspot.com/2013/05/ssdt-setting-different-permissions-per.html
Alternatively, you could just add the login information to each project, but that could also get troublesome to maintain after a while. SSDT should be smart enough to not mess with the login if it already exists.

GoogleApps Provisioning API to move a user from one organization to another

i have a use case to move a user from one Organization to another. The Api i am using is provisioning API. Managing Org Users gave an example for lab. Can anybody please share more info on what jar's need to be used to implement this. My rest of code is able to manage the other user functionallity.
My Code is in java
I am using jars gdata-appsforyourdomain, gdata-client, gdata-core and gdata-collect. These jars dont have any API's to manage the organizations with users. It would be great help if any one can share docs or any sample data on this use-case. Thanks
I was able to figure out the way by going through the source code of the labs and deployed the same.
AppsPropertyService service=new AppsPropertyService(applicationName);
service.setUserCredentials(adminUserName,Password);
GenericEntry entry = new GenericEntry();
entry.addProperty("oldOrgUnitPath",oldOrg);
entry.addProperty("orgUnitPath", newOrg);
service.update(new URL("https://www.google.com/a/feeds/orguser/2.0/"+cutomerId+"/"+MailIdofUserToBeMoved), entry);
customerid- is the unique key of the admin.

Create a project section in Drupal 7

i am new to Drupal and want to do the following:
Allow for a simple user registration process
Once the user is registered, allow them to register a project->a project is going to basically have a name, an address and a picture.
Allow for projects to have teams within themselves
kindly guide how to proceed and modules required to do this.
So, there is a core module called "Users". That allows for username creation and authentication. Just go to "admin/modules" and enable it. Then take some time to familiarize yourself with how that works in terms of the experience of creating an account and managing users.
If you require additional login functionality (such as being able to log in using and email address instead of a username), there is a module called LoginToboggan that provides a lot of good functionality
For user profiles, there is a new Drupal 7 module called Profile2 which should meet your needs. Just install it and its dependencies and specify which fields should be in a user profile.
For teams and projects, I think that maybe you're thinking about things the wrong way. Look into the module Organic Groups. That will allow you or users to create their own teams that can then be associated with different nodes.
Finally, create a node type called Project. Specify whatever fields you need for that project. Then, set your permissions so that users can create groups and create new Projects.

Resources