var validateAttornyUserRolesAndPermission1 = function()

in tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Web/wwwroot/app/matter/matterusers.controller.js [1013:1109]


        var validateAttornyUserRolesAndPermission1 = function (team, drpChangeString, mode) {
            var isValid = false;
            var raRolePresent = false;
            var fcPermissionPresent = false;
            if (!cm.globalSettings.isBackwardCompatible) {

                for (var iUserCount = 0; iUserCount < cm.assignPermissionTeams.length; iUserCount++) {
                    for (var iCount = 0; iCount < cm.stampedMatterUsers.length; iCount++) {
                        if (cm.stampedMatterUsers[iCount].userName != team.assignedUser &&
                            cm.stampedMatterUsers[iCount].userName == cm.assignPermissionTeams[iUserCount].assignedUser) {
                            var role = $filter('filter')(cm.assignRoles, { name: cm.stampedMatterUsers[iCount].userRole });
                            var permission = $filter('filter')(cm.assignPermissions, { name: cm.stampedMatterUsers[iCount].userPermission });
                            cm.assignPermissionTeams[iUserCount].assignedPermission = permission[0];
                            cm.assignPermissionTeams[iUserCount].assignedRole = role[0];
                            cm.assignPermissionTeams[iUserCount].status = "success";
                            if (cm.stampedMatterUsers[iCount].userRole.toLowerCase() == "responsible attorney") {
                                raRolePresent = true;
                            }
                            if (cm.stampedMatterUsers[iCount].userPermission.toLowerCase() == "full control") {
                                fcPermissionPresent = true;
                            }
                        }
                        else if (cm.stampedMatterUsers[iCount].userName == team.assignedUser && mode != "delete") {
                            if (cm.stampedMatterUsers[iCount].userRole.toLowerCase() == team.assignedRole.name.toLowerCase()
                                && cm.stampedMatterUsers[iCount].userPermission.toLowerCase() == team.assignedPermission.name.toLowerCase()) {
                                team.status = "success";
                                if (cm.stampedMatterUsers[iCount].userRole.toLowerCase() == "responsible attorney") {
                                    raRolePresent = true;
                                }
                                if (cm.stampedMatterUsers[iCount].userPermission.toLowerCase() == "full control") {
                                    fcPermissionPresent = true;
                                }
                            }
                            else {
                                if (team.assignedRole.name.toLowerCase() == "responsible attorney") {
                                    raRolePresent = true;
                                }
                                if (team.assignedPermission.name.toLowerCase() == "full control") {
                                    fcPermissionPresent = true;
                                }
                            }
                        }
                    }
                }
                if (raRolePresent && fcPermissionPresent) {
                    isValid = true;
                }                
            }
            else {
                for (var iUserCount = 0; iUserCount < cm.assignPermissionTeams.length; iUserCount++) {
                    for (var iCount = 0; iCount < cm.stampedMatterUsers.length; iCount++) {
                        if (cm.stampedMatterUsers[iCount].userName != team.assignedUser &&
                            cm.stampedMatterUsers[iCount].userName == cm.assignPermissionTeams[iUserCount].assignedUser) {
                           
                                var permission = $filter('filter')(cm.assignPermissions, { name: cm.stampedMatterUsers[iCount].userPermission });
                                cm.assignPermissionTeams[iUserCount].assignedPermission = permission[0];
                                cm.assignPermissionTeams[iUserCount].status = "success";
                                if (cm.stampedMatterUsers[iCount].userPermission.toLowerCase() == "full control") {
                                    isValid = true;
                                }
                            }
                            else if (cm.stampedMatterUsers[iCount].userName == team.assignedUser && mode != "delete") {
                                if (cm.stampedMatterUsers[iCount].userPermission.toLowerCase() == team.assignedPermission.name.toLowerCase()) {
                                   
                                    team.status = "success";
                                    if (cm.stampedMatterUsers[iCount].userPermission.toLowerCase() == "full control") {
                                        isValid = true;
                                    }
                                }
                            }
                        
                    }
                }
            }
            if (team.teamUsers.length == 0) {
                isValid = false;
                drpChangeString = 'txtUser';
            }
            if (!isValid) {
                cm.errTextMsg = cm.createContent.MsgMatterRoleAndPermission;
                if (drpChangeString == 'userRole') {
                    cm.errorBorder = "roleUser" + team.assigneTeamRowNumber;
                    showErrorNotificationAssignTeams(cm.errTextMsg, team.assigneTeamRowNumber, "role");
                }
                if (drpChangeString == 'userParm') {
                    cm.errorBorder = "permUser" + team.assigneTeamRowNumber;
                    showErrorNotificationAssignTeams(cm.errTextMsg, team.assigneTeamRowNumber, "perm");
                }
                if (drpChangeString == 'txtUser') {
                    cm.errorBorder = "txtUser" + team.assigneTeamRowNumber;
                    showErrorNotificationAssignTeams(cm.errTextMsg, team.assigneTeamRowNumber, "user");
                }
                cm.errorPopUpBlock = true;
                cm.errorStatus = true;
            }
            return isValid;
        }