Giter Site home page Giter Site logo

owncloud / customgroups Goto Github PK

View Code? Open in Web Editor NEW
8.0 8.0 14.0 1.85 MB

Let users create their own custom groups

License: GNU Affero General Public License v3.0

Makefile 1.47% PHP 37.84% Gherkin 12.69% CSS 0.29% JavaScript 36.28% Handlebars 0.54% Starlark 10.89%
owncloud-app

customgroups's People

Contributors

deepdiver1975 avatar dependabot-preview[bot] avatar dependabot-support avatar dependabot[bot] avatar dpakach avatar dschmidt avatar felixboehm avatar felixheidecke avatar grgprarup avatar hanagemela avatar haribhandari07 avatar iljan avatar individual-it avatar jammingben avatar jnweiger avatar jvillafanez avatar kiranparajuli589 avatar micbar avatar ownclouders avatar pako81 avatar patrickjahns avatar phil-davis avatar pmaier1 avatar sagargi avatar sergiobertolinsg avatar sharidas avatar skshetry avatar swikritit avatar swoichha avatar tomneedham avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

customgroups's Issues

Removing a customgroup removes shares of sharees but not of sharers.

Steps to reproduce

  1. Create a custom group 'customgroup'.
  2. Add a member to customgroup called 'member1'.
  3. Share a folder 'things' with files with group 'customgroup'.
  4. in settings remove customgroup 'customgroup'.
  5. Go to the files view and check sharing section.
  6. Create the customgroup 'customgroup' again.
  7. Add a member to customgroup called 'member2'.
  8. Log as 'member2', check if you have 'things' shared with you.

Expected behaviour

Folder stops to be shared.

Actual behaviour

Folder is still shared. Sharees doesn't see it shared though.

After step 8, member2 can see the folder 'things' shared with him.

Server configuration

Operating system:
Ubuntu 16.04

Web server:
Apache

Database:
MySQL

PHP version:
7.0

ownCloud version: (see ownCloud admin page)
10.0.3beta1
{"installed":"true","maintenance":"false","needsDbUpgrade":"false","version":"10.0.3.0","versionstring":"10.0.3 beta","edition":"Community","productname":"ownCloud"}

Updated from an older ownCloud or fresh install:
Fresh

The content of config/config.php:


Are you using external storage, if yes which one: local/smb/sftp/...
No.

Are you using encryption:
No.

Logs

Client configuration

Browser
Chrome

cc @PVince81

Custom groups should only be visible to members

Not sure why we made custom groups global (every user can share with all groups of an instance).
Somehow I find it odd in the meantime as you get to see groups to share with in the sharing dialog that you actually don't 'know' and where you can't see the member list. The only use case I could think of is that I am advised to share with such a group while not getting all the other shares the group has.

If there are other use cases where the current handling is better, please shout out!

Addition TBD: We could change the default to 'not global' (only members can share with the group) and add an option (checkbox) to make it global.

Sorting

Sorting is currently wrong and also done on the client side.

Once we add pagination, client-side sorting will not be possible any more so it needs to be done on the backend side.

  • Groups list sort:
    • first: role (admin, then member)
    • second: group display name
  • Members list sort:
    • first: role (admin, then member)
    • second: user display name (will become a headache until we have the account table to join on)

@pmaier1 FYI, I think these sort defaults make sense. I do not plan to make alternative sorts with clickable columns in this first version.

cc @felixheidecke

Improve notifications

  • Notifications
    • Create a group “qustom” as user “admin”, add user “test3” to group and promote to group admin
    • See notification below
      • Notification for being added should say “You have been added to group ‘qustom’ by ‘admin’.
      • Notification for promotion should say: “Admin” assigned ‘Group admin’ role for the group “qustom” to you.
      • For making a group admin a member again there is no notification → consistency ("Admin" assigned ‘Member’ role for the group “qustom” to you.)
        custom_groups_notification2

@pmaier1

Closing the sidebar in the customgroups view makes clicks to be ignored.

Steps to reproduce

  1. As admin user, create a custom group 'customgroup'.
  2. Click on the customgroup row. See the sidebar open.
  3. Close the sidebar.
  4. Try to open the sidebar again. Try to open the right menu.

