Browse Source

[IMP] emc_api: generate api key

pull/71/head
robin.keunen 4 years ago
parent
commit
fb5869758d
  1. 16
      easy_my_coop_api/README.rst
  2. 1
      easy_my_coop_api/__init__.py
  3. 1
      easy_my_coop_api/models/__init__.py
  4. 34
      easy_my_coop_api/models/auth_api_key.py
  5. 12
      easy_my_coop_api/readme/USAGE.rst
  6. 41
      easy_my_coop_api/static/description/index.html

16
easy_my_coop_api/README.rst

@ -26,6 +26,22 @@ Open Easy My Coop to the world: RESTful API.
.. contents:: .. contents::
:local: :local:
Usage
=====
To give access to the API to a structure, go to
- Settings > Technical (debug mode) > Auth API Key
- click create and select a user, save.
- communicate the API-KEY to the structure.
It is recommended to create a technical user for the structure belonging to the group "Easy My Coop User".
For example, for the structure Coop IT Easy, create partner with
- name = coopiteasy-api-user
- Application Accesses = Cooperative Management / User
- Platform Structure = Coop IT Easy
Known issues / Roadmap Known issues / Roadmap
====================== ======================

1
easy_my_coop_api/__init__.py

@ -1,2 +1,3 @@
from . import controllers from . import controllers
from . import models
from . import services from . import services

1
easy_my_coop_api/models/__init__.py

@ -0,0 +1 @@
from . import auth_api_key

34
easy_my_coop_api/models/auth_api_key.py

@ -0,0 +1,34 @@
# Copyright 2020 Coop IT Easy SCRL fs
# Robin Keunen <robin@coopiteasy.be>
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
import uuid
from odoo import api, fields, models
class AuthApiKey(models.Model):
_inherit = "auth.api.key"
def _default_key(self):
return uuid.uuid4()
# overloaded fields
# required is set to false to allow for a computed field,
# it will always be set.
name = fields.Char(required=False, compute="_compute_name", store=True)
key = fields.Char(default=_default_key)
@api.multi
@api.depends("user_id")
def _compute_name(self):
for key in self:
if key.user_id:
now = fields.Datetime.now()
key.name = "{login}-{now}".format(
now=fields.Datetime.to_string(now),
login=key.user_id.login,
)
else:
key.name = "no-user"

12
easy_my_coop_api/readme/USAGE.rst

@ -0,0 +1,12 @@
To give access to the API to a structure, go to
- Settings > Technical (debug mode) > Auth API Key
- click create and select a user, save.
- communicate the API-KEY to the structure.
It is recommended to create a technical user for the structure belonging to the group "Easy My Coop User".
For example, for the structure Coop IT Easy, create partner with
- name = coopiteasy-api-user
- Application Accesses = Cooperative Management / User
- Platform Structure = Coop IT Easy

41
easy_my_coop_api/static/description/index.html

