public ActionResult GetUserPermissions() { var user = _usersService.GetCurrentUser(); var allowedPermissions = _permissionsRepository.GetPermissionsForRoles( _usersService.GetRolesByIds(user.Roles.Select(r => r.RoleId)).Select(r => r.RoleCode).ToArray()); return(Json(Extensions.ToEnumList <PermissionType>().ToDictionary(x => x.ToString(), x => allowedPermissions.Contains(x)), JsonRequestBehavior.AllowGet)); }
public bool HasCurrentUserPermissions(params PermissionType[] permissionTypes) { if (permissionTypes == null || !permissionTypes.Any()) { throw new ArgumentException(nameof(permissionTypes)); } var user = _userService.GetCurrentUser(); var roles = _userService.GetRolesByIds(user.Roles.Select(x => x.RoleId)); var allowedPermissions = _permissionsRepository.GetPermissionsForRoles(roles.Select(x => x.RoleCode)); return(permissionTypes.All(pt => allowedPermissions.Contains(pt))); }