Expected behaviour

Sidebar opens again and you can access the right menu.

Actual behaviour

Clicking after closing sidebar is ignored.

problem_customgroups_sidebar

Server configuration

Operating system:
Ubuntu 16.04

Web server:
Apache

Database:
MySQL

PHP version:
7.0

ownCloud version: (see ownCloud admin page)
10.0.3beta1
{"installed":"true","maintenance":"false","needsDbUpgrade":"false","version":"10.0.3.0","versionstring":"10.0.3 beta","edition":"Community","productname":"ownCloud"}

Updated from an older ownCloud or fresh install:
Fresh

The content of config/config.php:


Are you using external storage, if yes which one: local/smb/sftp/...
No.

Are you using encryption:
No.

Logs

Client configuration

Browser
Chrome

cc @PVince81

Proper handling of orphaned groups

Steps:

  1. Login as a user "user1"
  2. Create a group "customgroup1"
  3. Login as admin
  4. Delete user "user1"

What happens ?

If "user1" is the only member of the group, automatically delete the group as well.
If there are other members in the group (admin or non-admin), the group stays. If there is no admin in the group, the superadmin (aka ownCloud admin) has the ability to set a group admin for that one.

@pmaier1 @SergioBertolinSG @DeepDiver1975

0.3.5 release checklist

Release needed for https://github.com/owncloud/enterprise/issues/2092#issuecomment-321470519, amongst others.

Development, Open must have for release

QA

  • create "0.3.4 Testplan", link: #86

Marketing

Build

  • bump version in info.xml => #111
  • Change CHANGELOG.md 'Unreleased' to '$version' and add a new 'Unreleased' section => #111
  • sign and build tarball
  • upload to marketplace
  • rename QA milestone to '$version'

LDAP users are not removed from dropdown when they are already members of the custom group.

Steps to reproduce

  1. Set up a ldap server.
  2. Create a custom group 'ldap_group' using a user from the ldap server.
  3. Add ldap users to the custom group 'ldap_group'.
  4. Try to add an already added ldap user to the custom group 'ldap_group'.

Expected behaviour

Users which are already members of the customgroup doesn't appear in the dropdown.

Actual behaviour

Ldap users which are already members of the customgroup still appear in the dropdown.
When choosing them, they cannot be added though, which is correct.

screen shot 2017-08-22 at 16 49 54

Server configuration

Operating system:
Ubuntu 16.04

Web server:
Apache

Database:
MySQL

PHP version:
7.0

ownCloud version: (see ownCloud admin page)
10.0.3beta1
{"installed":"true","maintenance":"false","needsDbUpgrade":"false","version":"10.0.3.0","versionstring":"10.0.3 beta","edition":"Community","productname":"ownCloud"}

Updated from an older ownCloud or fresh install:
Fresh

The content of config/config.php:


Are you using external storage, if yes which one: local/smb/sftp/...
No.

Are you using encryption:
No.

Logs

Client configuration

Browser
Chrome

cc @PVince81

Sort out code coverage publishing

@DeepDiver1975 I copied the travis.yml stuff from the activity app and it came with clover code coverage.

However for this project it gives a 404 when uploading. I suspect that one needs to create a project on some website for publishing to work.

Can you take care of this and uncomment the matching line in .travis.yml ?

Thanks

Send notification when added to group

Whenever a group admin adds a user to a group, send that user a notification using the notification API.

(note that as of today notifications do not send email but appear only in the web UI and clients that support notifications)

Bogus spinners

Spinner appears on delete but never disappears.
Also appears in the wrong place when switching member permission.

Need more specific spinners there.

Properly namespace group events

Since the event dispatcher is global, we should namespace the events: \OCA\CustomGroups::leaveGroup.

@sharidas please adjust everywhere accordingly. Sorry for not noticing this earlier.

Use group manager everywhere

Goal is to be able to have the group manager events (hooks) triggered automatically:

  • delete: #89
  • add to group
  • remove from group

The reason why we didn't do this in the first place back then was mostly because we didn't have the concept of "scope" before, so supporting the above operations would mean that the groups would become visible in the users page and provisioning API. Now that we have the scopes concept, this is not needed any more and we can now use the group manager instead.

