Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
…into 12.0-saas-opportunity-to-delete-template
  • Loading branch information
Denis Mudarisov committed Aug 6, 2019
2 parents f355b33 + 9f0a886 commit f4c6aec
Show file tree
Hide file tree
Showing 7 changed files with 49 additions and 13 deletions.
5 changes: 2 additions & 3 deletions saas/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Models overview
===============

* ``saas.template`` -- similar to ``saas_portal.plan`` in *odoo-saas-tools*, but covers only technical aspects (database creation) and not any sale/trial stuff. A single record can be used for multiple servers (via ``saas.template.operator``.
* ``saas.operator`` -- similar to ``saas_portal.server`` in *odoo-saas-tools*. Credentials to create-destroy, update, migrate, backup, etc. odoo instances.
* ``saas.operator`` -- similar to ``saas_portal.server`` in *odoo-saas-tools*. Credentials to create-destroy, update, migrate, backup, etc. odoo instances.

* It doesn't need special odoo instance (database, *SaaS Server* in terms of
*odoo-saas-tool* project) in corresponding server and could work by sending
Expand All @@ -33,7 +33,6 @@ Models overview
Roadmap
=======

* TODO: create saas access levels (SaaS: User, Manager)
* TODO: Create menu for SaaS Operator
* smart button for builds list
* TODO: Create menu for SaaS Log model
Expand Down Expand Up @@ -80,4 +79,4 @@ Changelog: `<doc/changelog.rst>`_

Notifications on updates: `via Atom <https://github.com/it-projects-llc/saas-addons/commits/12.0/saas.atom>`_, `by Email <https://blogtrottr.com/?subscribe=https://github.com/it-projects-llc/saas-addons/commits/12.0/saas.atom>`_

Tested on Odoo 12.0 032d0ed90f580f25819cd6846e21cf155ade44e7
Tested on Odoo 12.0 4147ef847a1c5182b9f3b7daad504bf8b813190c
2 changes: 2 additions & 0 deletions saas/__manifest__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# Copyright 2018 Ivan Yelizariev <https://it-projects.info/team/yelizariev>
# Copyright 2019 Anvar Kildebekov <https://it-projects.info/team/kildebekov>
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
{
"name": """SaaS Base""",
Expand All @@ -23,6 +24,7 @@
],
"external_dependencies": {"python": ['slugify'], "bin": []},
"data": [
"security/saas_security.xml",
"security/ir.model.access.csv",
"views/saas_view.xml",
"views/saas_template_views.xml",
Expand Down
6 changes: 6 additions & 0 deletions saas/models/saas_template.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# Copyright 2018 Ivan Yelizariev <https://it-projects.info/team/yelizariev>
# Copyright 2019 Denis Mudarisov <https://it-projects.info/team/trojikman>
# Copyright 2019 Kildebekov Anvar <https://it-projects.info/team/kildebekov>
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
import random
import string
Expand Down Expand Up @@ -80,6 +81,11 @@ def action_create_build(self):
else:
raise UserError(_('There are no ready template\'s deployments. Create new one or wait until it\'s done.'))

@api.multi
def refresh_page(self):
# Empty-function for purpose of refreshing page
pass


class SAASModules(models.Model):
_name = 'saas.module'
Expand Down
18 changes: 12 additions & 6 deletions saas/security/ir.model.access.csv
Original file line number Diff line number Diff line change
@@ -1,7 +1,13 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_saas_db,access_saas_db,model_saas_db,base.group_user,1,0,0,0
access_saas_template_operator,access_saas_template_operator,model_saas_template_operator,base.group_user,1,1,1,0
access_saas_log,access_saas_log,model_saas_log,base.group_user,1,0,1,0
access_saas_operator,access_saas_operator,model_saas_operator,base.group_user,1,1,1,0
access_saas_template,access_saas_template,model_saas_template,base.group_user,1,1,1,1
access_saas_module,access_saas_module,model_saas_module,base.group_user,1,1,1,1
user_access_saas_module,user_access_saas_module,model_saas_module,saas.group_user,1,0,1,0
user_access_saas_template,user_access_saas_template,model_saas_template,saas.group_user,1,0,0,0
user_access_saas_db,user_access_saas_db,model_saas_db,saas.group_user,1,0,0,0
user_access_saas_template_operator,user_access_saas_template_operator,model_saas_template_operator,saas.group_user,1,0,0,0
user_access_saas_log,user_access_saas_log,model_saas_log,saas.group_user,1,0,0,0
user_access_saas_operator,user_access_saas_operator,model_saas_operator,saas.group_user,1,0,0,0
manager_access_saas_db,manager_access_saas_db,model_saas_db,saas.group_manager,1,0,0,0
manager_access_saas_template_operator,manager_access_saas_template_operator,model_saas_template_operator,saas.group_manager,1,1,1,0
manager_access_saas_log,manager_access_saas_log,model_saas_log,saas.group_manager,1,0,1,0
manager_access_saas_operator,manager_access_saas_operator,model_saas_operator,saas.group_manager,1,1,1,0
manager_access_saas_template,manager_access_saas_template,model_saas_template,saas.group_manager,1,1,1,1
manager_access_saas_module,manager_access_saas_module,model_saas_module,saas.group_manager,1,1,1,1
20 changes: 20 additions & 0 deletions saas/security/saas_security.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<odoo>
<record model="ir.module.category" id="module_management">
<field name="name">SaaS</field>
<field name="description">User access level for SaaS</field>
<field name="sequence">4</field>
</record>

<record model="res.groups" id="group_user">
<field name="name">User</field>
<field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>
<field name="users" eval="[(4, ref('base.user_root'))]"/>
<field name="category_id" ref="saas.module_management"/>
</record>

<record model="res.groups" id="group_manager">
<field name="name">Manager</field>
<field name="implied_ids" eval="[(4, ref('saas.group_user'))]"/>
<field name="category_id" ref="saas.module_management"/>
</record>
</odoo>
2 changes: 2 additions & 0 deletions saas/views/saas_template_views.xml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
<!--# Copyright 2019 Denis Mudarisov <https://www.it-projects.info/team/trojikman>
# Copyright 2019 Kildebekov Anvar <https://www.it-projects.info/team/kildebekov>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).-->

<odoo>
Expand Down Expand Up @@ -32,6 +33,7 @@
<field name="build_post_init" widget="ace" options="{'mode': 'python'}"/>
<field name="operator_ids"/>
</group>
<button name="refresh_page" type="object" string="Refresh" style="margin-left:15%"/>
</sheet>
</form>
</field>
Expand Down
9 changes: 5 additions & 4 deletions saas_public/controllers/saas_public.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,14 @@


class SaaSPublicController(Controller):
@route('/saas_public/<model("saas.template"):template_id>/create-fast-build', type='http', auth='public')
@route('/saas_public/<int:template_id>/create-fast-build', type='http', auth='public')
def create_fast_build(self, template_id, **kwargs):
if not kwargs:
kwargs = {}
if template_id and template_id.sudo().public_access:
template_operator_id = template_id.sudo().operator_ids.random_ready_operator()
build = template_operator_id.sudo().create_db(kwargs, with_delay=False)
template = request.env['saas.template'].browse(template_id).sudo()
if template and template.public_access:
template_operator_id = template.operator_ids.random_ready_operator()
build = template_operator_id.create_db(kwargs, with_delay=False)
build_url = build.get_url()
return request.env['auth_quick_master.token'].sudo().redirect_with_token(build_url, build.id,
build_login='admin')
Expand Down

0 comments on commit f4c6aec

Please sign in to comment.