Coder Social home page Coder Social logo

snimavat / nimble Goto Github PK

View Code? Open in Web Editor NEW

This project forked from bradleybeddoes/nimble

15.0 9.0 19.0 23.83 MB

Nimble Security Grails Plugin

License: Other

Groovy 92.22% CSS 2.39% JavaScript 5.39%
grails grails-plugin shiro shiro-security

nimble's Introduction

Nimble grails plugin

Nimble is a Grails plugin and provides kickstart authentication and authorization functionality to any Grails application. Nimble provides beautiful UI and ready to use functionality for login, user registration, password reset, Users, Roles, Groups and permission management. Nimble provides administration portal from where all of the above stuff can be managed. Its possible to extends nimble administration portal to add other administration functionality for your application.

Nimble is based on Apache shiro security framework

Features

  • Out of the box support for authentication and authorization
  • Login
  • Registration
  • Forgot password
  • UI for managing Administrators
  • UI for managing users
  • UI for managing user groups
  • UI for managing roles
  • UI for assigning roles and permissions to users and groups

And much more

Demo : http://nimble.ap01.aws.af.cm/

Documentation:

Roadmap

  • Improve test coverage
  • Add support for impersonating users

Thanks to JetBrains for Awesome IntelliJ Idea

nimble's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nimble's Issues

rename package to grails.plugin.nimble

officially grails.plugin.xx was decided to be the standard for plugin package name.
Anyway we are publishing it almost like a new plugin, and there are other breaking changes as well. Lets rename package to grails.plugin.nimble instead of grails.plugins.nimble

Incompatibility with grails 2.3.7 LATEST

a lot of issues starting from cache plug-in, a lot of issue appears when I compile just after installation.
I resorted the plug-in order before the cache plugin, but again. same errors poped up. I stopped the default cache pluging that comes with Grails 2.3.7. added cache & webxml latest plug-ins. it compiled with minor issues because of deprecated API methods called by Nimble. please have a look. I'm new to Nimble and thought to give it a try, after some Google researches. I think it is a promising plugin. please let me know if it is no more maintained, so I can search for an alternate, if you have no plan to go after that. Thank you.

modularize css

modularize css into different files like layout, widgets, typography etc so that applications can override whatever specific resource they want

Remove oauth and openid support

Remove oauth and openid support for now, we can may add it again in new version of nimble or develop separate plugin for nimble oauth and openid.

add asset-pipeline support

just put the appropriate manifests in grails-app/assets/{stylesheets,javascripts}

i have all the necessary assets in my application, so this is not necessary. but it might be of help to others.

Configuring field names

Hi I'm new to grails, and have been experimenting with this plugin. I was wondering if there is there a way to configure table field names? When I tried to run nimble on sql server, there are several errors because some field names are sql keywords. I tried to add the following in the NimbleConfig.groovy:
fieldnames {
external="is_external"
}
But this doesnt seem to get picked up, and I still see keyword related sql syntax errors.

Cannot modify any of the nimble views

Due to this change: a65bcab#diff-58

Only the nimble mail templates are copied into $baseDir/grails-app/views/nimble so none of them can be modified. This is a problem because we can't make any changes to the default UI's.

Add Combo Box to "Add xxxx" UI field.

In several places where you want to assign an entity to another, such as in the User Detail view where they can "Add a Group", there is a search bar that allows the user to search for the group they want. That is excellent, but it relies on them knowing what to search for.

It is often a lot easier for the user if you also have a combo-box next to the search field that is pre-populated with all the existing Groups, or Roles or Users, etc... There is plenty of room on the same line as the search widget to place the combo box and then the user can use which ever one is most convenient.

ex: Add Group:
-existing Groups in combo box- -search field- -button- -button-
[[...Project Coordinators....||.v.]] {(...........................)} [.Search.][..Close..]

adding a group based security filter

there is support for roles and permissions, but groups are the other concept in nimble. it would be nice to be able to specify a security constraint based on a group.

Using deprecated API : ConfigurationHolder

In Grails 2.X org.codehaus.groovy.grails.commons.ConfigurationHolder is deprecated and these groovy classes use it.

/nimble/core/Group.groovy
/nimble/core/LevelPermission.groovy
/nimble/core/LoginRecord.groovy
/nimble/core/Permission.groovy
/nimble/core/ProfileBase.groovy
/nimble/core/Role.groovy
/nimble/core/Url.groovy
/nimble/core/UserBase.groovy

Can be fixed using grailsApplication injection. OR "import grails.util.Holders as ConfigurationHolder"

setting federated = true for a user causes error on show user screen

Checking federated checkbox for an user will cause the show user screen for that user to fail with below error

Template not found for name [/templates/nimble/user/federationinformation] and path [/templates/nimble/user/_federationinformation.gsp]. Stacktrace follows:
org.codehaus.groovy.grails.web.pages.exceptions.GroovyPagesException: Error processing GroovyPageView: Template not found for name [/templates/nimble/user/federationinformation] and path [/templates/nimble/user/_federationinformation.gsp]