To do so, the CustomGroupsDatabaseHandler must implement the above operations "officially" and advertise these through implementsAction. Then the DAV code needs to use the group manager's methods instead of going directly to the database handler. See delete PR for an example.

Customgroups doesn't appear in settings after install it.

Steps to reproduce

  1. Install customgroups from public marketplace.
  2. Look for it in settings.

Expected behaviour

It is there.

Actual behaviour

It doesn't appear.

Server configuration

Operating system:
Ubuntu 16.04

Web server:
Apache

Database:
MySQL

PHP version:
7.0

ownCloud version: (see ownCloud admin page)
{"installed":"true","maintenance":"false","needsDbUpgrade":"false","version":"10.0.1.3","versionstring":"10.0.1 RC4","edition":"Enterprise","productname":"ownCloud"}

Updated from an older ownCloud or fresh install:
Fresh

The content of config/config.php:


Are you using external storage, if yes which one: local/smb/sftp/...
Yes WND.

Tested using windows server 2008 R2 and windows 10.

Are you using encryption:
No

Logs

Client configuration

Browser
Chrome

Logs


OC admin must appear as "Group admin" in main list

Currently the UI shows "Member" for every groups displayed in the group list when logged in as OC admin.

Remember, the OC admin can manage any group regardless of membership.

The behavior must be changed to display "Group admin" for OC admins.

Makefile must sign app

Make it possible to specify a key in an env variable and use that key with occ to sign the app.

We'll likely need such process to make it easier to release signed market apps.

CC @DeepDiver1975 @VicDeo

Cache module list

modules.json contains the list of JS files to load, but it is parsed every time.

It might make sense to cache this list somewhere (memcache) ?

The reason we need such file is because the list is used both for PHP script loading and also by the JS unit tests. Also the file specifies the correct loading order.

@jvillafanez any suggestions on caching ?

Add (2) when creating duplicate group name

Whenever a user creates a new group, automatically append (2) or another number if the group list visible for this user already contains a similar entry. This is mostly for information purposes.
The user can still choose to rename the group back to the name.

Should not append anything if the group exists but is not visible for the current user.

Estimate: 1-3 days as we might have to tear up the server side implementation

Renaming of customgroups using web ui is not possible.

Steps to reproduce

  1. As admin user, create a custom group 'customgroup'.
  2. As admin user, using the frontend rename 'customgroup' to 'renamedgroup'.

Expected behaviour

Customgroup is renamed.

Actual behaviour

It fails to rename the customgroup.

Server configuration

Operating system:
Ubuntu 16.04

Web server:
Apache

Database:
MySQL

PHP version:
7.0

ownCloud version: (see ownCloud admin page)
10.0.3beta1
{"installed":"true","maintenance":"false","needsDbUpgrade":"false","version":"10.0.3.0","versionstring":"10.0.3 beta","edition":"Community","productname":"ownCloud"}

Updated from an older ownCloud or fresh install:
Fresh

The content of config/config.php:


Are you using external storage, if yes which one: local/smb/sftp/...
No.

Are you using encryption:
No.

Logs

