diff --git a/.github/workflows/demo.yml b/.github/workflows/demo.yml new file mode 100644 index 000000000..945a62667 --- /dev/null +++ b/.github/workflows/demo.yml @@ -0,0 +1,48 @@ +name: Release to demo + +on: + release: + types: [created] + +# Environment variables available to all jobs and steps in this workflow +env: + GITHUB_SHA: ${{ github.sha }} + GKE_ZONE: europe-west4-c + GKE_CLUSTER: igrant-cluster + REGISTRY_HOSTNAME: eu.gcr.io + +jobs: + setup-build-publish-deploy: + name: Setup, Build, Publish, and Deploy + runs-on: ubuntu-20.04 + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Get the version + id: get_version + run: echo ::set-output name=VERSION::${GITHUB_REF/refs\/tags\//} + + # Setup gcloud CLI + - uses: google-github-actions/setup-gcloud@v0 + with: + version: "270.0.0" + service_account_key: ${{ secrets.GKE_SA_KEY }} + project_id: ${{ secrets.GKE_PROJECT }} + + # Configure Docker to use the gcloud command-line tool as a credential + # helper for authentication + - run: |- + gcloud --quiet auth configure-docker + + # Get the GKE credentials so we can deploy to the cluster + - uses: google-github-actions/get-gke-credentials@fb08709ba27618c31c09e014e1d8364b02e5042e + with: + cluster_name: ${{ env.GKE_CLUSTER }} + location: ${{ env.GKE_ZONE }} + credentials: ${{ secrets.GKE_SA_KEY }} + + # Build docker image, publish docker image to gcp container registry, deploy to production + - name: Build docker image, publish docker image to gcp container registry, deploy to production + run: | + make build/docker/deployable publish deploy/production diff --git a/.github/workflows/production-gke.yml b/.github/workflows/production-gke.yml deleted file mode 100644 index a6ee0cc5d..000000000 --- a/.github/workflows/production-gke.yml +++ /dev/null @@ -1,54 +0,0 @@ -name: On release build and deploy privacy dashboard docker image to production cluster - -on: - release: - types: [created] - -# Environment variables available to all jobs and steps in this workflow -env: - GKE_PROJECT: ${{ secrets.GKE_PROJECT_JENKINS }} - GKE_EMAIL: ${{ secrets.GKE_EMAIL_JENKINS }} - GITHUB_SHA: ${{ github.sha }} - GKE_ZONE: europe-west3-c - GKE_CLUSTER: igrant-cluster - IMAGE: igrant-privacy - REGISTRY_HOSTNAME: eu.gcr.io - DEPLOYMENT_NAME: gke-test - -jobs: - setup-build-publish-deploy: - name: Setup, Build, Publish, and Deploy - runs-on: ubuntu-latest - steps: - - - name: Checkout - uses: actions/checkout@v2 - - - name: Get the version - id: get_version - run: echo ::set-output name=VERSION::${GITHUB_REF/refs\/tags\//} - - # Setup gcloud CLI - - uses: google-github-actions/setup-gcloud@master - with: - version: '270.0.0' - service_account_email: ${{ secrets.GKE_EMAIL_JENKINS }} - service_account_key: ${{ secrets.GKE_KEY_JENKINS }} - - # Configure docker to use the gcloud command-line tool as a credential helper - - run: | - # Set up docker to authenticate - # via gcloud command-line tool. - gcloud auth configure-docker - - # Build the Docker image - - name: Build - run: | - docker build -t "$REGISTRY_HOSTNAME"/"$GKE_PROJECT"/"$IMAGE":"$GITHUB_SHA"-${{ steps.get_version.outputs.VERSION }}-release \ - --build-arg GITHUB_SHA="$GITHUB_SHA" \ - --build-arg GITHUB_REF="$GITHUB_REF" -f resources/docker/Dockerfile . - - # Push the Docker image to Google Container Registry - - name: Publish - run: | - docker push $REGISTRY_HOSTNAME/$GKE_PROJECT/$IMAGE:$GITHUB_SHA-${{ steps.get_version.outputs.VERSION }}-release diff --git a/.github/workflows/staging.yml b/.github/workflows/staging.yml new file mode 100644 index 000000000..7c5ca31b5 --- /dev/null +++ b/.github/workflows/staging.yml @@ -0,0 +1,60 @@ +name: Release to staging + +on: + push: + branches: + - main + +# Environment variables available to all jobs and steps in this workflow +env: + GITHUB_SHA: ${{ github.sha }} + GKE_ZONE: europe-west4-c + GKE_CLUSTER: igrant-cluster + REGISTRY_HOSTNAME: eu.gcr.io + +jobs: + setup-build-publish-deploy: + name: Setup, Build, Publish, and Deploy + runs-on: ubuntu-20.04 + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Get the version + id: get_version + run: echo ::set-output name=VERSION::${GITHUB_REF/refs\/tags\//} + + - uses: sonarsource/sonarqube-scan-action@master + env: + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} + SONAR_HOST_URL: ${{ secrets.SONAR_HOST_URL }} + # If you wish to fail your job when the Quality Gate is red, uncomment the + # following lines. This would typically be used to fail a deployment. + # - uses: sonarsource/sonarqube-quality-gate-action@master + # timeout-minutes: 5 + # env: + # SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} + + # Setup gcloud CLI + - uses: google-github-actions/setup-gcloud@v0 + with: + version: "270.0.0" + service_account_key: ${{ secrets.GKE_SA_KEY }} + project_id: ${{ secrets.GKE_PROJECT }} + + # Configure Docker to use the gcloud command-line tool as a credential + # helper for authentication + - run: |- + gcloud --quiet auth configure-docker + + # Get the GKE credentials so we can deploy to the cluster + - uses: google-github-actions/get-gke-credentials@fb08709ba27618c31c09e014e1d8364b02e5042e + with: + cluster_name: ${{ env.GKE_CLUSTER }} + location: ${{ env.GKE_ZONE }} + credentials: ${{ secrets.GKE_SA_KEY }} + + # Build docker image, publish docker image to gcp container registry, deploy to production + - name: Build docker image, publish docker image to gcp container registry, deploy to production + run: | + make build/docker/deployable publish deploy/staging diff --git a/LICENSE b/LICENSE new file mode 100644 index 000000000..762628bb6 --- /dev/null +++ b/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [2025] [LCubed (iGrant.io), Sweden] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. \ No newline at end of file diff --git a/Makefile b/Makefile index 5347445d0..7a4dd4c6c 100644 --- a/Makefile +++ b/Makefile @@ -1,16 +1,14 @@ -PROJECT := igrant +PROJECT := bb-consent APP := privacy NAME = $(PROJECT)-$(APP) -PROJECT_PACKAGE := github.com/igrant/$(APP) - TERM_FLAGS ?= -ti EXTRA_RUN_ARGS ?= VERSION ?= $(shell git describe --tags --abbrev=0) CANDIDATE ?= "dev" -CONTAINER_PRIVACY ?= "igrant_privacy_dev" +CONTAINER_DASHBOARD ?= "bb-consent_privacy_dashboard_dev" CONTAINER_DEFAULT_RUN_FLAGS := \ --rm $(TERM_FLAGS) \ @@ -38,27 +36,21 @@ DOCKER_TAG := $(GIT_BRANCH)-$(shell date +%Y%m%d%H%M%S)-$(GIT_COMMIT) .PHONY: help help: @echo "------------------------------------------------------------------------" - @echo "iGrant privacy" + @echo "BB Consent Individual Privacy Dashboard" @echo "------------------------------------------------------------------------" @grep -E '^[0-9a-zA-Z_/%\-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' -.bootstrap: - git clone git@github.com:L3-iGrant/bootstrap.git "$(CURDIR)/.bootstrap" - -.PHONY: bootstrap -bootstrap: .bootstrap ## Boostraps development environment - git -C $(CURDIR)/.bootstrap fetch --all --prune - git -C $(CURDIR)/.bootstrap reset --hard origin/master - make -C .bootstrap bootstrap +bootstrap: resources/ssl/development ## Boostraps development environment + make -C resources/ssl/development bootstrap setup: bootstrap ## Sets up development environment -run: ## Run privacy locally for development purposes +run: ## Run dashboard locally for development purposes docker run \ $(CONTAINER_DEFAULT_RUN_FLAGS) \ --expose 5000 \ -e VIRTUAL_HOST=$(APP).$(PROJECT).dev \ - --name "${CONTAINER_PRIVACY}" \ + --name "${CONTAINER_DASHBOARD}" \ $(DOCKER_IMAGE):dev .PHONY: build/docker/deployable @@ -72,15 +64,14 @@ build: ## Builds the docker image .PHONY: publish publish: $(DEPLOY_VERSION_F ILE) ## Publish latest production Docker image to docker hub - gcloud docker -- push $(DEPLOY_VERSION) + docker push $(DEPLOY_VERSION) deploy/production: $(DEPLOY_VERSION_FILE) ## Deploy to K8s cluster (e.g. make deploy/{preview,staging,production}) - kubectl set image deployment/igrant-privacy igrant-privacy=$(DEPLOY_VERSION) + kubectl set image deployment/demo-consent-bb-privacy-dashboard demo-consent-bb-privacy-dashboard=$(DEPLOY_VERSION) -n govstack-demo deploy/staging: $(DEPLOY_VERSION_FILE) ## Deploy to K8s cluster (e.g. make deploy/{preview,staging,staging}) - kubectl set image deployment/igrant-privacy igrant-privacy=$(DEPLOY_VERSION) -n staging + kubectl set image deployment/staging-consent-bb-privacy-dashboard staging-consent-bb-privacy-dashboard=$(DEPLOY_VERSION) -n govstack $(DEPLOY_VERSION_FILE): @echo "Missing '$(DEPLOY_VERSION_FILE)' file. Run 'make build/docker/deployable'" >&2 - exit 1 - + exit 1 \ No newline at end of file diff --git a/README.md b/README.md index ae78db6bf..d3dacd622 100644 --- a/README.md +++ b/README.md @@ -1,114 +1,39 @@ -# privacyboard -This is the code for deploying privacy dashboard for organisations +
+ About • + Release Status • + Contributing • + Licensing +
-# go to app's directory -$ cd privacyboard +## About -# install app's dependencies -$ npm install -``` -## Basic usage +This repository hosts source code for the reference implementation of the GovStack Consent Building Block Privacy Dashboard (WebClient) towards individuals. -``` bash -# dev server with hot reload at http://localhost:3000 -$ npm start -``` -Navigate to [http://localhost:3000](http://localhost:3000). The app will automatically reload if you change any of the source files. +## Release Status -### Build +Refer to the [wiki page](https://github.com/decentralised-dataexchange/bb-consent-docs/wiki/wps-and-deliverables) for the latest status of the deliverables. -Run `build` to build the project. The build artifacts will be stored in the `build/` directory. +## Other resources -```bash -# build for production with minification -$ npm run build -``` -## What's included +* Wiki - https://github.com/decentralised-dataexchange/consent-dev-docs/wiki -Within the download you'll find the following directories and files, logically grouping common assets and providing both compiled and minified variations. You'll see something like this: +## Contributing -``` -privacyboard#v1.0.0 -├── config/ #config files -| ├── jest #jest config -| ├── env.js #node enviornment setup -| ├── paths.js #relative paths -| ├── webpack.config.dev #webpack config for developement enviornment -| ├── webpack.config.prod #webpack config for production enviornment -│ └── webpackDevServer.config.js #webpack developement server config -| -├── public/ #static files -| ├── favicon.ico #icon -| ├── manifest.json #manifest -│ └── index.html #html temlpate -| -├── scripts/ #scripts files -| ├── build.js #build script -| ├── start.js #start script -│ └── test.js #test script -| -├── src/ #project root -│ ├── assets/ #assets folder -│ ├── authorization/ #auth library -│ ├── Components/ #app components -│ ├── helper/ #translator script -│ ├── history/ #browser history -│ ├── localization/ #locale strings -│ ├── Provider/ #Mobx store -│ ├── services/ #API services -│ ├── app.config.js #app config file -│ ├── App.css -│ ├── App.js -│ ├── App.test.js -│ ├── index.js -│ └── serviceWorker.js #service worker -│ -├── .env -├── .gitignore -└── package.json -``` -# Configuration -```html - - +Feel free to improve the plugin and send us a pull request. If you find any problems, please create an issue in this repo. - - - - - - - -{t("forgotPasswordPageTitle")}
- - {/* Forgot Password Screen */} -Enter the email address you registered with us. We'll send you an email in order to let - you choose a new password
-Password reset e-mail has been sent to {formValues.Email !== undefined ? formValues.Email : ""}. - Click here to go back to login. -
-Copyright © 2019 LCubed AB, Sweden. All rights reserved.
-+ {t("forgotPasswordPageTitle")} +
+ + {/* Forgot Password Screen */} ++ Enter the email address you registered with us. We'll send you + an email in order to let you choose a new password +
++ Password reset e-mail has been sent to{" "} + + {formValues.Email !== undefined ? formValues.Email : ""} + + . Click here to go back to login. +
++ Copyright © 2023 LCubed AB, Sweden. All rights reserved. +
+{store.user.email ? store.user.email : 'No email'}
-{store.user.lastVisit ? `${t('lastVisit')} : ${store.user.lastVisit}` : 'No last visit'}
-{store.user.email ? store.user.email : "No email"}
++ {store.user.lastVisit + ? `${t("lastVisit")} : ${store.user.lastVisit}` + : "No last visit"} +
+{t("signin")}
-Copyright © 2019 LCubed AB, Sweden. All rights reserved.
-{this.state.openIdLoaderText}
-{t("signin")}
++ Copyright © 2023 LCubed AB, Sweden. All rights reserved. +
+{this.state.openIdLoaderText}
+Manage your data
{t("landingPage.usagePurpose")}
-{t("userRequests.description")}
- - -{t("landingPage.downloadData")}
-{t('downloadData.description')}
- -{t("landingPage.deleteData")}
-{t('deleteData.description')}
- - {/*Manage your data
-{overview.manageData}
- - */} - {/*User Requests
-{overview.userRequests}
- - */} -{t("landingPage.viewLogs")}
-{t('viewlogs.description')}
- -Manage your data
{t("landingPage.usagePurpose")}
++ {t("userRequests.description")} +
+ +{t("landingPage.viewLogs")}
++ {t("viewlogs.description")} +
+ +{t("deleteData.emptyMessage")}
-- {t("deleteData.createOne")}{" "} - - {t("dashboard.userRequest")} - {" "} - {t("deleteData.andThen")}{" "} - {t("userRequests.newRequest")}!. -
-{t("downloadData.emptyMessage")}
-- {t("deleteData.createOne")}{" "} - - {t("dashboard.userRequest")} - {" "} - {t("deleteData.andThen")}{" "} - {t("userRequests.newRequest")}!. -
-{Name || 'No Name'}
{/*{`Type : ${Type && Type.Type || 'No Type'}`}
*/} diff --git a/src/Components/PrivacyPolicy/PrivacyPolicy.jsx b/src/Components/PrivacyPolicy/PrivacyPolicy.jsx deleted file mode 100644 index b01e4e5f4..000000000 --- a/src/Components/PrivacyPolicy/PrivacyPolicy.jsx +++ /dev/null @@ -1,279 +0,0 @@ -import React, {Component} from "react"; - -//Store -import {store, auth} from "../../Provider/store"; -import {observer} from "mobx-react"; - -//Styles -import "./privacypolicy.css"; - -import defaultLogo from "assets/icons/igrant.io_200X200.jpg"; - -@observer -class PrivacyPolicy extends Component { - getPrivacyPolicy(orgID) { - if (orgID === "5de11ef088ae12000184f7c4") { - return "- This is the default policy page for all the usage purposes. This - is to inform you that we use your data only for the purpose we - have shown. For each of your personal data attributes, you can - view and will be used only if you consent us to use it. You can - view the current status for all your personal data, the purposes - for which they are used and provide you the choice to opt-in or - opt-out. -
-- For the meetings and events registrations conducted by us, we - use your personal data. You may, at any time opt-out of the - usage of your data at the attribute level or at the purpose - level via our privacy dashboard or by using the opt-out features - available in the iGrant.io app. -
-- As a member you receive timely information via our newsletters. - You may, at any time opt-out of the usage of your data at the - attribute level or at the purpose level via our privacy - dashboard or by using the opt-out features available in the - iGrant.io app. -
-- Det finns tre regelverk som styr databehandling av - personuppgifter i Golfsverige. Dessa regler gäller för alla - fysiska personer (golfspelare, ledare och anställda inom golfen) - samt alla juridiska personer (alla golforganisationer). De - styrande regelverken är Dataskyddsförordningen (GDPR), Idrottens - Uppförandekod samt GIT-bestämmelserna. Genom att använda våra - tjänster accepterar du vår dataskyddspolicy och vår behandling - av dina personuppgifter. Du godkänner att Täby Golf AB och Täby - Golfklubb (nedan kallade Täby Golf) använder elektroniska - kommunikationskanaler för att skicka information till dig. Du - kan enkelt kontrollera vilken data som hanteras kring dig samt - för vilket syfte. Detta gör du genom att logga in på din - integritetspanel (här). Har du frågor om GDPR eller någon av de - andra regelverken kan du alltid kontakta klubbens kansli - info@xxxxxxxxxx.se -
-- När golfspelaren blir medlem och får ett Golf-ID blir han/hon - automatiskt bunden av stadgar, GIT bestämmelserna och beslut som - fattas av golforganisationen. GIT bestämmelserna styr all - behandling av personuppgifter som återfinns i GIT. Genom - GIT-bestämmelserna regleras också att golfklubben/golfbolaget är - personuppgiftsansvarig för huvuddelen av databehandlingarna i - GIT. SGF är i de fallen personuppgiftsbiträde till - golfklubbarna/golfbolagen. I en del andra fall som exempelvis - förbundstävlingar och tidningen Svensk Golf är SGF - personuppgiftsansvarig. SGF, GDF, golfklubbarna, golfbolagen, - golfspelarna och ett antal andra organisationer och bolag (tex - klubbarnas egna driftsbolag) är juridiskt bundna av - GIT-bestämmelserna. Medlemsinformation delas endast med tredje - part om uttryckligt samtycke finns (se paragraf 3 nedan) med - undantag för företag som agerar biträden till klubben eller är - en naturlig del av klubbens verksamhet, så som -
-- Täby Golf tillämpar strikt GIT access dvs endast de individer - som har ett uttryckligt ansvar att behandla medlemsdata t ex i - samband med tävlingar, juniorverksamhet, styrelsearbete etc, har - access till GIT. Dessa individer ha även genomgått utbildning i - GDPR. Medlemsdata som behandlas i GIT är följande: -
-- Informationen finns lagrad 24 månader efter avslutat medlemskap. -
-- E-post hantering faller utanför GIT-bestämmelsen och RF:s - Uppförandekod. Täby Golf kommer att spara e-post högst 24 - månader om det behövs, annars raderar vi informationen direkt. -
-Persondata som behandlas:
-- På Täby Golf använder vi samtycke som laglig grund för viss - hantering av dina personuppgifter. Vi anser att detta ökar - transparensen kring klubbens hantering av personlig data men det - stärker också individens kontroll över vilken persondata som - används och till vilket syfte. All samtyckeshantering kan ske - via Täby Golfs integritetspanel. En uppdateringe i - integritetspanelen medför automatisk uppdatering av - samtyckeshantering i min Golf där det finns överlapp (TBC). -
-- 3.1 Delning av data med tredje part i syfte att generera - sponsorintäkter -
-- Delning av medlemsdata till tredje part sker på dina villkor och - med ditt uttryckliga samtycke. Täby Golf har, i enlighet med - gällande dataskyddsförordning, för avsikt att generera intäkter - genom sponsoring. Medlemmar som samtycker till delning av deras - data till medverkande sponsorföretag, bidrar till - sponsorintäkter till klubben och/ eller kan komma att erhålla - erbjudanden från medverkande företag. Medlemmar som samtycker - till datadelning har rätt att bestämma vilka företag hens data - delas med. Du kan när som helst samtycka till delning av data - och du kan när som helst dra tillbaka ditt samtycke. Ditt - samtycke dras automatiskt tillbaka när du avregistreras som - medlem i klubben. Följande data kan komma att delas (se varje - företag). Notera att du endast kan dra tillbaka samtycke på - ändamålsnivå och ej per attribut när det gäller sponsoravtal. -
-- 3.2 Delning av data med tredje part i syfte att underlätta - arbetet på klubben (?) -
-- Täby Golf kan komma att dela data med externa aktörer som verkar - på eller i nära samarbete med klubben. Hit räknas följande - bolag…..Restaurangen….? -
-- Information som kan delas, efter medlemmens samtycke, är: -
-3.3 Medlemskommunikation
-- Täby Golf använder elektroniska kommunikationskanaler för att - skicka ut information. Man har alltid rätt att kontakta oss och - radera sina personuppgifter från våra listor. -
-- Personuppgifter som används i medlemskommunikationen. -
-- 3.4 Fotografering, bildpublicering -
-- Publicering av namn och bild på hemsida eller sociala medier kan - vara integritetskänsligt för många människor. Det gäller - särskilt för barn. Det finns varken ett generellt tillstånd - eller förbud i GDPR och Idrottens uppförandekod mot att - publicera vimmelbilder, spelbilder från banan eller bilder på - pristagare. Tvärtom är det viktigt med bilder och texter om - medlemmarna för att skapa en inkluderande anda och klubbkänsla. - Täby Golf behöver ett samtycke innan bilder publiceras. -
-- 4.1 Andra rättigheter som registrerad medlem -
-- Portabilitet, rättning av data eller samtycken (min Golf) vs - iGrantX (måste automatiseras…), access till data….kontakta - kanslien? -
-4.2 Greenfeeboken
-- Den klassiska greenfeeboken som ligger i greenfee efter - stängningsdags uppfyller inte dataskyddsförordningens - bestämmelser. Boken innehåller personuppgifter som är - strukturerade och ger mycket information till den som tar del av - uppgifterna. Så vi kommer inte längre lägga ut en greenfeebok, - utan man får skriva namn, golf id och betalsätt på ett kuvert - som skickas in i brevinkastet i receptionen (som är låst). -
- -{t("createAccountPageTitle")}
- - - {/* Registration form */} -A text message with 6 digit verification code was just send to {formValues.MobileNumber !== undefined ? formValues.MobileNumber.rawValue : ""} -
-Make sure it's 8 character or more.
-Proceed to {t("dashboardLink")}
-Copyright © 2019 LCubed AB, Sweden. All rights reserved.
-Subscribe to organization
-To subscribe, enter the subscription key provided by us
-