Giter Club home page Giter Club logo

rhino-security's Introduction

Rhino Security

Rhino Security is part of the Rhino Tools collection by Ayende Rahien.

What is this?

Rhino Security is a security framework to provide row level security for NHibernate. Rhino Security is perfect for people who want to set up user and group security in their NHibernate domain models. It supports ACL and role based security using a model similar to this:

yUML Rhino Security

Based on this blog post

Getting Started

Read the How to Use.txt file for more information about getting started.

More Information

More information about the library can be found in the Rhino Security category on Ayende's blog.

Try [this Google search](rhino security nhibernate) to find a ton of other information about it.


Intro by Tobin Harris, he askes that people contribute to make it better :)

rhino-security's People

Contributors

ayende avatar beto avatar cneuwirt avatar jonathanrauch avatar richtea avatar tobinharris avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rhino-security's Issues

DetachUserFromGroup detaches all the users for that group instead of the single user

I have been trying to figure out why the user-group associations were disappearing in my app and it turns out that when you call DetachUserFromGroup, it detaches all the users in that group.
The query generated is: exec sp_executesql N'DELETE FROM security.UsersToUsersGroups WHERE GroupId = @p0',N'@p0 uniqueidentifier',@p0='15430BE5-E373-4ECE-905E-9D5000C6079A'

As you can see in the Where clause it is missing part where it checks for the UserId.

Looking at the AuthorizationRepository, it does remove the IUser from the list of users for the group, but somehow it is not being translated to the SQL query.

Cache not being invalidated

Executing GetAssociatedUsersGroupFor directly after executing AssociateUserWith returns the cached associations. AssociateUserWith doesn't seem to be invalidating the cache for the UserToUsersGroups table.

I am using SysCache2 from Nhibernate.Contrib.

Use of guids in db structure

Is there any way you could convert this code base to utilize integers rather than guids for the primary keys? Guids have the worst performance out of all of the database types and take the most space to store. The use of guids in this project also dictates that users of this framework must also utilize guid types whenever they have a table that needs a foreign key to the user's id column. Perhaps there is a compromise where the data type can be controlled via a setting?

Associating operations with entity types

I'd like to map which operations are associated with a specific entity type. For example I have a security dialog that follows the general Microsoft conventions. (see the security dialog in windows explorer for editing folder/files settings) The dialog consists of two lists. The first is a list of groups/users who have access to whatever it is I’m trying to secure. In my domain it’s an entity that represents a folder within my database. There are buttons that allow me to add or remove groups or users from this list. The second list is a static set of permissions (in your domain these would be called operations) that are applicable for the type of entity being edited. I would like to see the ability assign a list of operations to a specific entity type. This would allow me during load up of my security dialog to retrieve this static list of operations specific to the entity (the folder) being edited and list them with checkboxes. I can then utilize the existing methods in your PermissionService for retrieving the currently selected user’s or group’s permissions and check the appropriate operations specific to them.

Perhaps I didn’t understand your model and this is already possible.
Thanks,
Joey

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.