{"reqId":"cTxBi29Px0i4qvbOsG0n","level":4,"time":"2017-08-22T08:24:51+00:00","remoteAddr":"HIDDEN_IP","user":"admin","app":"webdav","method":"MKCOL","url":"\/remote.php\/dav\/customgroups\/groups\/soyprivado2","message":"Exception: {\"Message\":\"HTTP\\\/1.1 409 Group with display name \\\"soyprivado\\\" already exists\",\"Exception\":\"Sabre\\\\DAV\\\\Exception\\\\Conflict\",\"Code\":0,\"Trace\":\"#0 \\\/opt\\\/owncloud\\\/apps\\\/customgroups\\\/lib\\\/Dav\\\/GroupsCollection.php(124): OCA\\\\CustomGroups\\\\Dav\\\\GroupsCollection->createGroup('soyprivado2', 'soyprivado')\\n#1 \\\/opt\\\/owncloud\\\/lib\\\/composer\\\/sabre\\\/dav\\\/lib\\\/DAV\\\/Server.php(1196): OCA\\\\CustomGroups\\\\Dav\\\\GroupsCollection->createExtendedCollection('soyprivado2', Object(Sabre\\\\DAV\\\\MkCol))\\n#2 \\\/opt\\\/owncloud\\\/lib\\\/composer\\\/sabre\\\/dav\\\/lib\\\/DAV\\\/CorePlugin.php(590): Sabre\\\\DAV\\\\Server->createCollection('customgroups\\\/gr...', Object(Sabre\\\\DAV\\\\MkCol))\\n#3 [internal function]: Sabre\\\\DAV\\\\CorePlugin->httpMkcol(Object(Sabre\\\\HTTP\\\\Request), Object(Sabre\\\\HTTP\\\\Response))\\n#4 \\\/opt\\\/owncloud\\\/lib\\\/composer\\\/sabre\\\/event\\\/lib\\\/EventEmitterTrait.php(105): call_user_func_array(Array, Array)\\n#5 \\\/opt\\\/owncloud\\\/lib\\\/composer\\\/sabre\\\/dav\\\/lib\\\/DAV\\\/Server.php(479): Sabre\\\\Event\\\\EventEmitter->emit('method:MKCOL', Array)\\n#6 \\\/opt\\\/owncloud\\\/lib\\\/composer\\\/sabre\\\/dav\\\/lib\\\/DAV\\\/Server.php(254): Sabre\\\\DAV\\\\Server->invokeMethod(Object(Sabre\\\\HTTP\\\\Request), Object(Sabre\\\\HTTP\\\\Response))\\n#7 \\\/opt\\\/owncloud\\\/apps\\\/dav\\\/lib\\\/Server.php(234): Sabre\\\\DAV\\\\Server->exec()\\n#8 \\\/opt\\\/owncloud\\\/apps\\\/dav\\\/appinfo\\\/v2\\\/remote.php(31): OCA\\\\DAV\\\\Server->exec()\\n#9 \\\/opt\\\/owncloud\\\/remote.php(165): require_once('\\\/opt\\\/owncloud\\\/a...')\\n#10 {main}\",\"File\":\"\\\/opt\\\/owncloud\\\/apps\\\/customgroups\\\/lib\\\/Dav\\\/GroupsCollection.php\",\"Line\":135,\"User\":\"admin\"}"}

Client configuration

Browser
Chrome

cc @PVince81

Settings page broken when avatars are disabled

  1. Set "enable_avatars" to false in config.php
  2. Open settings page
  3. Create a group

Expected: still works
Actual: broken with JS errors.

Maybe need some shims... I'm pretty sure this is not the only app that is likely to break.

Fix Travis karma issues

JS tests usually run fine locally for me, but for some reason the Travis env is having trouble:

/home/travis/build/owncloud/core/apps/customgroups/node_modules/.bin/karma start tests/js/karma.config.js --single-run
/home/travis/build/owncloud/core/apps/customgroups/node_modules/socket.io/lib/store.js:35
Store.prototype.__proto__ = EventEmitter.prototype;
                                        ^

TypeError: Cannot read property 'prototype' of undefined
    at Object.<anonymous> (/home/travis/build/owncloud/core/apps/customgroups/node_modules/socket.io/lib/store.js:35:41)
    at Module._compile (module.js:571:32)
    at Object.Module._extensions..js (module.js:580:10)
    at Module.load (module.js:488:32)
    at tryModuleLoad (module.js:447:12)
    at Function.Module._load (module.js:439:3)
    at Module.require (module.js:498:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/home/travis/build/owncloud/core/apps/customgroups/node_modules/socket.io/lib/manager.js:16:13)
    at Module._compile (module.js:571:32)
make: *** [test-js] Error 1

Frontend for custom groups management

  • form / panel to create new groups and become admin
  • list
    • see groups in which current user is member (read-only)
    • see members of groups in which current user is member
  • search / quick filter ?
  • actions as group admin
    • rename group
    • delete group
    • add/remove members
    • set member / groupadmin role on group members
  • actions as group member
    • see members inside group
    • leave group

Send notification on group delete to all members

Use background job because it could be a lot of users.

On the other hand, we need to find out the former members after the group was deleted.
Adding the list of members as a parameter to the background job is not an option because that array is likely to become big.

