Directus.io vs Laravel voyager - laravel

I am looking for a good system where I am able to
customize my table with custom fields without / less php development
get the data by rest api out of the box
membership area (is there a solution for directus.io, voyager, ... ) out-of-the box? (user can register and see some pages only for members) As I understand both systems are headless cms but are there a membership system already for download? Is there a better system to this?
are the system recommended for building an individual CRM System (as foundation for a php developer)? any other suggestions?
Regards
ms

If the plan is to have the platform work as you CRM platform, then Directus would be a great fit. You can install a blank instance, and then just add the collections/fields you want (their online demo actually has an example of some CRM features):
https://demo.directus.io/admin/#/login
The only thing that Directus doesn't have, that you mentioned, is a "Public Register" feature. But this could be a single custom page page that you build that adds users through the API. Also, Public User Registration is on their roadmap.

Related

How can I limit wagtail's site history by site to support multi-tenancy?

I have a multi-tenant wagtail set up and we are currently working on getting up to date. We've just recently upgraded to v2.15 which introduced audit logging for all models instead of just page models.
AFAICT from looking through the wagtail code, the changes for a page model are only visible to superusers or admins with can_add_subpage or can_edit permissions which seems to effectively support multi-tenancy.
However, for all the other models there is no limitation put into effect. This means that an admin for Site A is seeing when changes are made to Site B or anytime a user is added or edited. We are using email addresses as usernames so this presents a rather major privacy issue.
This method hasn't been updated in any newer version, AFAICT, so I don't believe that just upgrading will fix this.
Does anyone have any ideas on either any wagtail settings we can change to keep Site and user changes invisible to non superusers or how we might localize BaseLogEntryManager.viewable_by_user so we can override the default wagtail implementation to our needs?
We have previously done something somewhat similar with the search available to admins by creating our own src/app/templates/wagtailadmin/pages/search.html and creating our own local version of https://github.com/wagtail/wagtail/blob/stable/2.13.x/wagtail/admin/views/pages/search.py
I had thought about trying to do something similar here however that doesn't seem like a good thing to do given how different those circumstances are and I think it was only possible using the register_admin_search_area hook.
I run a fairly large multitenanted Wagtail site. I have made public gist of the code we use in Wagtail 2.16 to restrict reports.
One of the main things we had to patch is the filters on the reports page. We do not want users on one site to even know there are other users in the system. This is implemented in the site_specific_get_users_for_filter method.
Although our non-page models all have site_ids, it was not possible to filter ModelLogEntries in site, so we settled for hiding that report from everyone except superusers.

How do I create a custom global element/app within CRM Dynamics such that it shows on all pages and can control user navigation?

I need to add a custom element/mini-app/extension to CRM Dynamics sales such that it shows globally on all pages that the user navigates to and also can navigate the users urls when certain events happen.
What options exactly do I have to satisfy the above criteria?
The screenshot below shows a sample area that I need to build the app within as an example.
Id imagine there are many use cases where customizing a global element is worthwhile, especially since custom applications may need to be built.
I understand I can use the Resources to create a SPA such as angular which is running so long as the URL stays at the SPA url. But for our use case, we are looking to allow end users to be able to navigate the CRM using the custom controls. but when something happens in a another subsystem, we need end users who are logged into the CRM to instantly view data that is important to them.
Is this technically possible?
Unfortunately this is not feasible. There are some concepts to show learning path like that. It won’t satisfy your need.
I understand what you need, like a news feed or ad rotator for rolling content but context specific flyout area which is always pinned. There is no OOB option or customization/configuration available for achieving this. You can initiate this concept in Dynamics Ideas.
Like you said there can be a HTML web resource developed & embedded in a dashboard, this is very limited for your requirement.
Edit:
I think you are looking for Channel Integration Framework which will help you to configure third party CTI apps.
In CRM V9, they have introduced a new API call for 'Panel'. This panel loads to the side of the screen, and can display content regardless of where the user moves throughout the entire application. I've played around with it a bit for my own person reasons at work, but it looks to be exactly what you're looking for.
The call is 'Xrm.Panel.loadPanel(URL/WebResource)'
https://learn.microsoft.com/en-us/dynamics365/customer-engagement/developer/clientapi/reference/xrm-panel
However, the feature is currently in development, and should only be used in production at your own risk.

SPA architecture to enable features or component based on account permissions?

I’m going to build an online photo editor - Single Page Application with Vue.js + Laravel (beginner in both frameworks).
How can I disable or limit some features if user account is free, and enable that if account is premium?
For example: if I want some tools like Color picker is only available to paid user, how can I do that securely?
( Vue is frontend so I’m afraid that if the logic stand totally in javascript, user with enough knowledge can modify it by dev tools to enable paid feature )
I suggest you take a look at Laratrust. It's a fantastic package for creating roles and permissions in Laravel.
Vue is indeed the frontend, but your application's logic is still performed in PHP, via Laravel. Your controllers will determine what a user's permissions are and return the appropriate data/error accordingly. There's a lot to describe here but there's tons of great resources that do it.
Rather than describing how Vue and Laravel work together, I'd point you towards Laracasts. You can learn A LOT there off just the free videos alone, well worth the money though.
https://laracasts.com/series/learn-vue-2-step-by-step/episodes/26
https://laracasts.com/series/learn-vue-2-step-by-step/episodes/27

Joomla: Set up workflows so articles have to pass by an editor before publishing?

We need for articles to pass by an editor before getting published. Some pages need to pass by two different people. This is beyond the contributor/author/editor roles in the Joomla core, I think, because edits to existing pages need to be held for approval, during which time the original page needs to remain live.
Is this possible in Joomla 3.x?
An extension like this may help you
and other options are also ther use 3rd party software like processmaker and integrate it in JOOMLA in iframe and LDAP to verify users.
open source version of processmaker is available and free to use

Codeigniter admin/auth system?

I'm starting a new project with codeigniter, and I'd like to start on a system that's already built so I can reduce the time of development.
Is there a good system that handles user authentication along with an admin interface to manage users that can be easily expanded to a web-app?
If this is too vague, I can expand
This thread here appears to have some answers
But the question was more about libraries. Either way, implementing some of the things on that thread would save you time.
You're looking for is a Content Management System (CMS).
There are a few ones out there that use Codeigniter as a framework for their CMS.
Edit: Even if you can't find a boilerplate CMS that you like, you can google about CMS's to design a simple one of your own as there's LOTS of tutorials and information about requirements and such when you know the term CMS.
I recommend Redux Auth for CodeIgniter. It comes with an example implementation, and can easily be used to manage user authentication for your CodeIgniter site. I just implemented Beta2 with the latest version of CodeIgniter, so while it's not actively updated, it still works with the latest build.
I'm using Bonfire as default admin interface.
I've just started looking into Bonfire:
Bonfire helps you build CodeIgniter-based PHP web applications even faster, by providing powerful tools and a beautiful interface you won't be ashamed to show your client.
Ready to customize Admin Interface.
User Management with Role-Based Access Control.
Fully Modular codebase.
Built around HMVC.
Database backup, migration, and maintenance.
Powerful, parent/child capable theme engine.
Simple Email Queue to keep your ISP happy.
UI-based module builder.
Looks good at first glance!

Resources