66 lines
1.9 KiB
C#
66 lines
1.9 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using BeWo.Data.Access;
|
|
using BeWo.Data.Entities;
|
|
using BeWo.Service.Core;
|
|
using BeWo.Service.DCEntityMapper;
|
|
using BeWo.Service.MessageContracts;
|
|
using BeWo.Service.Plugins;
|
|
using BS.Shared;
|
|
using BS.Shared.Core;
|
|
using BS.Shared.DataContracts;
|
|
using BS.Shared.Extensions;
|
|
using BS.Shared.Services;
|
|
using Utils = BS.Shared.Core.Utils;
|
|
|
|
namespace BeWo.DerKarren.Service
|
|
{
|
|
public class CustomUserService : UserService
|
|
{
|
|
public override UserDC LoadUserByLoginName(string pUserName, string password)
|
|
{
|
|
var user = base.LoadUserByLoginName(pUserName, password);
|
|
|
|
bool isTeamleiter = false;
|
|
foreach (var group in user.UserGroups)
|
|
{
|
|
if (group.Name.Contains("Teamleitung"))
|
|
{
|
|
isTeamleiter = true;
|
|
}
|
|
}
|
|
|
|
if (isTeamleiter)
|
|
{
|
|
var emp = user.Employee;
|
|
|
|
var teams = DAOFactory.SearchDAO.FindAllActiveTeamsOfEmployee(emp.EmployeeOid);
|
|
emp.TeamOids = new List<long>();
|
|
foreach (var t in teams)
|
|
{
|
|
emp.TeamOids.Add(t.Oid.Value);
|
|
|
|
foreach (var member in t.MemberList)
|
|
{
|
|
emp.AllTeamMemberOids.Add(member.Oid.Value);
|
|
}
|
|
}
|
|
foreach (var toid in user.Employee.TeamOids)
|
|
{
|
|
if (user.Employee.LeadingTeamOids == null)
|
|
{
|
|
user.Employee.LeadingTeamOids = new List<long>();
|
|
}
|
|
if (!user.Employee.LeadingTeamOids.Contains(toid))
|
|
{
|
|
user.Employee.LeadingTeamOids.Add(toid);
|
|
}
|
|
}
|
|
}
|
|
return user;
|
|
}
|
|
}
|
|
}
|