problems with 0.6

Compile error during compilation with javac.
C:\Users\sbansal\IdeaProjects\untitled3\target\work\plugins\cache-1.1.1\src\java\grails\plugin\cache\web\GenericResponseWrapper.java:154: error: method does not override or implement a method from a supertype
@OverRide
^
C:\Users\sbansal\IdeaProjects\untitled3\target\work\plugins\cache-1.1.1\src\java\grails\plugin\cache\web\filter\PageFragmentCachingFilter.java:398: error: cannot find symbol
contentType = response.getContentType();
^
symbol: method getContentType()
location: variable response of type HttpServletResponse
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
2 errors

Implement impersonate feature

Provide support for impersonating users. Administrators can choose an user to impersonate and access site from user's perspective.

replace jquery.pstrength

i'm updating to asset-pipeline because resources is no longer supported/maintained.
i was having issues when the javascript was minified. so i looked around on the internet to see if other people had the same problem.

during my travels i discovered that the jquery.pstrength component was released around 2006 and has not been changed/supported/upgraded since then. there also does not appear to be anyone claiming ownership (that i could see).

so you might consider replacing it with one of the other password strength plugins.

i am using jquery-pwstrength-bootstrap which was a trivial change.

error in LevelPermission domain class

[WARNING] Property [first] of domain class grails.plugin.nimble.core.LevelPermission has type [grails.plugin.nimble.core.LevelPermission] and doesn't support constraint [minSize]. This constraint will not be checked during validation.

I cannot work out what was the intent of the constraint.

Getting NullPointerException in AuthController

After login, at line 62: userService.createLoginRecord(request) in grails-app\controllers\grails\plugin\nimble\core\AuthController.groovy I get a NullPointerException:

URI
    /MyApp/auth/signin
Class
    java.lang.NullPointerException
Message
    Cannot invoke method createLoginRecord() on null object

It seems as if UserService isn't injected and thus is null. Nevertheless, UserService.groovy is present in \target\work\plugins\nimble-0.5.1\grails-app\services\grails\plugin\nimble\core.

I tried in BuildConfig.groovy both

plugins {
    // ...
    compile ":nimble:0.5.2"
}

and also :nimble:0.5.1.

It is likely some issue with my configuration / project, but I think I did everything according to instructions, and all my other plugins work fine.

I'm using Grails 2.3.0.RC1.

Please advise.

Facebook integration

I'm just adding facebook realm to the plugin and I wonder if there are any plans for that in the nearest future?
I'm using old nimble as a pattern.

Compilation issues as soon as nimble is injected into project

Getting this error as soon as I put the compile directive in the plugins area. (Grails: 2.3.1)

/Users/<>/projects/remember/target/work/plugins/cache-1.1.1/src/java/grails/plugin/cache/web/GenericResponseWrapper.java:154: method does not override or implement a method from a supertype
@OverRide
^
/Users/<>/projects/remember/target/work/plugins/cache-1.1.1/src/java/grails/plugin/cache/web/filter/PageFragmentCachingFilter.java:398: cannot find symbol
symbol : method getContentType()
location: interface javax.servlet.http.HttpServletResponse
contentType = response.getContentType();
^

Update documentation with information how to plug in UI to view/edit custom fields added to User and Profile

I've added custom fields to Profile (extending grails.plugin.nimble.core.ProfileBase) and User (extending grails.plugin.nimble.core.UserBase) classes (which were created by jack-be-nimble script), however I cannot quite figure out what is the right way to make these fields viewable and editable in the Nimble admin screens.

I'd like to reuse the Nimble admin screens to the degree possible, just adding the extra fields to them where applicable (some are references to other tables, to be presented as drop-downs), as I quite like the Nimble admin screens.

Probably some templates need to be copied from somewhere and overridden, or added to, but I cannot quite find where this approach is documented.

combination of grails.app.context="/" and "grails run-war" doesn't work

I don't have a good isolated test case (tried to make one but a seemingly clean grails app with nimble added and cache disabled fails with ClassNotFoundException: grails.plugin.webxml.FilterManager for some reason) nor am I fully certain it is a Nimble problem, but when running my application with "grails run-war" it fails with:

http://localhost:8080/

redirecting to

http://localhost:8080//login?targetUri=home%2Findex

and getting a 404.

When run as "grails run-app" and when the .war is deployed under Tomcat7 it works fine (redirects to "http://localhost:8080/login?targetUri=%2Fhome%2Findex" as expected).

I have

grails.app.context="/"

in Config.groovy which could be at fault because if I set it to "/test" then

http://localhost:8080/test/

redirects to

http://localhost:8080/test/login?targetUri=%2Fhome%2Findex 

as expected.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.