So it almost looks like we'd need a "deleted" flag first to the group is technically deleted and invisible, but the members data is still there until full deletion.

0.1 (alpha) release plan

  • PRs

    • hide from users page: #30
    • (nice to have:) get rid of browser native dialogs: #36
    • properly align "Leave group" button: #42
  • test if tarball built by make dist looks fine and runs when installed

  • tag as v0.1 and update/check info.xml

  • get it signed

  • publish to marketplace (once ready)

Pagination with REPORT

Currently we use PROPFIND for many listing operations.

We need to also provide a REPORT method that supports pagination for these operarations.

Make fails if base folder contains spaces

Steps to reproduce:

  1. Have your ownCloud Core sit in a folder that contains spaces.
  2. Try Make in the customgroups folder

Expected behavior

Make runs fine

Actual behavior

Make breaks as it can't find NAME/apps/customgroups/tools/composer.phar as in the example below.

Composer (version 1.4.2) successfully installed to: /home/[...]/FOLDER NAME/apps/customgroups/tools/composer.phar
Use it: php composer.phar

chmod u+x NAME/apps/customgroups/tools/composer.phar
chmod: Zugriff auf 'NAME/apps/customgroups/tools/composer.phar' nicht möglich: Datei oder Verzeichnis nicht gefunden

OS: Ubuntu 16.04

Update required for the Custom Groups market app

In the screenshot below, in the Personal navigation list (1) the app name is spelled as "Customgroups". However, in the app title (2) (sorry, not sure of a better term) it's spelled "Custom Groups".

The navigation list title needs to be changed to be consistent with the naming in the rest of the application.

custom groups ui error

Web UI must show error when removing last admin as ownCloud admin

  • Admin can change the role of the last group member to ‘member’ (admin is not in the group)
    → no ‘group admin’ left

The UI allows this but not the backend.
So the last admin would still stay in the group.

This bug is about making the UI show a proper message in this situation.

cc @pmaier1

Notification when user added to a custom group contains &quot;

Steps to reproduce

  1. Allow notifications in your browser
  2. Create a custom group
  3. Watch notification

Expected behaviour

The notification should not contain "&quot"

Actual behaviour

This is how it looks:

grafik

Server configuration

Operating system:

Web server:

Database:

PHP version:

ownCloud version: (see ownCloud admin page)
10.0.1

Basic implementation

Goal

  • Increase user acceptance of ownCloud service
  • Improve ownCloud usability

Basic Idea:

  • Every user can create groups
  • Every User can share with all existing groups

Group Roles

  • Roles: Groupadmin and Member
  • All ownCloud Users can create groups and become groupadmin of this group

Group Management

  • User has overview of his groups (he is groupadmin)
  • User has overview of his group memberships (he is member)
  • User gets notification when added to group

As groupadmin, I can

  • rename, delete group
  • add, remove users to/from group
  • set member / groupadmin role on group members
  • not leave group if no groupadmin is left (but can delete group)

As member, I can

  • see members of a group
  • leave a group

ownCloud admins (who are in the "admin" group) can perform any operation that a group admin could.

Core requirements

  • REQUIRES: owncloud/core#26195 to allow apps to register Sabre plugins (because in the future all APIs are based on Webdav)
  • REQUIRES: support for group display names: owncloud/core#7918

Backend tasks

  • implement group backend for user groups: #1

  • new DB tables to store these groups: #1

  • generate unique group ids to avoid collisions: #1

  • Webdav APIs for group management: #3

  • transfer ownership must work with those

  • send notification when added to group: #4

Frontend tasks

  • groups and membership management: #5

csv import to create larger groups

Use case:
For some larger event a group has to be generated to share event material with.
All users are already known and listed in a csv file.

In order to allow easier setup of such a larger groups an import based on this csv will help a lot.
All users are written down in the csv file will be added to an existing group

Testing customgroups 0.3.4

Customgroups Test Plan

