public static bool IsUserInRole(IList <string> roleNames, RolePermission permissions, UserDto currentUser) { //UserServiceClient client = new UserServiceClient(); //UserDto currentUser = client.GetByUserName(userName); bool hasAccess = false; try { foreach (string roleName in roleNames) { var res = currentUser.UserWithRolePermissions.Where(x => x.PermissionForRole.RoleName == roleName); if (res.Count() != 0) { UserRolePermissionDto urpDto = res.FirstOrDefault(); switch (permissions) { case RolePermission.Add: hasAccess = urpDto.AllowAdd; break; case RolePermission.Update: hasAccess = urpDto.AllowEdit; break; case RolePermission.View: hasAccess = urpDto.AllowView; break; case RolePermission.Delete: hasAccess = urpDto.AllowDelete; break; case RolePermission.Print: hasAccess = urpDto.AllowPrint; break; } res = null; return(hasAccess); } else { var resGroupRole = currentUser.ViewOfUserUserGroupRolePermissions.Where(x => x.PermissionForRole.RoleName == roleName); if (resGroupRole.Count() != 0) { viewUserUserGroupRolePermissionsDto vwUgRoleDto = resGroupRole.FirstOrDefault(); switch (permissions) { case RolePermission.Add: hasAccess = vwUgRoleDto.AllowAdd; break; case RolePermission.Update: hasAccess = vwUgRoleDto.AllowEdit; break; case RolePermission.View: hasAccess = vwUgRoleDto.AllowView; break; case RolePermission.Delete: hasAccess = vwUgRoleDto.AllowDelete; break; case RolePermission.Print: hasAccess = vwUgRoleDto.AllowPrint; break; } //return hasAccess; } } } } catch (Exception ex) { } return(hasAccess); }
public List <RoleModel> GetAssignedRoles(string roleGroup, string UserName) { List <RoleModel> roleModelList = new List <RoleModel>(); Query query = new Query(); IList <RoleDto> Roles = new List <RoleDto>(); client = new RoleServiceClient(); UserServiceReference.UserServiceClient UserClient = null; UserDto userDto = new UserDto(); UserClient = new UserServiceReference.UserServiceClient(); userDto = UserClient.GetByUserName(UserName); if (!string.IsNullOrEmpty(Request.QueryString["userType"])) { string usertype = Request.QueryString["userType"]; if (usertype == "CAUser") { Criterion CriteriaIsApplicableForAckUsers = new Criterion("IsApplicableForAckUsers", false, CriteriaOperator.Equal); query.Add(CriteriaIsApplicableForAckUsers); } } Criterion CriteriaRoleGroup = new Criterion("RoleGroup", roleGroup, CriteriaOperator.Equal); query.Add(CriteriaRoleGroup); Roles = client.FindByQuery(query).Entities.ToList(); int RolePermissionId = 0; bool allowAdd, allowEdit, allowView, allowPrint, allowDelete; foreach (RoleDto role in Roles) { allowAdd = allowEdit = allowView = allowPrint = allowDelete = false; var ugrolelist = userDto.ViewOfUserUserGroupRolePermissions.Where(x => x.PermissionForRole.RoleId == role.RoleId); viewUserUserGroupRolePermissionsDto viewUUGRPDto = null; if (ugrolelist.Count() != 0) { viewUUGRPDto = ugrolelist.First(); } if (viewUUGRPDto != null) { allowAdd = viewUUGRPDto.AllowAdd; allowEdit = viewUUGRPDto.AllowEdit; allowDelete = viewUUGRPDto.AllowDelete; allowPrint = viewUUGRPDto.AllowPrint; allowView = viewUUGRPDto.AllowView; } roleModelList.Add(new RoleModel { RolePermissionId = ++RolePermissionId, PermissionForRole = role, AllowAdd = allowAdd, AllowEdit = allowEdit, AllowDelete = allowDelete, AllowPrint = allowPrint, AllowView = allowView }); } return(roleModelList); }