Hello, first of all thank you for sharing such a beautiful project, on the other hand I write from Argentina and my English is not very good, sorry po know that.
I'm having incovenientes to obtain permits from the "AbpPermissions" table, I thought that the permissions of user and automatically obteniean when logueaba.
Then a suuario see the logs in, try to get it with the following methods, and eh not been able to do:
var permission = _permissionManager.GetAllPermissions (false); var permission1 = _permissionManager.GetPermissionOrNull (Manager.Core.Authorization.PermissionNames.Module_MyAccount); var permission2 = _permissionManager.GetPermission (Manager.Core.Authorization.PermissionNames.Module_MyAccount);
var user = _userManager.FindById (1); var list = await _userManager.GetGrantedPermissionsAsync (user);
var list1 = await _userStore.GetPermissionsAsync (1);
I have already read in the forum, and also the documents:
- <a class="postlink" href="http://www.aspnetboilerplate.com/Pages/Documents/Zero/Permission-Management">http://www.aspnetboilerplate.com/Pages/ ... Management</a>
- <a class="postlink" href="http://www.aspnetboilerplate.com/Pages/Documents/Authorization">http://www.aspnetboilerplate.com/Pages/ ... horization</a>
But I do not use any Provider, I want to get permsisos AbpPermissions desdde the table.
I hope to receive an answer to this, I attached the print screen of the database.
11 Answer(s)
-
0
Hi,
Why do you need to get records from AbpPermissions table ? In most cases, you dont need records in AbpPermissions table.
-
0
Hi, thanks for the reply, permissions must not be stored in the table AbpPermissions? but that it would be used?
On the other hand I do not understand how to use: MyAuthorizationProvider as permission to relate the role id or user id logged?
Attached the print screen of the table "AbpPermissions"
-
0
Hi,
You dont need to do anything. ABP automatically does that for you. It finds the Id of logged in user, find user's role and check permisisons according to User permissin -> Role permission -> default permission value respectively.
You just need to use an attribute like this
[AbpAuthorize("Administration.UserManagement.CreateUser")] public void CreateUser(CreateUserInput input) { //A user can not execute this method if he is not granted for "Administration.UserManagement.CreateUser" permission. }
or like this,
if (!PermissionChecker.IsGranted("Administration.UserManagement.CreateUser")) { throw new AbpAuthorizationException("You are not authorized to create user!"); }
-
0
So in my case example happens to you, the role name must match the name of the provider permission?
Ex. Table AbpUsers = id: 1 Name: xxxxx Table AbpUserRoles = id: 1 idUser: 1 idRol: 1
Table AbpRoles = id: 1 name: Master
In the provider you have to coindir the role name, as you associate with the permission of the user provider role id or id?
The provider must match one of these data in the table?
Thank you.
-
0
-
0
Hi,
Did you add ManagerAuthorizationProvider to Providers ?
You should do it in the PreInitialize method of your Application Module like this.
public override void PreInitialize() { //Adding authorization providers Configuration.Authorization.Providers.Add<ManagerAuthorizationProvider >(); }
and your Controller should inherit from AbpController or if you created your project from aspnetboilerplate website template the it should inherit from [*ControllerBase] class.
-
0
OK: public override void PreInitialize() { //Remove the following line to disable multi-tenancy. Configuration.MultiTenancy.IsEnabled = true;
//Add/remove localization sources here Configuration.Localization.Sources.Add( new DictionaryBasedLocalizationSource( ManagerConsts.LocalizationSourceName, new XmlEmbeddedFileLocalizationDictionaryProvider( Assembly.GetExecutingAssembly(), "Manager.Core.Localization.Source" ) ) ); AppRoleConfig.Configure(Configuration.Modules.Zero().RoleManagement); Configuration.Authorization.Providers.Add<ManagerAuthorizationProvider>(); Configuration.Settings.Providers.Add<EmailSettingDefinitionProvider>(); }
OK: [AbpMvcAuthorize(PermissionNames.Module_Customers)] public class CustomersController : ManagerControllerBase
public class ManagerAuthorizationProvider : AuthorizationProvider { public override void SetPermissions(IPermissionDefinitionContext context) {
var moduleCustomers = context.CreatePermission(PermissionNames.Module_Customers) .CreateChildPermission(PermissionNames.Module_Customers_Create) .CreateChildPermission(PermissionNames.Module_Customers_Edit) .CreateChildPermission(PermissionNames.Module_Customers_Delete); }
}
Hi thanks for the reply, I tell you that goes for the role = 1, but not for the role = 2, do not understand why?
-
0
Hi, as I do for work authorization attributes "AbpMvcAuthorization" for example for 2 roles? I only work for one role?
Ej.
Table AbpUsers = id: 1 Name: xxxxx
Table AbpUserRoles = id: 1 idUser: 1 idRol: 1
Table AbpRoles = id: 1 name: Master id: 2 name: Admin
It works OK !
Ej.
Table AbpUsers = id: 1 Name: xxxxx
Table AbpUserRoles = id: 1 idUser: 1 idRol: 2
Table AbpRoles = id: 1 name: Master id: 2 name: Admin
-
0
PLEASE HELP !!!! :(
-
0
Hi,
As I understand, in your case 1 user have two roles right ? For examle "xxxx" user has both "Admin" and "Master" roles right ?
-
0