Test Case Expected Result Result Related Comment
Enable the app. No problems found. ⚙️
Disable and enable the app using CLI. No problems found. ⚙️
Create a custom group. Custom group is created correctly. ⚙️
Create an already existing custom group. The group cannot be created again. ⚙️
Delete a custom group. The group is removed correctly. ⚙️
Rename a custom group. The group is renamed correctly. ⚙️
As a non-admin member try to rename its custom group. He cannot rename its custom group ⚙️
Get members of a group. Members are retrieved correctly. ⚙️
Check that the creator of a custom group becames admin automatically. No problems found. ⚙️
As a creator of a custom group add members. Members are added correctly. ⚙️
As non-admin member of a custom group try to add members. Non-admin member cannot add members. ⚙️
As non-member of a custom group try to list its members. Non-admin member cannot list members. ⚙️
As custom group member try to list members. Custom group member can list members. ⚙️
As non-admin member of a custom group try to delete a custom group A non-admin member of a custom group cannot delete a custom group. ⚙️
As a creator of a custom group try to remove members. Creator of a custom group can remove members. ⚙️
As a non-admin member of a custom group try to remove members A non-admin member of a custom group cannot remove members. ⚙️
Not having more admins on a custom group, as group owner try to remove yourself from the group Group owner cannot remove self if no other admin exists in the group. ⚙️
As member of a custom group leave the custom group. A member of a custom group can leave the custom group himself. ⚙️
As a user check the groups you belong to. A user can list his groups. ⚙️
As owner of a group, try to change the role of a member of the group. Role is changed successfully. ⚙️
Create a custom group and let user 'member1' as admin. 'member1' is the new admin of the group. No problems. ⚙️
As superadmin of the server create a custom group. Superadmin can create custom groups. ⚙️
As superadmin add a user to a custom group. Superadmin can add a user to any custom group. ⚙️
As superadmin rename a custom group. Superadmin can rename any custom group. ⚙️
As superadmin change role of a member of a group making him admin. Superadmin can change roles. ⚙️
As superadmin remove a member of a custom group. Superadmin can remove members. ⚙️
As superadmin try to list members of a custom group. Superadmin can list members. ⚙️
As member converted to group owner add members to group, remove members, change roles and list members. A member converted to group owner can do the same as group owner ⚙️
Having no other admin in a custom group, as group owner try to remove your own admin permissions. A group owner cannot remove his own admin permissions if there is no other owner in the group ⚙️
Check that a non-existing user cannot be added to a custom group ⚙️
Using frontend
Create a custom group. Custom group is created correctly.
Create an already existing custom group. The group cannot be created again. A warning appears.
Delete a custom group. The group is removed correctly.
Rename a custom group. The group is renamed correctly. fixed #87
As a creator of a custom group add members. Members are added correctly.
As regular user member of a custom group check the users in the custom groups. You can see the other members.
As non-admin member of a custom group try to add members. Non-admin member cannot add members. There is no UI element to do it.
As non-admin member of a custom group try to delete a custom group A non-admin member of a custom group cannot delete a custom group.
As a creator of a custom group try to remove members. Creator of a custom group can remove members.
As a non-admin member of a custom group try to remove members Not even possible.
Not having more admins on a custom group, as group owner try to remove yourself from the group Group owner cannot remove self if no other admin exists in the group.
As member of a custom group leave the custom group. A member of a custom group can leave the custom group himself.
As a user check the groups you belong to. A user can list his groups.
As owner of a group, try to change the role of a member of the group. Role is changed successfully. Fixed as part of #33
Create a custom group and let user 'member1' as admin. 'member1' is the new admin of the group. No problems. Fixed as part of #33
As member converted to group owner add members to group, remove members, change roles and list members. A member converted to group owner can do the same as group owner
Having no other admin in a custom group, as group owner try to remove your own admin permissions. A group owner cannot remove his own admin permissions if there is no other owner in the group
Browsers
Check that all the UI elements are usable when browsing with safari
Check that all the UI elements are usable when browsing with chrome Besides changing role issues, ok
Check that all the UI elements are usable when browsing with firefox
Check that all the UI elements are usable when browsing with edge
Check that all the UI elements are usable when browsing with IE11
Extra cases
Set up an ldap server. Create a custom group and add ldap users as members. They can use customgroups without problems. #90
Check that ldap users appear with their display name instead of the uuid.

Superadmin cannot add users to groups

Whenever a superadmin (aka ownCloud admin) is not a group member, they should still be able to add members to existing groups.

Currently it fails on the backend.

Webdav API for groups management

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.