示例#1
0
        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);
        }
示例#2
0
        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);
        }