@ -372,18 +372,35 @@ ul.auto-toc {
<p><strong>Table of contents</strong></p> <p><strong>Table of contents</strong></p>
<div class="contents local topic" id="contents"> <div class="contents local topic" id="contents">
<ul class="simple"> <ul class="simple">
<li><a class="reference internal" href="#known-issues-roadmap" id="id1">Known issues / Roadmap</a></li>
<li><a class="reference internal" href="#bug-tracker" id="id2">Bug Tracker</a></li>
<li><a class="reference internal" href="#credits" id="id3">Credits</a><ul>
<li><a class="reference internal" href="#authors" id="id4">Authors</a></li>
<li><a class="reference internal" href="#contributors" id="id5">Contributors</a></li>
<li><a class="reference internal" href="#maintainers" id="id6">Maintainers</a></li>
<li><a class="reference internal" href="#usage" id="id1">Usage</a></li>
<li><a class="reference internal" href="#known-issues-roadmap" id="id2">Known issues / Roadmap</a></li>
<li><a class="reference internal" href="#bug-tracker" id="id3">Bug Tracker</a></li>
<li><a class="reference internal" href="#credits" id="id4">Credits</a><ul>
<li><a class="reference internal" href="#authors" id="id5">Authors</a></li>
<li><a class="reference internal" href="#contributors" id="id6">Contributors</a></li>
<li><a class="reference internal" href="#maintainers" id="id7">Maintainers</a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
</div> </div>
<div class="section" id="usage">
<h1><a class="toc-backref" href="#id1">Usage</a></h1>
<p>To give access to the API to a structure, go to</p>
<ul class="simple">
<li>Settings &gt; Technical (debug mode) &gt; Auth API Key</li>
<li>click create and select a user, save.</li>
<li>communicate the API-KEY to the structure.</li>
</ul>
<p>It is recommended to create a technical user for the structure belonging to the group “Easy My Coop User”.
For example, for the structure Coop IT Easy, create partner with</p>
<ul class="simple">
<li>name = coopiteasy-api-user</li>
<li>Application Accesses = Cooperative Management / User</li>
<li>Platform Structure = Coop IT Easy</li>
</ul>
</div>
<div class="section" id="known-issues-roadmap"> <div class="section" id="known-issues-roadmap">
<h1><a class="toc-backref" href="#id1">Known issues / Roadmap</a></h1>
<h1><a class="toc-backref" href="#id2">Known issues / Roadmap</a></h1>
<p>The API should generate and use an external id for records instead <p>The API should generate and use an external id for records instead
of odoo’s generated id. It would make importing and export data as of odoo’s generated id. It would make importing and export data as
well as migrating across versions easier.</p> well as migrating across versions easier.</p>
@ -392,7 +409,7 @@ routes would need to be rewritten: they only take integer as ids.
Another way is to define a sequence per model.</p> Another way is to define a sequence per model.</p>
</div> </div>
<div class="section" id="bug-tracker"> <div class="section" id="bug-tracker">
<h1><a class="toc-backref" href="#id2">Bug Tracker</a></h1>
<h1><a class="toc-backref" href="#id3">Bug Tracker</a></h1>
<p>Bugs are tracked on <a class="reference external" href="https://github.com/coopiteasy/vertical-cooperative/issues">GitHub Issues</a>. <p>Bugs are tracked on <a class="reference external" href="https://github.com/coopiteasy/vertical-cooperative/issues">GitHub Issues</a>.
In case of trouble, please check there if your issue has already been reported. In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed If you spotted it first, help us smashing it by providing a detailed and welcomed
@ -400,22 +417,22 @@ If you spotted it first, help us smashing it by providing a detailed and welcome
<p>Do not contact contributors directly about support or help with technical issues.</p> <p>Do not contact contributors directly about support or help with technical issues.</p>
</div> </div>
<div class="section" id="credits"> <div class="section" id="credits">
<h1><a class="toc-backref" href="#id3">Credits</a></h1>
<h1><a class="toc-backref" href="#id4">Credits</a></h1>
<div class="section" id="authors"> <div class="section" id="authors">
<h2><a class="toc-backref" href="#id4">Authors</a></h2>
<h2><a class="toc-backref" href="#id5">Authors</a></h2>
<ul class="simple"> <ul class="simple">
<li>Coop IT Easy SCRLfs</li> <li>Coop IT Easy SCRLfs</li>
</ul> </ul>
</div> </div>
<div class="section" id="contributors"> <div class="section" id="contributors">
<h2><a class="toc-backref" href="#id5">Contributors</a></h2>
<h2><a class="toc-backref" href="#id6">Contributors</a></h2>
<ul class="simple"> <ul class="simple">
<li>Coop IT Easy SCRLfs</li> <li>Coop IT Easy SCRLfs</li>
<li>Robin Keunen &lt;<a class="reference external" href="mailto:robin&#64;coopiteasy.be">robin&#64;coopiteasy.be</a>&gt;</li> <li>Robin Keunen &lt;<a class="reference external" href="mailto:robin&#64;coopiteasy.be">robin&#64;coopiteasy.be</a>&gt;</li>
</ul> </ul>
</div> </div>
<div class="section" id="maintainers"> <div class="section" id="maintainers">
<h2><a class="toc-backref" href="#id6">Maintainers</a></h2>
<h2><a class="toc-backref" href="#id7">Maintainers</a></h2>
<p>This module is part of the <a class="reference external" href="https://github.com/coopiteasy/vertical-cooperative/tree/12.0/easy_my_coop_api">coopiteasy/vertical-cooperative</a> project on GitHub.</p> <p>This module is part of the <a class="reference external" href="https://github.com/coopiteasy/vertical-cooperative/tree/12.0/easy_my_coop_api">coopiteasy/vertical-cooperative</a> project on GitHub.</p>
<p>You are welcome to contribute.</p> <p>You are welcome to contribute.</p>
</div> </div>

Loading…
Cancel
Save