2022-04-29 13:58:14 +00:00
# S C I M Server
Place this app in **nextcloud/apps/**
2022-04-29 12:50:07 +00:00
2022-04-29 13:58:14 +00:00
## Building the app
2022-04-29 12:50:07 +00:00
2022-04-29 13:58:14 +00:00
The app can be built by using the provided Makefile by running:
2022-04-29 12:50:07 +00:00
2022-04-29 13:58:14 +00:00
make
2022-04-29 12:50:07 +00:00
2022-04-29 13:58:14 +00:00
This requires the following things to be present:
* make
* which
* tar: for building the archive
* curl: used if phpunit and composer are not installed to fetch them from the web
* npm: for building and testing everything JS, only required if a package.json is placed inside the **js/** folder
2022-04-29 12:50:07 +00:00
2022-04-29 13:58:14 +00:00
The make command will install or update Composer dependencies if a composer.json is present and also **npm run build** if a package.json is present in the **js/** folder. The npm **build** script should use local paths for build systems and package managers, so people that simply want to build the app won't need to install npm libraries globally, e.g.:
2022-04-29 12:50:07 +00:00
2022-04-29 13:58:14 +00:00
**package.json**:
```json
"scripts": {
"test": "node node_modules/gulp-cli/bin/gulp.js karma",
"prebuild": "npm install & & node_modules/bower/bin/bower install & & node_modules/bower/bin/bower update",
"build": "node node_modules/gulp-cli/bin/gulp.js"
}
2022-04-29 12:50:07 +00:00
```
2022-04-29 13:58:14 +00:00
## Publish to App Store
2022-04-29 12:50:07 +00:00
2022-04-29 13:58:14 +00:00
First get an account for the [App Store ](http://apps.nextcloud.com/ ) then run:
2022-04-29 12:50:07 +00:00
2022-04-29 13:58:14 +00:00
make & & make appstore
2022-04-29 12:50:07 +00:00
2022-04-29 13:58:14 +00:00
The archive is located in build/artifacts/appstore and can then be uploaded to the App Store.
2022-04-29 12:50:07 +00:00
2022-04-29 13:58:14 +00:00
## Running tests
You can use the provided Makefile to run all tests by using:
2022-04-29 12:50:07 +00:00
2022-04-29 13:58:14 +00:00
make test
2022-04-29 12:50:07 +00:00
2022-04-29 13:58:14 +00:00
This will run the PHP unit and integration tests and if a package.json is present in the **js/** folder will execute **npm run test**
2022-04-29 12:50:07 +00:00
2022-04-29 13:58:14 +00:00
Of course you can also install [PHPUnit ](http://phpunit.de/getting-started.html ) and use the configurations directly:
2022-04-29 12:50:07 +00:00
2022-04-29 13:58:14 +00:00
phpunit -c phpunit.xml
2022-04-29 12:50:07 +00:00
2022-04-29 13:58:14 +00:00
or:
2022-04-29 12:50:07 +00:00
2022-04-29 13:58:14 +00:00
phpunit -c phpunit.integration.xml
2022-04-29 12:50:07 +00:00
2022-04-29 13:58:14 +00:00
for integration tests
2022-04-29 12:50:07 +00:00
2022-04-29 13:58:14 +00:00
# TODO
2022-04-29 12:50:07 +00:00
2022-05-02 10:21:25 +00:00
- [x]attribute active
2022-04-29 13:58:14 +00:00
- group mgmt
- list user
- add/remove user from groups
- update, displayName
- Erreur/Exception
- [x] json
- [x] status code
2022-05-02 10:21:25 +00:00
- [x] escaped location - JSON_UNESCAPED_SLASHES
cd apps
wget https://lab.libreho.st/libre.sh/scim/nextcloud-scim/-/archive/test-branch/nextcloud-scim-main.zip
unzip nextcloud-scim-main.zip
rm nextcloud-scim-main.zip
rm -rf scimserviceprovider
mv nextcloud-scim-test-branchxxx scimserviceprovider